|
发表于 2009-12-7 15:37:38
|显示全部楼层
【破解声明】纯粹学习,算法简单,适合新手学习
【破解工具】OLLDBG,
PEID
【破解难度】EASY
【软件保护】SN+TIME
【软件下载】http://www.stepok.com/chs/index.htm
运行软件,程序要注册,错误会有提示
先“程咬金三板斧”吧:查壳脱壳、静态分析、动态分析
Microsoft Visual C++
6.0编写,没有加壳
静态分析作用不大,软件一开始就把字串初始化存入内存,没有明显的改跳转爆破口
只能跟踪查找了,用OD载入,F9运行,设置断点为
GETWINDOWTEXTA,回到界面输入注册码,按解锁就会被拦截,拦载后尽快返回程序领空,可
以见到:
0042A53E
. E8 95F80200 CALL
//这里取注册码
0042A543
. 8DB3 E0000000 LEA ESI,DWORD PTR DS:[EBX+E0]
0042A549
//CL和DL相等设AL为1
0042AF9C \. C2
0400 RETN
4
到这里为止,算法已经完全分析完!
总结一下:
将注册码或注册名累加在大多数软件中使用,这个程序的注册算法也是这样,由于较为简单,适合新手了解此类注册算法的基本特征
算法总结一下:
LEN(注册码)=1C
(第2位+1)AND
6=2
前27位总和/34,余数与1A比较:
大于等于1A,将余数+47
小于1A,将余数+41
前27位+最后一位=注册码 |
|