AK-*_*-33 0 x86 assembly reverse-engineering machine-code ollydbg
我正在对OllyDbg中的应用程序进行一些内联修改,并注意到一些奇怪的行为.
这些是我写的指令,直接从调试器复制:
2005FE35 4C DEC ESP
2005FE36 77 21 JA SHORT 2005FE59 ; 23 byte difference
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我只修改了操作码(4C 77 21); 其他一切都由OllyDbg自动解释,这就是我的困惑.该指令应该递减ESP寄存器,然后执行21个十六进制字节的条件跳转.但是,地址0x2005FE59和0x2005FE36之间的差异不是21 - 它是23!
使用21个十六进制字节值,我观察到看似不稳定的结果.
2005FE36 77 20 JA SHORT 2005FE58 ; 22 byte difference
2005FE36 77 19 JA SHORT 2005FE51 ; 1B byte difference
2005FE36 77 17 JA SHORT 2005FE4F ; 19 byte difference
Run Code Online (Sandbox Code Playgroud)
我指示向前跳转的十六进制字节数与地址偏移量不匹配; 它似乎永远都是2.
这里发生了什么?
归档时间: |
|
查看次数: |
170 次 |
最近记录: |