GGLHY 发表于 2008-1-11 08:17:50

文件*** 爆破和做注册机的过程

【破文标题】文件*** 爆破和做注册机的过程
【破文作者】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,                        
::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 ,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,                        
::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就消失了,只能通过任务管理器调出来!可能是软件的功能运行的需要吧。这软件还可以的。

------------------------------------------------------------------------
【版权声明】请尊重软件作者的辛勤劳动,破解只为艺不为利!

magic659117852 发表于 2008-1-11 09:17:49

显然,关键跳在00410817,爆破的话,用UE改成JNE或者JMP试试。既:


-------- /:014   笔误?


00410808处的 CALL 0044091E很可疑,请出keymake1.73.exe,填入如下地址:
中断地址:00410808
中断次数:1
第一字节:E8
指令长度:5
选择“寄存器方式----》ESI———》十进制”

------------- /:001 对偶来说很新鲜
页: [1]
查看完整版本: 文件*** 爆破和做注册机的过程