12/03/21 22:15:48.08 drEhAshX
>>246
それは何を目的としているかによるのでエスパー回答になるが
例えばWindowsのメモリ関連のAPIはこれだけの種類がある
URLリンク(msdn.microsoft.com)
そこに載ってないものも含めて、これらは全部関数なのでproxy関数として再定義してやることで
乗っ取ることが出来る可能性があるんだがWindowsの基本APIはvirtual属性を持たないのでoverride出来ない物が多い
その質問の目的が型式不明なフォントファイルを作成したいのであれば、それはResource hackの分野なので
次項以降の話になってくると思う
その前段として文字処理ルーチンを特定したい、という動機であれば基本的にhook/proxyするAPIは
CreateTextureが一般的なのでわざわざメモリの監視とかバッファの監視という難しい手法を取る必要はないかと思う
仮想的な言及になるが一般的に文字処理ルーチンの次には対応する文字画像を生成する必要があるので
高確率でCreateTextureが呼び出されるため、まず解析初歩としてはProxyAPIでCreateTextureを上書きした
MyCreateTextureとして継承・再定義して、その末尾に引数やアクセス先のメモリアドレスをlogに出力するような
コードを書き加えてやったり、戻り先のアドレスをlogに出力する
あとはそのlogから該当となるアドレスを絞り込んで、IDAやollydbgで静的・動的解析を併用して逆トレースすれば
文字処理ルーチンに辿りつけると思う
このあたりはasmレベルでもおそらく数百ステップしか無いので、追うのはそんなに難しくない。
たいていは当たりだったらCreateTextureの戻り先の数十ステップ以内でファイルにアクセスしたり、
メモリに文字列読み込んだりしてる場所が見つかると思う