seclan のほえほえルーム

| |

・Win32 API 呼び出しで変わらないレジスタ[2/2] (1999/06/15 [])
 (つづき)TestReg.Asmnl.bat でアセンブル&リンクした後、TestReg.Exe を実行するとこんな内容のダイアログが表示されます。

TestReg の実行結果
TESTREG が無効な命令を実行しました。
モジュール : TESTREG.EXE、アドレス : 015f:0040102e
Registers:
EAX=00000008 CS=015f EIP=0040102e EFLGS=00010202
EBX=55aa55aa SS=0167 ESP=0063fe38 EBP=55aa55aa
ECX=0063ff68 DS=0167 ESI=55aa55aa FS=58df
EDX=00000033 ES=0167 EDI=55aa55aa GS=0000

 この結果からわかることは、保存されているレジスタは ebx, esi, edi, ebp だけである事がわかります。eax, ecx, edx は完全にその内容が破壊されています。edx:eax は一般的に関数の戻り値として利用されるので、破壊されるのは当然でしょう。ecx は通常ループのインデックスに利用されますが、内容は保存されないようです。

by seclan

関連


| |

 

配信

6.99 msec