0

割り当てゾーン(VirtualAllocateEx)にジャンプするfunction prologueために置き換えたいことを知っています。jmpしかしfunction prologue、3バイトとjmp5バイトだけです。このような:

55                 `push ebp`  

8B EC              `mov ebp, esp`

833D C4354200 02   `cmp dword ptr ds:[4235C4],2`

E9 AD00000000  `jmp` 00140000 // replace above three instructions

jmpを使用して関数プロローグをカバーしたい場合は、関数プロローグの後の3番目の命令をカバーする必要があります。

だから、関数プロローグの代わりにint3を使用して、割り当てゾーンまたは任意のアドレスにジャンプしたいのですが、どうすればよいですか?

VEHやSEHを使ってみましたが、どうやって作るのかわかりません。

4

1 に答える 1

1

元のコード(引用したもの)を別のメモリ位置に書き込む必要があります(何かを割り当てるだけです)。

追加のOpCode(カスタムの新しいコード)用のスペースを節約しながら記述します。未使用のバイトをNOP(私が間違っていない場合は0x90)で埋めることが許可されているので、正確に適合する必要はありません。

ここで、元のコードからこのコードにジャンプします。

私は何年も前にゲームトレーナーを作っていたときにこのようなことをしてきました..非常にうまく機能します。

注意事項:書き直したコードは、最後に元の場所に戻ってコードフローを続行する必要があります。

不明な点がある場合はお知らせください。

于 2012-04-26T03:50:18.493 に答える