|
发表于 2017-4-8 21:38:32
|
显示全部楼层
本楼为最佳答案
a.asm
- [bits 32]
- db 0x66, 0xc7, 0x45, 0xfc, 0x62, 0x00, 0x5F, 0x5e, 0x5b, 0x8b, 0xe5, 0x5d, 0xc3, 0xcc
复制代码
用nasm 编译
nasm a.asm -o a.obj
用ndisasm 反汇编
ndisasm -b 32 a.obj
- 00000000 66C745FC6200 mov word [ebp-0x4],0x62
- 00000006 5F pop edi
- 00000007 5E pop esi
- 00000008 5B pop ebx
- 00000009 8BE5 mov esp,ebp
- 0000000B 5D pop ebp
- 0000000C C3 ret
- 0000000D CC int3
复制代码
00000000 66C745FC6200 mov word [ebp-0x4],0x62
可以看到是把0x62写到 ebp-0x4 的位置
看来是vc6翻译错了?
mov word ptr [ebp-8],offset main+80h(00401210)
不过现在又发现一个问题,为什么是ebp - 8
? |
|