首页
社区
课程
招聘
这是看雪精华5中的一段,不明白
2004-11-8 09:49 3713

这是看雪精华5中的一段,不明白

2004-11-8 09:49
3713
其中这两句
:00404BCF 8B46FC                  mov eax, dword ptr [esi-04]〈--取得假注册码的位数
:00404BD2 8B57FC                  mov edx, dword ptr [edi-04] 〈--取得真注册码的位数
他是如何取得长度的

00404BB8 53                      push ebx
:00404BB9 56                      push esi
:00404BBA 57                      push edi
:00404BBB 89C6                    mov esi, eax〈--使用ESI做EAX的影象,[EAX]里放着假的注册码
:00404BBD 89D7                    mov edi, edx〈--使用EDI做EDX的影象,[EDX]里放着真的注册码
:00404BBF 39D0                    cmp eax, edx〈--比较真假注册码的地址是不是一样
:00404BC1 0F848F000000            je 00404C56 〈--如相同就跳到不能注册里去
:00404BC7 85F6                    test esi, esi〈--测试假注册码的地址是不是0(也就是是不是存在)
:00404BC9 7468                    je 00404C33  〈--如等于0(不存在)就跳到不能注册里去
:00404BCB 85FF                    test edi, edi〈--测试假注册码的地址是不是0(也就是是不是存在)
:00404BCD 746B                    je 00404C3A  〈--如等于0(不存在)就跳到不能注册里去
:00404BCF 8B46FC                  mov eax, dword ptr [esi-04]〈--取得假注册码的位数
:00404BD2 8B57FC                  mov edx, dword ptr [edi-04] 〈--取得真注册码的位数
:00404BD5 29D0                    sub eax, edx〈--真假注册码的位数相减
:00404BD7 7702                    ja 00404BDB 〈--假注册码的位数大过真的注册码,就跳到不能注册
:00404BD9 01C2                    add edx, eax〈--把假注册码的位数放到EDX中去

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 1
打赏
分享
最新回复 (7)
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2004-11-8 10:21
2
0
这里的真假注册码长度是程序预先取得的保存在局部变量中。[esi-04]和[edi-04]是指向这个地址的。
:00404BCF 8B46FC                  mov eax, dword ptr [esi-04]〈--取得假注册码的位数 
:00404BD2 8B57FC                  mov edx, dword ptr [edi-04] 〈--取得真注册码的位数 
他是如何取得长度的
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
herofour 2004-11-8 10:49
3
0
我找不到他是在哪个地方存的
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2004-11-8 11:41
4
0
这个用不着去找吧?取得字符的长度有很多方法,只要知道程序要比较字符的长度就行了。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yglpy 2004-11-13 09:23
5
0
aoaoaoaoa
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
1806 2004-11-13 13:52
6
0
不太明白
雪    币: 265
活跃值: (430)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
jackily 9 2004-11-24 10:24
7
0
最初由 小虾 发布
这个用不着去找吧?取得字符的长度有很多方法,只要知道程序要比较字符的长度就行了。

1楼所说的是指存放注册码的地址吧。小虾说得对,长度是程序内设好了的,我们也不需要去管它,只知道长度就够了。
雪    币: 3246
活跃值: (339)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
blowfish 2004-11-24 12:19
8
0
Pascal里面字符串的长度是放在字符串的头部的并且会动态修改(例如合并字符串时),是编译器自己内部实现的或者编译器带的库自己实现的,不象C语言里面那样需要用strlen( )去临时求长度。
游客
登录 | 注册 方可回帖
返回