wow7jiao 发表于 2018-6-23 22:40:05

反汇编翻译

本帖最后由 wow7jiao 于 2018-6-23 22:43 编辑



下面是翻遍,我尝试逐条翻译,有错误请前辈指点

int main(void)
{
010BF840push      ebp//备份堆栈指针入堆栈
010BF841mov         ebp,esp//堆栈指针复制给备份堆栈指针
010BF843sub         esp,0D8h//为函数申请一段空间
010BF849push      ebx//
010BF84Apush      esi//
010BF84Bpush      edi//寄存器压栈,保留现场
010BF84Clea         edi,//这是减负数吗,然后把值给edi
010BF852mov         ecx,36h//计数器54
010BF857mov         eax,0CCCCCCCCh
010BF85Crep stos    dword ptr es:
      int a = 100;
010BF85Emov         dword ptr ,64h
      int *p = &a;
010BF865lea         eax,
010BF868mov         dword ptr ,eax

      printf("%d\n", *p);
010BF86Bmov         eax,dword ptr
010BF86Emov         ecx,dword ptr
010BF870push      ecx
010BF871push      1153E50h
010BF876call      010BBD9B
010BF87Badd         esp,8
      return 0;
010BF87Exor         eax,eax
}

人造人 发表于 2018-6-23 22:40:06

其实就是8D BD 40 FF FF FF
不同的翻译选项会翻译出不同的结果

人造人 发表于 2018-6-23 22:59:17

加一个负数,等于减一个正数

人造人 发表于 2018-6-23 22:59:48

010BF84Clea         edi,
010BF84Clea         edi,

wow7jiao 发表于 2018-6-23 23:02:11

请问一下es是标志位寄存器吗?

wow7jiao 发表于 2018-6-23 23:03:27

请问一下es是标志位寄存器吗?

wow7jiao 发表于 2018-6-23 23:05:23

请问一下es是标志位寄存器吗?

wow7jiao 发表于 2018-6-23 23:08:30

请问es是标志位寄存器吗

人造人 发表于 2018-6-23 23:10:02

wow7jiao 发表于 2018-6-23 23:08
请问es是标志位寄存器吗

es 是段寄存器

人造人 发表于 2018-6-23 23:13:35



wow7jiao 发表于 2018-6-23 23:17:36

本帖最后由 wow7jiao 于 2018-6-23 23:18 编辑

vs2017里面有标志寄存器的窗口吗?

edi, 有没有可能是无符号数,反汇编一般都是有符号数吗?

人造人 发表于 2018-6-23 23:22:46



人造人 发表于 2018-6-23 23:25:32

页: [1]
查看完整版本: 反汇编翻译