首页
社区
课程
招聘
[分享]C语言逆向小笔记[错误修正]
发表于: 2011-2-27 23:50 8581

[分享]C语言逆向小笔记[错误修正]

2011-2-27 23:50
8581

今天晚上做的,文字就不写了,没什么技术含量,免得被人拍砖,源代码和反汇编代码附上
lea     ebx, [esp+38h+var_28]  
lea     edi, [esp+38h+var_20]   这两处应该是ESP+38代表了一个堆栈地址,+28H应该是代表了这个地址的起始大小,下面那个add     ebx, 2   和add     edi, 8是它们的内容+2和 +8
这两个寄存器里面存放的是Address,所以是地址+2和+8

.text:00401000 83 EC 28          sub     esp, 28h                        ; ESP=128,ESP-28=100
.text:00401003 53                push    ebx                             ; ESP-4,100-4=96
.text:00401004 55                push    ebp                             ; ESP-8,100-8=92
.text:00401005 56                push    esi                             ; ESP-C,100-C=88
.text:00401006 57                push    edi                             ; ESP-F,100-F=84
.text:00401007 68 5C 70 40 00    push    offset aDouble                  ; "double"
.text:0040100C 68 54 70 40 00    push    offset aShort                   ; "short"
.text:00401011 68 48 70 40 00    push    offset a23s10s                  ; "%23s %10s\n"
.text:00401016 E8 45 00 00 00    call    printf
.text:0040101B 83 C4 0C          add     esp, 0Ch                        ; renew wareroom,72+12=84,now wareroom originate address be EDI pointer of address
.text:0040101E 33 F6             xor     esi, esi                        ; esi zero
.text:00401020 8D 5C 24 10       lea     ebx, [esp+38h+var_28]           ; Load ESP+38h+28,This We Can Conceive Is Load ESP+38 of Store Address,at+28 Of Offset Address
.text:00401024 8D 7C 24 18       lea     edi, [esp+38h+var_20]           ; Load ESP+38H+20,This Me Can Conceive Is Load ESP+38 Of AnotherSide Address,Endure Look Next
.text:00401028 BD 04 00 00 00    mov     ebp, 4                          ; EBP Load Constant 4
.text:0040102D
.text:0040102D                   loc_40102D:                             ; CODE XREF: _main+45j
.text:0040102D 57                push    edi                             ; EDI Enter Corral ESP-4,84-4=80
.text:0040102E 53                push    ebx                             ; EBX Enter Corral ESP-8, 84-8=76
.text:0040102F 56                push    esi                             ; ESI Enter Corral ESP-C,84-C=72
.text:00401030 68 30 70 40 00    push    offset aPointerD10p10p          ; "pointer +%d: %10p %10p\n"
.text:00401035 E8 26 00 00 00    call    printf                          ; CALL Printf Function
.text:0040103A 83 C4 10          add     esp, 10h                        ; Resume Corral
.text:0040103D 46                inc     esi                             ; Inc ESI ESI Now Is ESI+1
.text:0040103E 83 C7 08          add     edi, 8                          ; Just Is Use Lea Load Into EDI Address,Add EDI+8 Equal EDI Address+8
.text:00401041 83 C3 02          add     ebx, 2                          ; Ditto
.text:00401044 4D                dec     ebp                             ; Ebp-1
.text:00401045 75 E6             jnz     short loc_40102D                ; Unknown Not Learned How This
.text:00401047 5F                pop     edi
.text:00401048 5E                pop     esi
.text:00401049 5D                pop     ebp

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
2
看起来不是GCC的编译器风格。
2011-2-28 05:00
0
雪    币: 45
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
为神马汇编里面的注释我一句也读不懂
2011-2-28 09:01
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=邓韬;930414]今天晚上做的,文字就不写了,没什么技术含量,免得被人拍砖,源代码和反汇编代码附上
lea     ebx, [esp+38h+var_28]  
lea     edi, [esp+38h+var_20]   这两处应该是ESP+38代表了一个堆栈地址,+28H应该是代表了这个地址的起始大小,...[/QUOTE]

建议用中文注释 不是英文注释不好 而且中国人用英文是一个人一个用法 根本没法畅通的交流
2011-2-28 15:22
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
5
谢谢指点,知道了,本来想练习哈自己的英文阅读能力的
2011-2-28 18:14
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢你的交流
2011-2-28 19:35
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
7
lea     edi, [esp+38h+var_20]

它的作用是这样的:

edi = esp+38h+var_20
2011-2-28 20:24
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
8
谢谢楼上大牛启发
2011-3-1 18:25
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
9
[QUOTE=cntrump;930768]lea     edi, [esp+38h+var_20]

它的作用是这样的:

edi = esp+38h+var_20[/QUOTE]

常用的优化 天书夜读还是哪本书上说过
2011-3-12 23:52
0
雪    币: 414
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
Reversing:Secrets of Reverse Engineering
2011-4-17 20:06
0
游客
登录 | 注册 方可回帖
返回
//