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から必要な情報を表示するにはどうすればよいですか?
前もって感謝します!