1

Windows7 x64 と OllyDbg 2.01(alpha 2) を使用しています。

私はexeを持っていて、実行中にいくつかの情報を表示するためにMessageBoxをポップアップしたいのですが、これを行う方法を示す素晴らしいチュートリアルがあります: How to inject code into a exe file、基本的には、MessageBoxA APIを追加することです必要な情報を呼び出します。

PUSH 0                 ; BUTTONS = <OK ONLY>
PUSH 1008751           ; CAPTION  = Our adress of the "INJECTED NOTEPAD"
PUSH 1008751           ; MESSAGE  = Same like above.
PUSH 0                 ; ICON        = <NO ICON>
CALL MessageBoxA       ; Run MessageBoxA with the Params above.

ライブ デバッグ セッションでは機能します。コードを挿入してからデバッグすると、メッセージ ボックスがポップアップします。しかし、実行可能ファイルを保存した後(RMB->編集->すべて選択; RMB->編集->実行可能ファイルにコピー; 新しいウィンドウでRMB->ファイルを保存)、実行すると、クラッシュしました。

ここに私が観察したものがあります:

保存前、CALL MessageBoxA は実際には CALL 74DAFD1E です。これは、74DAFD1E が API MessageBoxA のアドレスであることを意味しますが、保存後、アドレスは別の値に変更されます。

また、 ASLRは実質的に Windows API 呼び出しの挿入を停止すると思いますか?

何か案は?そのexeから必要な情報を表示するにはどうすればよいですか?
前もって感謝します!

4

1 に答える 1

0

これは ASLR が原因です。Windows7 で動作させるには、ASLR を無効にする方法があります (自己責任で)。

Enhanced Mitigation Experience Toolkit (EMET)ツールをダウンロードし、ポップアップ ダイアログで EMET_GUI.exe をインストールして実行し、ASLR を無効にして再起動する ことができます。EMET GUI

OS のセキュリティに影響を与えるため、作業が終了したら ASLR を再度有効にすることをお勧めします。

于 2012-08-07T14:07:12.897 に答える