• 标 题:浅谈用“搜索大法”来索取内存注册码 (4千字)
  • 作 者:qhj
  • 时 间:2001-3-23 19:53:44
  • 链 接:http://bbs.pediy.com

浅谈用“搜索大法”来索取内存注册码
====================

作者:《绝密档案》
主页:http://hongjian.126.com
破解工具:SOFIC4.5版本!


破解原理:
   根据注册码的真假相近邻的特性,采取搜索假注册码来找真的注册码的方法!
由于部分程序的真假注册码验证方法如下:
call XXXXX        ##### 调用子程序来验证真假注册码
CMP xxx,xxxx   ######  比较真假注册码
jn  跳或不跳    ####    真就怎么样,假就怎么样,跳或不跳

 当你按F10键单步跟踪到此后,(一到出现出错信息为止-即或按F12直到出错为止),
这时,程序已经对你所输入的注册码进行了验证!并发出出错信息!
所以,此时内存中就存在真假两个注册码!此时,内存中就存在真假两个注册码!
所以你就可以使用搜索大法!!


具体步骤如下:以“邮件巡捕”为例子:

软件介绍:邮件搜索
特点:注册码符号其特!!令人费解!

用搜索“S7878”大法取“邮件巡捕 v1.62”注册码
====================

破解步骤:

一)运行TRW,导入“财会软件”,输入
用户名:绝密档案E-mail:http://hongjian.126.com
注册码:787878-78787878-78787878 
二)^+D 返回SOF状态!
三)设置断点:bpx hmemcpy  后,按F5返回“邮件巡捕 ”,再按确定键!立即被TRW拦截成功
四)BD *临时中断!
五)按F12键 37次后,因第38次出错,且出错后并不能立即被SOF拦截,故需键F12共37次!
再按F10到这里:

0167:0041C731  POP      ESI
0167:0041C732  RET   
0167:0041C733  MOV      EAX,ECX
0167:0041C735  PUSH    BYTE +01
0167:0041C737  POP      ECX
0167:0041C738  XOR      EDX,EDX
0167:0041C73A  MOV      [EAX+04],ECX
0167:0041C73D  MOV      [EAX+08],EDX
0167:0041C740  MOV      [EAX+0C],EDX
0167:0041C743  MOV      [EAX+10],EDX
0167:0041C746  MOV      [EAX+14],ECX

六)使用"7878"大法 即 S 30:0 LFFFFFFFF '78787878' 进行第一次搜索!
  在“78787878”(共出现三次)的地方并没有注册码出现,正常!因为程序到目前为止,
  还没有对真假两个注册码进行验证,所以,此时搜索只能找到假的,真的还没有出现!
   (很多朋友说不能搜索,我想大概就是这个原因吧)
 

七)于是,使用F10键单步跟踪!!直至出错窗口!按确定后程序立即又被SOFTICE拦截,
  这时你就可以使用搜索大法去搜索!

此时,使用搜索大法发现:
787878
787878
787878
emailspidereasy.exe
Y[MQ6(GAYTa[*)I{FkIP@+@   ###假的注册码
hongjian
  >XUrGyXQhttp://hongjian.126.com
.hYLd$`Q>XUrGyXQ|T"9`C*V   ####真的注册码

  或者你也可以边查看CALL xxx ,cmp xxx,xxx jz xxx ,
边搜索,直到出现真的为止!

  注意,记下出错当前系统的CALL XXXX ###这个CALL XXX 导致出错!
*****************

第二次跟踪:(一般情况下并需要)

 注意,此时,程序不要退出,但是,你必须重新输入相关的注册信息,否则,
否则,以后你所搜索的东西还上一次的内容!只有当第一次不能搜索,才使用第二次,
主要是进入出错的CALLXXX  里面搜索!
(本例并不需要,大多数也不需要)

八)按确定后,BE * 恢复断点!再键F5键返回程序,再确定!又被拦截成功!
九)BD * 中断后,再按F12 37次,再次来到这里:

0167:0041C731  POP      ESI
0167:0041C732  RET   
0167:0041C733  MOV      EAX,ECX
0167:0041C735  PUSH    BYTE +01
0167:0041C737  POP      ECX
0167:0041C738  XOR      EDX,EDX
0167:0041C73A  MOV      [EAX+04],ECX
0167:0041C73D  MOV      [EAX+08],EDX
0167:0041C740  MOV      [EAX+0C],EDX
0167:0041C743  MOV      [EAX+10],EDX
0167:0041C746  MOV      [EAX+14],ECX

十)再次使用搜索“S7878”大法,这时,在787878下面出现:邮件搜索的EXE文件名,
用户名,用户电子信箱...你注册时的信息!这时,

   要注意:在用户EMAIL信息前头有一此信息,之前有一串奇怪的符号;
之后也有一些奇怪的符号,且包含电子信箱前面的信息,它就真的注册码,抄下吧!

如:
787878
787878
787878
emailspidereasy.exe
Y[MQ6(GAYTa[*)I{FkIP@+@   ###假的注册码
hongjian
  >XUrGyXQhttp://hongjian.126.com
.hYLd$`Q>XUrGyXQ|T"9`C*V   ####真的注册码

总结:

  1)使用搜索“S7878”大法,使其程序第一次运行进行注册码验证,根据真假注册码相近邻的特性,
在第一次程序进行验证后,内存中就已经存在真假两个注册码了!当第二使用搜索S7878大法时,
在内存中便出现真的注册码了!

  2)另,在填写注册码时,最好使用系统不常出现的字符作为注册码!方便准确搜索!
如:asasasasasa  opopopopopo  uiuiuiuiuiuiui  等!不要使用12345678或 11111111等,
因为这些字符在WIN系统中到处都是!它会影响你的搜索准确性!

    本人用此办法破解了:神奇注册表、轻松试卷、万能五笔、DBTOOLS数据专家等

注意:

   此方法,只适用于一些简单的注册码加密法! 
=========================

这种方法也有其局限性:

  1)真的注册码必须在内存中以文本形式出现,不能以十六进制形式出现!
 2)VB程序此方法失效!
  3)一些复杂的注册码验证法。如:逐个验证注册码此方法失效!

==========================

作者:《绝密档案》
主页:http://hongjian.126.com

 欢迎各位大侠多多指导!

  • 标 题:邮件巡捕 V1.62 两步曲破解法!(献给 QHJ-我的朋友) (9千字)
  • 作 者:paulyoung
  • 时 间:2001-3-23 20:44:26

邮件巡捕 V1.62 两步曲破解法!(献给 QHJ-我的朋友)


DOWNLOAD FROM: http://www.crackbest.com/chcrack/crack/CrEmailSpiderEasy162C.zip
    软件简介:定向邮件地址收集专家。从任一网址或搜索引擎开始搜索提取邮件地址。演示版限制,搜索结果不能保存。
    破解工具:TRW2000 V1.03 and W32DASM V8.93

PaulYoung  热力奉献。
★E-mail:paulyoung@yeah.net★
★ 2001.3.23 ★

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

☆  一、首选用W32DASM反汇编邮件巡捕 V1.62。在“串式字符串参考”找到“注册失败”。如下所示:

* Possible StringData Ref from Data Obj ->"注册成功! "
                                  |
:0040991C 682C154300              push 0043152C
:00409921 E867860100              call 00421F8D

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409916(C)
|
:00409926 833D08B1430001          cmp dword ptr [0043B108], 00000001
:0040992D 750E                    jne 0040993D
:0040992F 6A00                    push 00000000
:00409931 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"Thanks for Register! Good Luck "
                                        ->"Everyday!"
                                  |
:00409933 6800154300              push 00431500
:00409938 E850860100              call 00421F8D

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040992D(C)
|
:0040993D 8B5500                  mov edx, dword ptr [ebp+00]
:00409940 8BCD                    mov ecx, ebp
:00409942 FF92C4000000            call dword ptr [edx+000000C4]          *********
:00409948 EB78                    jmp 004099C2                            *********

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040990D(C)
|
:0040994A BE01000000              mov esi, 00000001
:0040994F 3BC6                    cmp eax, esi
:00409951 753A                    jne 0040998D
:00409953 A108B14300              mov eax, dword ptr [0043B108]
:00409958 85C0                    test eax, eax
:0040995A 750E                    jne 0040996A
:0040995C 6A00                    push 00000000
:0040995E 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"注册成功! "
                                  |
:00409960 682C154300              push 0043152C
:00409965 E823860100              call 00421F8D

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040995A(C)
|
:0040996A 393508B14300            cmp dword ptr [0043B108], esi
:00409970 750E                    jne 00409980
:00409972 6A00                    push 00000000
:00409974 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->" Thanks for Register!
The Max "
                                        ->"Urls Spidered Every Time limit "
                                        ->"to 200000!
Good Luck Everyday!"
                                  |
:00409976 68A0144300              push 004314A0
:0040997B E80D860100              call 00421F8D

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409970(C)
|
:00409980 8B4500                  mov eax, dword ptr [ebp+00]
:00409983 8BCD                    mov ecx, ebp
:00409985 FF90C4000000            call dword ptr [eax+000000C4]          ***********
:0040998B EB35                    jmp 004099C2                          ***********

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409951(C)
|

* Possible Reference to Dialog: DialogID_0064
                                  |

* Possible Reference to Dialog: DialogID_7801, CONTROL_ID:0064, ""
                                  |
:0040998D 6A64                    push 00000064

* Reference To: KERNEL32.Sleep, Ord:0296h
                                  |
:0040998F FF1590814200            Call dword ptr [00428190]             
:00409995 A108B14300              mov eax, dword ptr [0043B108]         
:0040999A 85C0                    test eax, eax                        //eax=1,即成功,否则就跳
:0040999C 750E                    jne 004099AC                        //可以在0040998F处设断,在此下 r fl z                                      z 使其不出现“注册失败”提示,继续                                                                  比较,也可以不改,确定“注册失败”继续比较。
:0040999E 6A00                    push 00000000
:004099A0 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"注册失败! "
                                  |
:004099A2 6894144300              push 00431494
:004099A7 E8E1850100              call 00421F8D                            ***********

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040999C(C)
|
:004099AC 393508B14300            cmp dword ptr [0043B108], esi            ***********
:004099B2 750E                    jne 004099C2                            ***********
:004099B4 6A00                    push 00000000
:004099B6 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"Please Check your Register Code "
                                        ->"
Or Contact us to Register!"
                                  |
:004099B8 6858144300              push 00431458
:004099BD E8CB850100              call 00421F8D

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

(以下是重点)

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00409948(U), :0040998B(U), :004099B2(C)
|
:004099C2 6A00                    push 00000000
:004099C4 8BCD                    mov ecx, ebp
:004099C6 E8965B0100              call 0041F561
:004099CB 8BCD                    mov ecx, ebp
:004099CD E8B03E0100              call 0041D882
:004099D2 8D4C2414                lea ecx, dword ptr [esp+14]
:004099D6 C68424C000000005        mov byte ptr [esp+000000C0], 05
:004099DE E8C7100100              call 0041AAAA
:004099E3 8D4C2420                lea ecx, dword ptr [esp+20]      ********* (装有效地址,下同)
:004099E7 C68424C000000004        mov byte ptr [esp+000000C0], 04
:004099EF E8B6100100              call 0041AAAA
:004099F4 8D4C241C                lea ecx, dword ptr [esp+1C]      *********
:004099F8 C68424C000000003        mov byte ptr [esp+000000C0], 03
:00409A00 E8A5100100              call 0041AAAA
:00409A05 8D4C2410                lea ecx, dword ptr [esp+10]      **********
:00409A09 C68424C000000002        mov byte ptr [esp+000000C0], 02
:00409A11 E894100100              call 0041AAAA
:00409A16 8D4C2418                lea ecx, dword ptr [esp+18]      **********
:00409A1A C68424C000000001        mov byte ptr [esp+000000C0], 01
:00409A22 E883100100              call 0041AAAA
:00409A27 8D4C2424                lea ecx, dword ptr [esp+24]
:00409A2B C68424C000000000        mov byte ptr [esp+000000C0], 00
:00409A33 E872100100              call 0041AAAA
:00409A38 8D8C2494000000          lea ecx, dword ptr [esp+00000094]
:00409A3F C78424C00000001D000000  mov dword ptr [esp+000000C0], 0000001D
:00409A4A E85B100100              call 0041AAAA
:00409A4F 8D8C2490000000          lea ecx, dword ptr [esp+00000090]
:00409A56 C68424C00000001C        mov byte ptr [esp+000000C0], 1C
:00409A5E E847100100              call 0041AAAA
:00409A63 8D8C248C000000          lea ecx, dword ptr [esp+0000008C]
:00409A6A C68424C00000001B        mov byte ptr [esp+000000C0], 1B
:00409A72 E833100100              call 0041AAAA
:00409A77 8D8C2488000000          lea ecx, dword ptr [esp+00000088]
:00409A7E C68424C00000001A        mov byte ptr [esp+000000C0], 1A
:00409A86 E81F100100              call 0041AAAA
:00409A8B 8D8C2484000000          lea ecx, dword ptr [esp+00000084]
:00409A92 C68424C000000019        mov byte ptr [esp+000000C0], 19
:00409A9A E80B100100              call 0041AAAA
:00409A9F 8D8C2480000000          lea ecx, dword ptr [esp+00000080]
:00409AA6 C68424C000000018        mov byte ptr [esp+000000C0], 18
:00409AAE E8F70F0100              call 0041AAAA
:00409AB3 8D4C247C                lea ecx, dword ptr [esp+7C]
:00409AB7 C68424C000000017        mov byte ptr [esp+000000C0], 17
:00409ABF E8E60F0100              call 0041AAAA
:00409AC4 8D4C2478                lea ecx, dword ptr [esp+78]
:00409AC8 C68424C000000016        mov byte ptr [esp+000000C0], 16
:00409AD0 E8D50F0100              call 0041AAAA
:00409AD5 C68424C000000015        mov byte ptr [esp+000000C0], 15


☆  二、在TRW2000 下bpx 004099E3,d ecx 再用ALT+↓拖动可看到假的序列号和真的序列号,下面的lea ecx,×××也可 d ecx 看到。不过会看到两个类似的序列号,其中一个是真的,共有连在一起的24个古怪字符。

:004099E7 C68424C000000004        mov byte ptr [esp+000000C0], 04
:004099EF E8B6100100              call 0041AAAA
:004099F4 8D4C241C                lea ecx, dword ptr [esp+1C]      ********* 此处也可设断点
:004099F8 C68424C000000003        mov byte ptr [esp+000000C0], 03
:00409A00 E8A5100100              call 0041AAAA
:00409A05 8D4C2410                lea ecx, dword ptr [esp+10]      ********** 同上
:00409A09 C68424C000000002        mov byte ptr [esp+000000C0], 02
:00409A11 E894100100              call 0041AAAA
:00409A16 8D4C2418                lea ecx, dword ptr [esp+18]      ********** 同上
.
.
.
(注:**********为重点)

如我的注册码为:

  用户名:PaulYoung
邮件地址:paulyoung@yeah.net
  注册码:|],upRX]b9#P@239|!`Q<qYW

在注册框的三个框内分别依次填入
|],upRX]
b9#P@239
|!`Q<qYW

注册成功!!!!!!


★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

仅以此文献给广大破解爱好者以及 QHJ 兄,须知“长江后浪推前浪,一代新人胜旧人”,不要老是讥笑我!!!!

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

                                  常到看雪破解论坛走一走,不会解来也会“偷”!

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★