算法演义(初学者进)
掌握算法最基本的是用户名取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 ecxecx是计数器
...............
cmp xxxx,xxxx 比较用户名是否取完
jl或jg 111111 没有取完就跳回去取完就向下走
当你看到某个寄存器中61,62,63,64,65周期性出现时,就会发现循环开始了,
算法就在这一块了,分析和检查出它的算法流程吧,其实一切并不难,祝:早日成功! 辛苦了,支持一下^_^ 支持一下。 好东西啊! 好!!谢谢 对初学者太有用了,能详细一点就更好了!
谢谢! 好东西,但是不是任何一种语言编写的用户名窗口字体都是以ABCDE的代码出现的呢? 多一些这种适合我们超菜鸟的教程,多谢楼主分享 学好ASM 不然反推算法 很难很难
页:
[1]
2