首页
社区
课程
招聘
这个汇编过程执行了什么操作
发表于: 2006-5-20 16:00 4950

这个汇编过程执行了什么操作

2006-5-20 16:00
4950
一个软件中拷出来的
call到这里后就是关键跳转je
:00404CA4 53                      push ebx
:00404CA5 56                      push esi
:00404CA6 57                      push edi
:00404CA7 89C6                    mov esi, eax
:00404CA9 89D7                    mov edi, edx
:00404CAB 39D0                    cmp eax, edx
:00404CAD 0F848F000000            je 00404D42
:00404CB3 85F6                    test esi, esi
:00404CB5 7468                    je 00404D1F
:00404CB7 85FF                    test edi, edi
:00404CB9 746B                    je 00404D26
:00404CBB 8B46FC                  mov eax, dword ptr [esi-04]
:00404CBE 8B57FC                  mov edx, dword ptr [edi-04]
:00404CC1 29D0                    sub eax, edx
:00404CC3 7702                    ja 00404CC7
:00404CC5 01C2                    add edx, eax
麻烦详细解释一下

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个应该是那两个数在作运算吧........
两个数用指针来存取的....
:00404CA4 53                      push ebx    ;保存EBX
:00404CA5 56                      push esi    ;保存ESI
:00404CA6 57                      push edi    ;保存EDI
:00404CA7 89C6                    mov esi, eax;将源数地址放在ESI中
:00404CA9 89D7                    mov edi, edx;将目标数地址放在EDI串
:00404CAB 39D0                    cmp eax, edx;比较源数跟目标数是
                                              ;不是同一个数.
:00404CAD 0F848F000000            je 00404D42 ;是同一个数则跳转
:00404CB3 85F6                    test esi, esi;测试源数是不是0
:00404CB5 7468                    je 00404D1F ;如果跳转
:00404CB7 85FF                    test edi, edi;测试目标数是不是0
:00404CB9 746B                    je 00404D26 ;如果是跳转..
:00404CBB 8B46FC                  mov eax, dword ptr [esi-04];取的数
                               ;A
:00404CBE 8B57FC                  mov edx, dword ptr [edi-04];取数B
:00404CC1 29D0                    sub eax, edx ;两数相减
:00404CC3 7702                    ja 00404CC7 ;如果A>B跳转
:00404CC5 01C2                    add edx, eax;否则将A+B

我就是这样认为的不知道大家怎么看......
2006-5-20 16:26
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
可能是Delphi程序,在取String字符的length
2006-5-20 16:35
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
保存ebx/esi/edi寄存器
:00404CA4 53                      push ebx
:00404CA5 56                      push esi
:00404CA6 57                      push edi
:00404CA7 89C6                    mov esi, eax ;第一个参数传esi
:00404CA9 89D7                    mov edi, edx ;第二个参数传edi
:00404CAB 39D0                    cmp eax, edx ;比较两个参数指针是否相等,相等则退出函数
:00404CAD 0F848F000000            je 00404D42
:00404CB3 85F6                    test esi, esi ;测试第一个参数指针是否为nil
:00404CB5 7468                    je 00404D1F
:00404CB7 85FF                    test edi, edi ;测试第二个参数指针是否为nil
:00404CB9 746B                    je 00404D26
:00404CBB 8B46FC                  mov eax, dword ptr [esi-04] ;取第一个参数的String字符长度到eax
:00404CBE 8B57FC                  mov edx, dword ptr [edi-04] ;取第二个参数的String字符长度到edx
:00404CC1 29D0                    sub eax, edx ;1和2的长度相减
:00404CC3 7702                    ja 00404CC7 ;若eax > edx则跳出
:00404CC5 01C2                    add edx, eax ;否则edx+eax
2006-5-20 16:49
0
雪    币: 221
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 小虾 发布
可能是Delphi程序,在取String字符的length


版主果然厉害
这就是一个用Delphi写的软件,结果是取length,我还以为在把对话框中串加密后和真正的注册码比较呢...................
2006-5-20 18:25
0
雪    币: 268
活跃值: (40)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
6
:00404CBB 8B46FC mov eax, dword ptr [esi-04] ;取第一个参数的String字符长度到eax
:00404CBE 8B57FC mov edx, dword ptr [edi-04] ;取第二个参数的String字符长度到edx
我汇编不行,请问这两句是怎么取字符长度的
2006-5-22 16:49
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
7
最初由 三根火柴 发布
:00404CBB 8B46FC mov eax, dword ptr [esi-04] ;取第一个参数的String字符长度到eax
:00404CBE 8B57FC mov edx, dword ptr [edi-04] ;取第二个参数的String字符长度到edx
我汇编不行,请问这两句是怎么取字符长度的

这是Delphi程序的String类型的特点。在字符串后面的第4个字节是保存String字符的长度的。
2006-5-22 17:30
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
8
最初由 小虾 发布
这是Delphi程序的String类型的特点。在字符串后面的第4个字节是保存String字符的长度的。


佩服佩服~
2006-5-23 09:32
0
雪    币: 117
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
厉害厉害。。。原来是Delphi的约定俗成。呵呵
2006-5-23 14:50
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
10
呵呵,也没什么的,只是看多了眼熟而已。
2006-5-23 15:21
0
游客
登录 | 注册 方可回帖
返回
//