gmh5225 发表于 2014-12-25 00:11

汇编逆向(一)

写这个纯属就是自己记录下自己的学习经历,没有其他的意思。







int add(int a,int b)
{
      return a+b;
}
int main()
{
      int a=3,b=4,c=0;
      c=add(a,b);
      printf("%d",c);
      return 0;
}

上面的功能只是一个单纯的加法函数,我们要来逆他
载入OD,printf处下断
00371010 >/[        DISCUZ_CODE_2        ]nbsp; 55            push    ebp
00371011|.8BEC          mov   ebp, esp
00371013|.83EC 0C       sub   esp, 0xC
00371016|.C745 FC 03000>mov   dword ptr , 0x3         ;int a=3
0037101D|.C745 F8 04000>mov   dword ptr , 0x4         ;int b=4
00371024|.C745 F4 00000>mov   dword ptr , 0x0         ;int c=0
0037102B|.8B45 F8       mov   eax, dword ptr
0037102E|.50            push    eax                              ;压 b
0037102F|.8B4D FC       mov   ecx, dword ptr
00371032|.51            push    ecx                              ;压 a
00371033|.E8 C8FFFFFF   call    testtest.add                     ;加法call
00371038|.83C4 08       add   esp, 0x8                         ;堆栈平衡
0037103B|.8945 F4       mov   dword ptr , eax
0037103E|.8B55 F4       mov   edx, dword ptr
00371041|.52            push    edx                              ; /printf的第二个参数   字符串
00371042|.68 F4203700   push    testtest.003720F4                ; |字符串类型
00371047|.FF15 A0203700 call    dword ptr [<&MSVCR100.printf>]   ; \printf
0037104D|.83C4 08       add   esp, 0x8
00371050|.33C0          xor   eax, eax
00371052|.8BE5          mov   esp, ebp
00371054|.5D            pop   ebp
00371055\.C3            retn


进入加法call
00371000 >/[        DISCUZ_CODE_3        ]nbsp; 55            push    ebp
00371001|.8BEC          mov   ebp, esp
00371003|.8B45 08       mov   eax, dword ptr          ;第一个参数,也就是a
00371006|.0345 0C       add   eax, dword ptr          ;a=a+b
00371009|.5D            pop   ebp
0037100A\.C3            retn                                     ;返回值为eax
今天的比较简单,到此结束





520Kelly 发表于 2014-12-25 00:14

逆向汇编程序?

Desire 发表于 2014-12-25 00:15

这是找算法么{:5_117:}

gmh5225 发表于 2014-12-25 00:16

520Kelly 发表于 2014-12-25 00:14
逆向汇编程序?

为算法做铺垫

zx2cwf 发表于 2014-12-25 00:20

写下学习经历挺好的赞++++

Scar-疤痕 发表于 2014-12-25 00:20

不错,学习了,谢谢楼主!

虚竹 发表于 2014-12-25 00:22

、挖槽!牛逼!前来学习!加膜拜!{:5_120:}

sndncel 发表于 2014-12-25 07:08

进来学习了呀!谢谢分享……

网动的心 发表于 2014-12-25 07:50

我想知道 如果没有上面的例程楼主是怎么知道图片中的箭头所指就是 a=3b=4等等


eillusion 发表于 2014-12-25 08:49

支持原创作品
页: [1] 2 3 4
查看完整版本: 汇编逆向(一)