2010-11-28 20 views
0

Naveenのブログhttp://naveensrinivasan.com/2010/06/11/piracy-in-net-code-%e2%80%93-part-3-%e2%80%93-even-when-the-code-is-obfuscated/で提供されているコードサンプルを試しています。
彼は!u ($ip)コマンドを実行するとき、彼は素晴らしい逆アセンブリを取得していますが、同じことを実行しようとすると、逆アセンブルできなかったいくつかのアンマネージコードがヒットするようです。逆アセンブルされたコードに何が間違っているのですか

0:000> !u ($ip) 
Unmanaged code 
77555e74 c3    ret 
77555e75 8da42400000000 lea  esp,[esp] 
77555e7c 8d642400  lea  esp,[esp] 
77555e80 8d542408  lea  edx,[esp+8] 
77555e84 cd2e   int  2Eh 
77555e86 c3    ret 
77555e87 90    nop 
77555e88 55    push ebp 
77555e89 8bec   mov  ebp,esp 
77555e8b 8da42430fdffff lea  esp,[esp-2D0h] 

私が間違っている可能性がありますか?

答えて

0

あなたのリスティングは、ネイティブコードの完全な有効な逆アセンブリです。部品は、システムを実行するコードであることを教えて「2EHがintは」呼び出します

http://www.codemachine.com/article_syscall.html

このコードは、ジョブこれはシステムライブラリであるntdll.dllの、最も可能性が高いことを意味しています。命令ポインタは「ret」を指す。私は前の命令が "sysenter"であったと推測していますが、実際にはアプリケーションはちょうど終了しました(システムコールを行うことでこれを行いました)。アプリケーションが終了すると、デバッガはブレークポイントがヒットしたときと同じように制御されます。

アプリケーションが終了する前にブレークポイントが当たらない理由を詳しく見てください。

0

試してみてください。 .lines L + S

コマンドウィンドウに表示されます。また、シンボルがロードされていることを確認してください。 lmコマンドを使用すると、ロードされたモジュールを表示できます。