• 标 题:菜鸟破解之软件自己显示注册码  
  • 作 者:eyou
  • 时 间:2003/04/29 02:33pm 
  • 链 接:http://bbs.pediy.com

备注:论坛上看见了好几个帖子都是自己关于软件能够自己显示出正确注册码的例子。基  本上大多数的明码比较的软件都能自己显示出注册码。我想起了我一个月前暴力破的第一个软件,正是明码比较的,好,pe diy。
研究软件:闪电ASP v 1.52,只是技术研究不提供下载地址,并且现在已经有新的版本了。工具:trw2000 v1.22 娃娃版 ,W32Dasm V10.0
难度:easy(我到是花了好长时间)
说明:首次破解,不对请指正
感谢:kanxue的书,kanxue论坛及支持的朋友
————————————————————————————————
先用trw2000跟,找到了关键比较处如下:
016F:004DCF16 E81D99F6FF       CALL     00446838
016F:004DCF1B 8B45FC           MOV      EAX,[EBP-04]
016F:004DCF1E 50               PUSH     EAX        
016F:004DCF1F 8BC3             MOV      EAX,EBX
016F:004DCF21 E8C6FCFFFF       CALL     004DCBEC
016F:004DCF26 52               PUSH     EDX
016F:004DCF27 50               PUSH     EAX<==假码入栈
016F:004DCF28 8D45F8           LEA      EAX,[EBP-08]
016F:004DCF2B E8ECC3F2FF       CALL     0040931C
016F:004DCF30 8B55F8           MOV      EDX,[EBP-08]<==真码地址给edx
016F:004DCF33 58               POP      EAX<==假码出栈
016F:004DCF34 E8DF7CF2FF       CALL     00404C18<==关键比较的call
016F:004DCF39 754A             JNZ      004DCF85<==不是就跳出错
————————————————————————————————
在W32Dasm V10.0得到的弹出错误窗口代码:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004DCF39(C)
|
:004DCF85 6A10                    push 00000010

* Possible StringData Ref from Code Obj ->"注册"
                                 |
:004DCF87 B9F0CF4D00              mov ecx, 004DCFF0

* Possible StringData Ref from Code Obj ->"注册码错误,请重新填写!"
                                 |
:004DCF8C BA20D04D00              mov edx, 004DD020<==只要把这句改成 MOV  EDX,[EBP-08]就完成
:004DCF91 A1FC334F00              mov eax, dword ptr [004F33FC]
:004DCF96 8B00                    mov eax, dword ptr [eax]
:004DCF98 E827A3F8FF              call 004672C4
把高亮显示的移到004DCF8C BA20D04D00      mov edx, 004DD020这一行,选 编辑-->快速编辑 将“BA20D04D00 ”改成“8B55F89090”(由于我比较菜,在找MOV  EDX,[EBP-08]的机器码,我花了不少精力后来想016F:004DCF30 不就是吗),
保存,运行。界面不好看,但是还是显示了正确的注册码。