- UID
- 90
注册时间2005-1-27
阅读权限20
最后登录1970-1-1
以武会友
 
TA的每日心情 | 开心 2015-7-21 08:38 |
---|
签到天数: 3 天 [LV.2]偶尔看看I
|
掌握算法最基本的是用户名取abcde,其相应ascii码是61,62,63,64,65 (16进制),这些一定要牢记于心。你在各个调试软件中所看到的寄存器值都是16进制的。切记不要见到 call就进入。若经过某个call,发现用户名变成ABCDE,其ascii码是41,42,43,44,45 (16进制),那么此call的作用就是小写转大写,再追入此call就显得多此一举了。
找到算法关键的一段循环或进入关键call,这时开始警觉,慢慢跟踪,单步追踪时时刻留意和观察各个寄存器的变化,主要是eax,ebx,ecx,edx。下面一段是典型的计算注册码的循环。
由于OllyDbg的布局设计,使用它观察注册算法比TRW更为清晰、流畅。
在某个寄存器中已存放着用户名字符的个数
111111 movsx XXXX,XXXXX 依次取用户名
.................
inc ecx ecx是计数器
...............
cmp xxxx,xxxx 比较用户名是否取完
jl或jg 111111 没有取完就跳回去取完就向下走
当你看到某个寄存器中61,62,63,64,65周期性出现时,就会发现循环开始了,
算法就在这一块了,分析和检查出它的算法流程吧,其实一切并不难,祝:早日成功! |
|