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

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

2004-11-8 09:49
3929
其中这两句
: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中去

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

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

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