首页
社区
课程
招聘
[旧帖] [求助]新手可能遇见的极大障碍问题 0.00雪花
发表于: 2010-4-29 01:50 3571

[旧帖] [求助]新手可能遇见的极大障碍问题 0.00雪花

2010-4-29 01:50
3571
我的问题估计也是许多新手朋友所不能理解的问题,希望广大高手解决下我们的困惑。
比如我们拿ID为108257的贴子为例,我摘来一段代码。

00495DAF  |.  E8 4F8F0400   call    004DED03
00495DB4  |>  66:8B06       /mov     ax, word ptr [esi]
00495DB7  |.  66:3D 2000    |cmp     ax, 20                          ;  第一个字符是否空格
00495DBB  |.  74 06         |je      short 00495DC3
00495DBD  |.  66:3D 0900    |cmp     ax, 9                           ;  第一个字符是否句号
00495DC1  |.  75 05         |jnz     short 00495DC8
00495DC3  |>  83C6 02       |add     esi, 2
00495DC6  |.^ EB EC         \jmp     short 00495DB4
00495DC8  |>  56            push    esi
00495DC9  |.  E8 23550300   call    004CB2F1                         ;  验证用户名中有否0
00495DCE >|.  8B4C24 18     mov     ecx, dword ptr [esp+18]
00495DD2  |.  83C4 04       add     esp, 4
00495DD5  |.  85C0          test    eax, eax                         ;  验证用户名长度是否为0
00495DD7  |.  8901          mov     dword ptr [ecx], eax
00495DD9  |.  7E 1A         jle     short 00495DF5
00495DDB  |>  8B01          /mov     eax, dword ptr [ecx]
00495DDD  |.  66:8B5446 FE  |mov     dx, word ptr [esi+eax*2-2]

……
……
00495F60  /$  81EC 34020000 sub     esp, 234
00495F66  |.  53            push    ebx
00495F67  |.  8B9C24 3C0200>mov     ebx, dword ptr [esp+23C]         ;  取用户名到EDX
00495F6E  |.  56            push    esi
00495F6F  |.  57            push    edi
00495F70  |.  53            push    ebx
00495F71 >|.  E8 7B530300   call    004CB2F1                         ;  验证用户名字符中是否有0,EAX返回用户名长度00495F76  |.  8BF0          mov     esi, eax
00495F78  |.  83C4 04       add     esp, 4
00495F7B  |.  85F6          test    esi, esi                         ;  又一次验证用户名是否输

入为空

====================
标红的位置是问题所在。比如第一出标红,破解者怎么知道这句的意思是说“ 第一个字符是否空格”。
还有第三处,
就一个mov     ebx, dword ptr [esp+23C]
破解者怎么知道这句的意思是“取用户名到EDX”。
怎么看出来dword ptr [esp+23C] 是用户名?
为什么这里的esp+23C就成了用户名?
貌似这句注释有问题,应该是放到ebx才对吧。

希望大家帮忙解答下,
如果可以,请各位高手带带小弟,让小弟也能享受到软件调试的乐趣!感谢
QQ:5531574

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
局部变量      
2010-4-29 09:36
0
雪    币: 268
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
GUX
3
找本汇编书先看一遍吧
2010-4-29 14:03
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一堆汇编代码。。。看来俺得看看汇编了。。。
2010-4-29 14:06
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
5
只看一句看不出来,那是整体分析分析出来的。
就像一句话要放在具体的语境里才有他确切的含义。
2010-4-29 17:06
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
00495DB7  |.  66:3D 2000    |cmp     ax, 20                          ;  第一个字符是否空格
------------------
ASCII码20是空格

00495F67  |.  8B9C24 3C0200>mov     ebx, dword ptr [esp+23C]         ;  取用户名到EDX
----------------
这个要分析代码的上下文才能判断esp+23C处是什么

00495F71 >|.  E8 7B530300   call    004CB2F1                         ;  验证用户名字符中是否有0,EAX返回用户名长度
---------
call是调用另外一段代码,作者分析了另外那段代码,注释写在这里了
一般调用函数,返回值都是放在eax中

先找本汇编书打基础吧,另外刚上来就看这些可能会打击积极性啊,先自己写个hello world逆一下,一步一步来
2010-4-29 20:28
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哇,突然发现楼主是初级用户,我还在万年求邀请码呢
2010-4-29 20:29
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
啥???几时问过我了。。。。平时我比较少上论坛。看论坛也不太发言。哈哈。
不过以后上的会比较多了。各位高手,带带小弟,共同发展,非常感谢!
2010-4-30 12:28
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
恩,这句是硬道理!
非常感谢!
2010-4-30 12:30
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我也正在开始学这个,唉,看了好几天了,头都大了。
2010-4-30 12:33
0
游客
登录 | 注册 方可回帖
返回
//