gmh5225 发表于 2014-12-26 00:04

汇编逆向(四)

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



数组的探讨


C源代码:
int main()
{
        int a={0};
        int s=0;
        for (int i=0;i<10;++i)
        {
                a=i+1;
                s+=a;
        }
       
        system("pause");
        return 0;
}OD反汇编:
01391000 >55            push    ebp
01391001    8BEC            mov   ebp, esp
01391003    83EC 34         sub   esp, 0x34
01391006    A1 00303901   mov   eax, dword ptr
0139100B    33C5            xor   eax, ebp
0139100D    8945 FC         mov   dword ptr , eax               ; 设置安全值
01391010 >C745 D4 0000000>mov   dword ptr , 0x0            ; a=0
01391017    33C0            xor   eax, eax
01391019    8945 D8         mov   dword ptr , eax            ; 后面都是0
0139101C    8945 DC         mov   dword ptr , eax
0139101F    8945 E0         mov   dword ptr , eax
01391022    8945 E4         mov   dword ptr , eax
01391025    8945 E8         mov   dword ptr , eax
01391028    8945 EC         mov   dword ptr , eax
0139102B    8945 F0         mov   dword ptr , eax
0139102E    8945 F4         mov   dword ptr , eax
01391031    8945 F8         mov   dword ptr , eax
01391034    C745 D0 0000000>mov   dword ptr , 0x0            ; int s=0
0139103B    C745 CC 0000000>mov   dword ptr , 0x0            ; int i=0
01391042    EB 09         jmp   short testtest.__security_check_cookie
01391044    8B4D CC         mov   ecx, dword ptr             ; ecx=i
01391047    83C1 01         add   ecx, 0x1                               ; ecx++
0139104A    894D CC         mov   dword ptr , ecx            ; i=ecx
0139104D >837D CC 0A      cmp   dword ptr , 0xA            ; i<10 ?
01391051    7D 1C         jge   short testtest.0139106F
01391053    8B55 CC         mov   edx, dword ptr             ; edx=i
01391056    83C2 01         add   edx, 0x1                               ; edx++
01391059    8B45 CC         mov   eax, dword ptr             ; eax=i
0139105C >895485 D4       mov   dword ptr , edx      ; a=edx=i+1
01391060    8B4D CC         mov   ecx, dword ptr             ; ecx=i
01391063    8B55 D0         mov   edx, dword ptr             ; edx=s
01391066    03548D D4       add   edx, dword ptr       ; s=s+a
0139106A    8955 D0         mov   dword ptr , edx
0139106D >^ EB D5         jmp   short testtest.01391044                ; 进入循环
0139106F    68 F4203901   push    testtest.013920F4                      ; ASCII "pause"
01391074 >FF15 A0203901   call    dword ptr [<&MSVCR100.system>]         ; msvcr100.system
0139107A    83C4 04         add   esp, 0x4
0139107D    33C0            xor   eax, eax
0139107F    8B4D FC         mov   ecx, dword ptr
01391082    33CD            xor   ecx, ebp
01391084    E8 04000000   call    testtest.__security_check_cookie
01391089    8BE5            mov   esp, ebp
0139108B    5D            pop   ebp
0139108C    C3            retn
**** Hidden Message *****
数组结束!

keya 发表于 2014-12-26 00:21

谢谢楼主分享心得。

逆向学习菜鸟 发表于 2014-12-26 00:22

教程不错,坚持学习下去

神秘小子 发表于 2014-12-26 01:13

感谢分享教程   学习下

chihiro 发表于 2014-12-26 07:44

很好的东西 感谢

jolly_800 发表于 2014-12-26 08:39

这样学习真的好,不过只会一点C语言,还好能看的懂,谢谢!

geekcat 发表于 2014-12-26 09:00

这个系统的都要收藏
谢谢

有何不可 发表于 2014-12-26 09:33

感谢分享!!!

Scar-疤痕 发表于 2014-12-26 09:42

谢谢楼主分享教程,辛苦了!

逍遥枷锁 发表于 2014-12-26 10:00

谢谢老师更新,非常好。
页: [1] 2 3 4
查看完整版本: 汇编逆向(四)