★「神のタゲ」の      謎を追え!

ログ行数を変更してみよう! 取扱注意!!

■1.はじめに■

 最初にあるスクリーンショットを紹介します。変哲もないモグハウスでのひとコマですが、何か通常と違うような気がしませんか・・・?



 そうです、ログが12行になっています。

通常のコンフィグではログは最大8行までしか設定できませんが、ある方法でこの行数を変更できたりします。白魔道士は回復を受け持つ関係上、ログを見落とさないよう注意が必要です。しかし範囲効果なので一気に流れるログ達にはいつも泣かされます。..._| ̄|○

今日はそんな悩みを解決する方法についてメスを入れて見たいと思います。

(注意:この方法は危険を伴いますのであくまでも自己責任で行ってください。またPOL及び
    FFXIのバージョンアップによって出来なくなる可能性も有りますのでご了承ください。)

■2.FFIXプロセスにおけるログ行数の仕組み■
     (2005.03.01現在:今後変更される可能性も有ります)

 FFXIはPOLコンテンツ配下で稼動しています。簡単な構造を抜き出して書くとこうなっています。

 ○POL.exe … Play Online メインプログラム
   |
   +−FFXi.dll … FFXIの環境に関するDLL(と思われる)
   |
   +−FFXiMain.dll … FFXIのメインDLL
   :
   +−他のシステムDLL群

 ログ行に関する情報はFFXi.dllが保持しています。ただし、このDLLの何処にパラメータを持っているかは分かりません。また分かったとしてもバージョンアップよってそのつどパラメータのアドレス位置は変わってしまいます。オンラインゲームで改造コードが出回らないのはその為です。

 ちなみに現在(2005.03.01)のログ行の情報はメモリ上では次のように保持されています。

  ・・・+00+αα+00+ββ+・・・

  ・αα:最大ログ行(2バイト)
  ・ββ:最小ログ行(2バイト)
   (補足:リアクティブサイズウィンドウがOFFの場合はααββと設定される)

 例:リアクティブサイズウィンドウがOFFで最大行=8の場合
  →…00080008

 例:リアクティブサイズウィンドウがOFFで最大行=7の場合
  →…00070007

 例:リアクティブサイズウィンドウがONで最大行=8、最小行=7の場合
  →…00080007

そこで、現在稼動しているFFXi.dllのメモリ配置上の該当部分を見つけ出し希望の行数に変更してしまえば良い訳です・・・。ちなみに16進数表示ですので

 10行→0A 11行→0B 12行→0C 13行→0D
 14行→0E 15行→0F 16行→10 17行→11 ・・・・・・
 

となります。設定したい行数の記述に注意しましょう。

■3.プロセスエディタによるメモリ更新■

 ここであるツールをご紹介します。「プロセスエディタ兼デバッガ」ソフトウェア

 「スペシャルねこまんま57号」

です。Toolの方でも紹介していますが、使い方を誤ると大変危険ですので注意しましょう。また、作業にはどうしても「Window化(窓化)」が必要です(全画面表示じゃ作業ができない為)。

@「ねこまんま57号」を起動
 FFXIをWindow化した状態で「ねこまんま57号」を起動します。ねこまんま57号のメインウィンドウの最上テキスト領域に現在マシンで稼働中のプロセス一覧が表示されます。



A稼動プロセスとDDLの選択
 稼動しているプロセスから
「〜\pol.exe」を選択してください。パス名は各自の環境によって違うのでFFXIをインストールしたエリアを参照に選択しましょう。
 選択すると下のウィンドウにpol.exeのプロセス情報が表示され
「選択プロセス」「操作」ボタンを押せるようになります。押すとプルダウンメニューが表示されるのでその中から「モジュール・スレッド一覧・メモリマップ」を選択します


(メインウィンドウ イメージ)

するとそのプロセス配下で使用されているモジュールの一覧が別窓で表示されます(下図イメージを参考)。そこで表示されているモジュール一覧から
 
「〜SQUARE\FINAL FANTASY XI\FFXi.dll」を選択しましょう。
これによりFFXi.dllが格納されている先頭のメモリ情報がメインウィンドウに表示されます。この状態からメインウィンドウの
「メモリ検索」ボタンを押し「ログ行情報」が格納されているメモリ位置を検索していきます。


(↑赤枠内をクリックするとモジュールの一覧のウィンドウイメージが見れます↑)

Bログ行情報のメモリ格納位置の検索
 ここからFFXi.dll内に格納されているログ行情報の格納されているメモリアドレスを探していきます。前項の
「メモリ検索」ボタンを押すと下記のようなウィンドウ「プロセスメモリ検索・変動検索」(以後「検索ウィンドウ」と表記)が表示されます。


    (↑プロセスメモリ検索・変動検索ウィンドウ

 まず、FFXIの「コンフィグ」の「ウィンドウ」から下記の設定にします。
ログウィンドウ
 リアクティブウィンドウ → オフ
 行数の最大値  → 8 


 →実行コードバイナリ:00080008

 次にねこまんま57号の検索ウィンドウを下記の内容を設定し
「通常検索実行」ボタンを押してメモリ内を検索します。(上記のウィンドウイメージを参照)
・通常検索
   16進:「080008」と入力(※1)
・比較単位
   「4 Byte」を選択
・基点補正
   「補正無し」を選択

 (※1)
  本来なら「00080008」と入力するのが筋ですが、検索時にメインウィンドウ上2行
  (1行は32バイト)にまたがってしまう場合ヒットしない為、検索キーワードを短くしています。

 上記のウィンドウイメージは検索をかけ終わった状態で、911件のメモリエリアが見つかったと言う意味である(青線囲)。

 次はウィンドウ設定を変更させて「変動検索」にて絞込みを行います。


 画面は次の様に変更してます。

ログウィンドウ
 リアクティブウィンドウ → オフ
 行数の最大値  → 7 


 →実行コードバイナリ:00070007

 この状態で「ウィンドウ設定」を終了させてゲーム画面に戻した後、
変動絞込み検索を行います。

・通常検索(リスト出力後の為、絞込みモード)
   16進:「070007」と入力

 再度「通常検索実行」ボタンを押すと絞込みが行われ、結果が青枠内に再表示されます。



 メモリ上のアドレス
「06FF76D2」先ほどの2つの異なったウィンドウ設定の両方に該当したことになり、ここがログ行情報が格納されているアドレスの可能性が非常に高くなったことを意味します。可能であれば■2.の内容をもとに更に違ったウィンドウ設定にして絞込みを行ってみましょう。絞込み後もこのアドレスがヒットすればほぼ間違いないといえます。

<補足>
 絞込みの検索をした際に結果が
「0件」になってしまう場合があります。これは検索したいキーワードがメインウィンドウの表示で2行にまたがってしまっているケースです。このような場合は検索の基点を後ろにずらして再検索を行って見ましょう。
 ※1で6文字(6バイト)にしていれば、下記の設定で再度検索してみよう。


 ・「検索結果クリア」ボタンにて結果を初期化
 ・基点補正
   「基点+2h」を選択


これにより2行にまたがっているキーワードを表示上1行内に収まるようにずらし、キーヒットさせることが可能になります。

Cログ行情報の更新
 該当メモリアドレスが1行に絞ることが出来たら、いよいよメモリの書き換えに入ります。検索ウィンドウの検索結果(青枠内の結果)をクリックすると、メインウィンドウのメモリマップが
「x06FF76D2」に位置づけ表示されます。

 表示上は
07000700になっているのので下の修正入力エリア(下記イメージ赤枠)に変更したいログ行情報を入力します。

<変更したいログウィンドウ設定(例)>

 リアクティブウィンドウ → オフ
 行数の最大値  → 12 


 →実行コードバイナリ:000C000C  (「12」の16進数表記は「C」)

 そこで0700070C000C修正して右にある
「更新」ボタンにてメモリの情報を更新します。



 無事更新できたらFFXIの方で
「+」キーでログウィンドウをアクティブにしてみましょう。ログウィンドウが上に伸びて12行になったでしょうか?


(ログ行変更後のイメージ)

 もし動作に何らかの異常があった場合
すぐマシンをリセットしてください(重要)
修正箇所に誤りがあった可能性が有ります。くれぐれも注意しましょう。

■4.終わりに■

 このログ行の変更方法はメモリの書き換えを行う為、誤った操作をすると非常に危険です。あくまでも自己責任の上で作業してください。何らかの障害があったとしてもこちらでは責任を取りかねます。この点をご了承の上作業をして下さい。変更作業の例ではFFXIの画面を「640×480」で作業した為ログ行が画面の半分近く占有していますが、冒頭の画面は「800×600」の解像度のでのイメージで、12行表示でもプレイ自体には支障が無いレベルかと思います。
 ちなみにログオフするとコンフィグの設定に戻ります(苦笑)。
−戻る−
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送