基礎用語 デバッガ用改造コード
概要
デバッガ用改造コードは、環境依存型の変動アドレスに簡単に対処できる、OSのバージョン・メモリ実装容量等に一切影響を受けない環境非依存型改造コードです。 デバッガ用改造コードは、環境非依存型改造コード作成に用いる、改造コードの[ポインタ型改造コード]で対処できない、特殊な変動アドレスへの対処に有用です。 |
作成
まず、プロセスメモリ検索機能でCG閲覧フラグや各種パラメータの格納アドレスを探し出します。次に同格納アドレスにデバッガでハードウェアブレークポイント(メモリアクセス)を設定し、パラメータが変動するような特定動作でブレークさせます。これにより上記フラグの参照あるいは書き換えを行うコードのアドレスを特定可能です。さらに特定した同コードのアドレスを逆アセンブルコードリスト上で参照してニーモニックを得ます。 なお、上記「コード」とは、プロセスメモリに展開された実行ファイルのコードセクション上のコードです。 ちなみに、メモリアクセス用ブレークポイント設定からパラメータ減少でブレークさせて、逆アセンブルコードリスト上でのパラメータ減算処理を行うコードが特定できれば、それを無効化するパラメータ減少回避(無敵化)改造コードを作成することも可能です。 デバッガ用改造コードのユーザーは、同改造コードで指定されたアドレスにハードウェアブレークポイント(実行)を設定して、さらに指定された特定の動作を行ってブレークさせるだけです。これだけで、ユーザーの環境に依存する変動アドレスか否かに関わらずターゲットアドレスを得ることが可能になります。デバッガ用改造コードの書式例は下記。この改造コードはBlueAshさんが寄稿された「ExGAME」Vol6の記事を参考にさせて頂きました。 |
書式例
ターゲット:「うさみみ大作戦」(うさソフト) 対象:HP現在値(環境依存型変動アドレスに格納) ハードウェアブレークポイント(実行)のアドレス:401234 ブレークに必要なゲーム上の動作:戦闘時のHP現在値減少 ブレーク時ニーモニック:MOV WORD PTR [EBX],AX ターゲットアドレス:EBXレジスタに格納 補足:ターゲットアドレス以降+4h毎に他のパラメータが格納されている (注)ブレーク時ニーモニックはデバッガ用改造コードに必ずしも必要ではありません。上のケースは参考用です。 |