TA的每日心情 | 开心 2015-8-23 23:49 |
---|
签到天数: 27 天 [LV.4]偶尔看看III
|
【破文标题】文件*** 爆破和做注册机的过程
【破文作者】GGLHY
【破解工具】PEID看雪版、OD、W32Dasm v10.0 汉化增强版、keymake1.73.exe
【破解平台】Winxp-sp2
【软件名称】文件***
【软件简介】最大限度的保护您的文件不被非法浏览,阅读,复制,更改和删除
【破解声明】只为了解软件的保护技术、顺便看看非计算机专业的自己水平有多菜。时刻谨记:追码不为利只为艺!
------------------------------------------------------------------------
【破解过程】为尊重软件作者,特将该程序名以A.EXE代替。
1.运行A.EXE,点“帮助”--》“注册”,填入假码用户名:gglhy 注册码15987530,点确定,弹出“注册码不正确”的对话框。好,退出。
2.PEID看雪版出马,看到“Microsoft Visual C++ 6.0”,呵呵,无壳,我喜欢。
3。OD出马,载入,运行,呵呵,EXPLORER消失了。调出任务管理器也没看见OD的影子,看来可能是该软件在运行时有缺陷吧。不管它,请出W32Dasm v10.0 汉化增强版。
4。W32Dasm v10.0 汉化增强版载入A.EXE,通过字符串参考,找到以下的几个信息:
(这部分省略)
"已经注册,您有任何问题请与作者联系:
clientinfo"
"億$"
"隐藏的文件/夹在退出文件***后仍要隐藏吗?
要?
"隐藏文件***"
"***"
"找不到文件***正常启动所需的文件:
%s"
"这将卸载文件***,你确定吗?"
"注册成功"
"注册给:"
"注册码: XXXXXXXXXX"
"注册码: 尚未注册"
"注册码不正确"
"注册码或用户名不能为空"
"注册信息已经成功复制到剪贴板,请在其他编辑软件?
(这部分省略)
反复双击"注册码不正确",看到只有一处调用,即:00410819 ,
反复双击"注册成功",看到也只有一处调用, 即:0041082E ,
(这部分省略)。。。。
::004107F8:: E8 BBAC0100 CALL 0042B4B8
::004107FD:: 83C4 0C ADD ESP,C
::00410800:: 8D4C24 10 LEA ECX,[ESP+10]
::00410804:: 8BF8 MOV EDI,EAX
::00410806:: 6A FF PUSH -1 //这里估计可以作点文章的!!!
::00410808:: E8 11010300 CALL 0044091E
::0041080D:: 3BF7 CMP ESI,EDI
::0041080F:: 5F POP EDI
::00410810:: 6A 40 PUSH 40
*possible stringdata Ref from Data obj-> “文件***”
::00410812:: 68 70B94600 PUSH 46B970
::00410817:: 74 15 JE SHORT 0041082E //不跳就挂了,因此必须跳!
*possible stringdata Ref from Data obj->" 注册码不正确"
::00410819:: 68 60B94600 PUSH 46B960
::0041081E:: 8BCD MOV ECX,EBP
::00410820:: E8 6E1F0300 CALL 00442793
::00410825:: 8BCD MOV ECX,EBP
::00410827:: E8 8B490300 CALL 004451B7
::0041082C:: EB 48 JMP SHORT 00410876
*Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00410817(C)
|
*possible stringdata Ref from Data obj->" 注册成功"
::0041082E:: 68 54B94600 PUSH 46B954
(这部分省略)。。。。
显然,关键跳在00410817,爆破的话,用UE改成JNE或者JMP试试。既:
::00410817:: 74 15 改为
::00410817:: 75 15 或
::00410817:: EB 15
另存为BP.EXE,试一下看看。
TMD,一运行BP.EXE,弹出"文件***引擎初始化失败,请重新启动后再试"的提示,点确定后就退出了。好吧,看看KILL掉这个提示有什么情况发生?
W32Dasm v10.0 汉化增强版载入BP.EXE,反复双击 "文件防火墙引擎初始化失败,请重新启动后再试"字符串,发现只有一处调用:
::00417108:: E8 73A0FEFF CALL 00401180
::0041710D:: 3BC7 CMP EAX,EDI
::0041710F:: 8985 802B0000 MOV [EBP+2B80],EAX
::00417115:: 0F85 CA000000 JNZ 004171E5 //把它改成JZ或JMP看看?
::0041711B:: 6A 10 PUSH 10
*possible stringdata Ref from Data obj->“ 文件*** ”
::0041711D:: 68 70B94600 PUSH 46B970
*possible stringdata Ref from Data obj->" 文件***引擎初始化失败,请重新启动后再试"
::00417122:: 68 80C54600 PUSH 46C580
用UE把::00417115::处的 JNZ 004171E5 改成JZ看看?另存为OKBP.EXE。运行一下。呵呵,除了提示有个什么文件找不到外(后来看到是找不到对应的OKBP.DLL,才判断程序名称由A.EXE改名为BPOK.EXE后的结果,但好像不影响使用)能正常运行,输入假码注册,呵呵,居然注册成功了。退出后重新运行OKBP.EXE,点注册弹出"已经注册,您有任何问题请与作者联系:
clientinfo"的对话框。
爆破成功!
爆破成功总觉得应该可以找出注册码来的。好Try it again!
回到这里:
(这部分省略)。。。。
::004107F8:: E8 BBAC0100 CALL 0042B4B8
::004107FD:: 83C4 0C ADD ESP,C
::00410800:: 8D4C24 10 LEA ECX,[ESP+10]
::00410804:: 8BF8 MOV EDI,EAX
::00410806:: 6A FF PUSH -1
::00410808:: E8 11010300 CALL 0044091E
::0041080D:: 3BF7 CMP ESI,EDI
::0041080F:: 5F POP EDI
::00410810:: 6A 40 PUSH 40
*possible stringdata Ref from Data obj-> “文件***”
::00410812:: 68 70B94600 PUSH 46B970
::00410817:: 74 15 JE SHORT 0041082E //不跳就挂了,因此必须跳!
*possible stringdata Ref from Data obj->" 注册码不正确"
::00410819:: 68 60B94600 PUSH 46B960
::0041081E:: 8BCD MOV ECX,EBP
::00410820:: E8 6E1F0300 CALL 00442793
::00410825:: 8BCD MOV ECX,EBP
::00410827:: E8 8B490300 CALL 004451B7
::0041082C:: EB 48 JMP SHORT 00410876
*Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00410817(C)
|
*possible stringdata Ref from Data obj->" 注册成功"
::0041082E:: 68 54B94600 PUSH 46B954
(这部分省略)。。。。
这里的::00410817:: 74 15 JE SHORT 0041082E跳向了死亡,显然真码与假码的比较应该在前面完成了。那么,哪个地方进行了比较呢?
::00410808处的 CALL 0044091E很可疑,请出keymake1.73.exe,填入如下地址:
中断地址:00410808
中断次数:1
第一字节:E8
指令长度:5
选择“寄存器方式----》ESI———》十进制”
另存为CR.EXE。
但是,为什么是ESI呢?呵呵,我是进入到::00410808处的 CALL里面,看到第一行就是
::0044091E:: 56 PUSH ESI
我不选它我选谁?
运行CR.EXE,填入假码用户名:gglhy 注册码15987530,点注册,弹出“427862873”。退出。
运行A.EXE,输入用户名:gglhy 注册码427862873 注册成功!
爽!
------------------------------------------------------------------------
【破解总结】 没管它什么算法,因为它再怎么算它最后都要给出一个判断结果,绕过这个头痛的算法,爆破是很有效的。
呵呵,注册机完全靠自己的判断作出来的,如果不懂算法,下次可能就没这样的运气了!
说点题外话,这个软件每次运行后我的EXPLORER就消失了,只能通过任务管理器调出来!可能是软件的功能运行的需要吧。这软件还可以的。
------------------------------------------------------------------------
【版权声明】请尊重软件作者的辛勤劳动,破解只为艺不为利! |
|