首页
社区
课程
招聘
[求助]CCDebuger老师OllyDBG 入门系列(二)-字串参考 疑问
发表于: 2008-8-16 08:20 3669

[求助]CCDebuger老师OllyDBG 入门系列(二)-字串参考 疑问

2008-8-16 08:20
3669
代码如下
00403B2C /$ 53              PUSH EBX
00403B2D |. 56              PUSH ESI
00403B2E |. 57              PUSH EDI
00403B2F |. 89C6            MOV ESI,EAX                         ; 把EAX内我们输入的用户名送到 ESI
00403B31 |. 89D7            MOV EDI,EDX                         ; 把EDX内的数据“Registered User”送到EDI
00403B33 |. 39D0            CMP EAX,EDX                         ; 用“Registered User”和我们输入的用户名作比较
00403B35 |. 0F84 8F000000   JE CrackMe3.00403BCA                ; 相同则跳
00403B3B |. 85F6            TEST ESI,ESI                        ; 看看ESI中是否有数据,主要是看看我们有没有输入用户名
00403B3D |. 74 68           JE SHORT CrackMe3.00403BA7          ; 用户名为空则跳
00403B3F |. 85FF            TEST EDI,EDI
00403B41 |. 74 6B           JE SHORT CrackMe3.00403BAE
00403B43 |. 8B46 FC         MOV EAX,DWORD PTR DS:[ESI-4]        ; 用户名长度送EAX
00403B46 |. 8B57 FC         MOV EDX,DWORD PTR DS:[EDI-4]        ; “Registered User”字串的长度送EDX
00403B49 |. 29D0            SUB EAX,EDX                         ; 把用户名长度和“Registered User”字串长度相减
00403B4B |. 77 02           JA SHORT CrackMe3.00403B4F          ; 用户名长度大于“Registered User”长度则跳
00403B4D |. 01C2            ADD EDX,EAX                         ; 把减后值与“Registered User”长度相加,即用户名长度
00403B4F |> 52              PUSH EDX
00403B50 |. C1EA 02         SHR EDX,2                           ; 用户名长度值右移2位,这里相当于长度除以4
00403B53 |. 74 26           JE SHORT CrackMe3.00403B7B          ; 上面的指令及这条指令就是判断用户名长度最少不能低于4
00403B55 |> 8B0E            MOV ECX,DWORD PTR DS:[ESI]          ; 把我们输入的用户名送到ECX
00403B57 |. 8B1F            MOV EBX,DWORD PTR DS:[EDI]          ; 把“Registered User”送到EBX
00403B59 |. 39D9            CMP ECX,EBX                         ; 比较
00403B5B |. 75 58           JNZ SHORT CrackMe3.00403BB5         ; 不等则完蛋

对其中两句没看明白 高手给解释写 谢谢
00403B43 |. 8B46 FC         MOV EAX,DWORD PTR DS:[ESI-4]        ; 用户名长度送EAX
00403B46 |. 8B57 FC         MOV EDX,DWORD PTR DS:[EDI-4]        ; “Registered User”字串的长度送EDX
就这两句 用户名长度怎么得到的 不理解

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 107
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
我觉得在这段代码之前肯定有一call函数得到用户名,其返回值就是用户名的长度,入eax。你再往上找找看。
2008-8-16 09:09
0
雪    币: 88
活跃值: (47)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
我也想问个问题
为啥 我用OD打开 CrackMe3.exe 之后
到达的是
7C921231    C3              retn
到这给停下了 不是 OllyDBG 入门系列(二)-字串参考 教程中的
启动 OllyDBG,选择菜单 文件->打开 载入 CrackMe3.exe 文件,我们会停在这里:



为啥我不是在这停下来?
2008-8-16 09:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一楼的朋友
DWORD PTR DS:[EDI-4] 在这里就是取长度的

三楼的朋友
可能是你用过一些脚本造成的
2008-8-16 10:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我想知道是怎么计算的呢
我就不理解 怎么是取长度呢
没明白 需要看什么知识才能理解
2008-8-16 11:52
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
6
第0分钟 - 第20分钟    你做拍摄准备
第20分钟 - 第60分钟 你将整个吃饭的过程拍摄下来了

你说只看吃饭的录像,要怎么知道拍摄准备应该怎么做? 要怎么知道饭怎么煮?

破文就像美食节目一样,只会告诉你在哪里,有什么吃,挑出过程中他们认为重要的部分给你看。

你要做的唯一一件事就是忘记所有破文。自己破解
2008-8-16 13:09
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
7
停在系统入口了。自己改OD的设置~~~
2008-8-16 13:12
0
游客
登录 | 注册 方可回帖
返回
//