[转帖]完破作文克星IIV10经历 --- 初学者作品
完破作文克星IIV10经历 --- 初学者作品
[作者] 秋语
[工具] Peid,Ollydbg,Dede,W32dasm,DeDe
[平台] WinXP SP2
[软件] http://www1.skycn.com/soft/6379.html
[加壳] ASPack 2.11 -> Alexey Solodovnikov
[声明] 这是我的破文处女作,初学反编译本没什么可写的,但因为各位老哥老姐的热心的教学破文,写一写以示答谢。学习你们的东西使我的破技开始变得有套路。本人(众多高手皆菜鸟,所以不敢自称菜鸟)再次谢过!
错漏之处多多指导。
[内容] 破解这篇之前,有过非专业的写程序经验,对反编译了解不多。
因此:
1.循着各位高手破文的方法,运行程序,试玩了一下,看看试用版有无功能限制,没有。但输入注册码没有校验提示就退出。
2.OD载入,常规隐藏调试器。因为是ASPack 2.11,可以用脚本、ESP律、内存断点、单步跟踪等等方式找到出口POPAD,对这一软体进行随意脱壳。脱出来后运行可以运行,还是Import Reconstructor修复一下。好!正玩得开心,猛然发现软件主界面被锁定。怎么回事?赶紧退出OD,用原版运行,依然如故。原来试用期限已到,我还没熟悉呢!卸载重装软体,依旧锁定,检查注册表,删除其所有记录,还是锁定。Ghost恢复C驱后,发现只有5次机会。脱壳过程中发现软件有自校验,至少更改软件名不会运行。
好吧!既然试用无限制那就暴破好了。
3.OD载入脱壳后的文件,名字别改(保存好原文件)。设置“Mov EAX,5”、“CMP EAX,5”“CMP AL,5”等条件断点分别动画跟踪,无果。F8+F7单步跟踪,累死了,无果,但看见了软件注册需要本地电脑信息,了解注册码生成过程,无奈写不来注册机。休息。
4.上网查查有没有此软体的破文可以学习?晕,没有!有个注册机,但在我这里是不管用的。
5.午饭后,决定再试试,OD载入,因为没有注册码验证信息、没有字串参考,常用的设置断无效,函数、窗口跟踪均无果。徒劳。
6。动态的不行,就来点静态的的,利用W32dasm反汇编,发现字串“注册”,大喜,逆向分析发现了关键跳转在005AD147,005AD15A处,改完更正文件名,嘿嘿,注册版了呢!
005AD142 . E8 F585E5FF CALL Autowms.0040573C
005AD147 0F85 8E000000 JNZ Autowms.005AD1DB ;修改成 0F84 8E000000
005AD14D . 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
005AD150 . BA 38D65A00 MOV EDX,Autowms.005AD638
005AD155 . E8 BA78E5FF CALL Autowms.00404A14
005AD15A 75 7F JNZ SHORT Autowms.005AD1DB ;修改成 74 7F
005AD15C . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005AD15F . 05 74080000 ADD EAX,874
005AD164 . BA B8D45A00 MOV EDX,Autowms.005AD4B8//OD复制的,W32dasm下地址是一样的,就拣个赖了。
高兴太早了,软体操作界面仍然被琐定!!!!
7.回来找“00000005”出现处的比较语句地址,准备在OD中设断跟踪,无奈作者让“00000005”出现了几十次,筛选出来的可疑断点都近20个,哥们马建可真理解破解人的心情。无法仔细跟踪,总是不停地Jamp,不厌其烦地Call。
8.选个简单点的练习吧?!我准备放弃,我选的练习题材太难了。¥%#2!%…—*(*¥#* 在网上闲逛,读读高人们的大作。一篇“DeDe寻找Delphi程序关键点”动画引起我的兴趣,想起刚才那个正是Delphi程序写的,可能有用。(在此谢谢动画作者,你带领我认识了DeDe这把锋剑)看完,再经过DeDe的艰难分析,查看Form,晕死,错误!不能重建Form 。胡乱点了一气。呵呵,发现DeDe这东东不错呢,双击直接跳转(马老师的东西会把你跳晕),再多的Call都一一按层次列出(好极!)。经过长时间的代码分析,终于弄清楚了马老师的思路,高----9个Timer控制器,其中3个像超级巡警,不停跟踪程序,验证注册资料,监视计算机内存内所有的信息,发现有设定的调试就采取措施,但不是终止,是跟你玩太极。原来我总在不停的太极循环转悠,怎么找得到关键点?!还有很多的套叠循环,交叉跳转!
9.但是,我想计算机程序必须有关键比较,再复杂也可以找到。经过仔细分析(这是DeDe的好),找到了一个Flag标志性语句Cmp AL,1,而且在循环套循环的Call里有一个Mov AL,DWORD PTR SS:[EBP+xxx],把她改成MOV AL,1就可以。好,马上试验看看。
10.OD载入,直接转到,修改,成功!界面锁定解除。
11.开心!有收获!休息!可是,一会儿小孩说:老爸,有好几个地方打不开,点击不动。//我晕,难道有功能限制?不会吧?!试用次数太少,没搞搞清楚,但马老师说了没有呀!(老师的话我信)
12.OD载入,在修改处的几个套叠循环跟踪一下,发现某些时候要AL被置为0,原来又是Timer的事,注册码验证在几个Timer控件里,不同功能会开启不同的Timer,历经几次跟踪,得出结论:原来修改的地方太早。下面列出四处修改,是最后结论:
005B879D . BA 0C905B00 MOV EDX,Autowms.005B900C ;
005B87A2 . E8 59CFE4FF CALL Autowms.00405700
005B87A7 . 8D95 34FEFFFF LEA EDX,DWORD PTR SS:[EBP-1CC]
005B87AD . 58 POP EAX
005B87AE . E8 89CFE4FF CALL Autowms.0040573C
005B87B3 0F85 B8000000 JNZ Autowms.005B8871 ; Nop
005B87B9 . 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
005B87BC . BA 18905B00 MOV EDX,Autowms.005B9018
005B87C1 . E8 4EC2E4FF CALL Autowms.00404A14
005B87C6 0F85 A5000000 JNZ Autowms.005B8871 ; Nop
005B87CC 8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
005B87D2 . BA 34905B00 MOV EDX,Autowms.005B9034
005AD142 . E8 F585E5FF CALL Autowms.0040573C
005AD147 0F85 8E000000 JNZ Autowms.005AD1DB ; Mov AL,1
005AD14D . 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
005AD150 . BA 38D65A00 MOV EDX,Autowms.005AD638 ;ASCII "1999121103:00:16"
005AD155 . E8 BA78E5FF CALL Autowms.00404A14
005AD15A 75 7F JNZ SHORT Autowms.005AD1DB ; Nop
005AD15C . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005AD15F . 05 74080000 ADD EAX,874
005AD164 . BA B8D45A00 MOV EDX,Autowms.005AD4B8
【后语】这是一款好的软体,娃娃正学作文,评价和网上一样好。感谢马老师!目前网上没有此软体的破解版下载,希望以后也没有。因为我尊敬教师。 |