老文章档案 · 2003 年

Winrar2.8到3.0升级手记 (7千字) 算法分析

破解教程 · 算法分析 · 2003-08-12 · 作者:hello! 人气: · 出处:赢政天下整理收藏)

刚去网站溜达,好多网站都开始使用RAR3.0标准压缩文件了,我还在用2.8,好象有点跟不上形式了,好吧,俺也去找个3.0,呵呵,还好不是我不喜欢的测试版,安装吧,看看说明,呵呵,注册用户可以从2.8免费升级,正合我意,恩,运行一下,怎么还是评估版呀,不是说可以升级的吗,我2.8也是注册版呀,55555,怎么就不行了呢?有点怀念2.8了.看来得想想办法了.

工具 W32DASM,TRW2000,HIEW

过程如下:

使用W32DASM反汇编后,首先找EVALUATION字样,呵呵,运气真好,一下就找到了

* Referenced by a CALL at Addresses:

|:0043F046 , :0044DBD6 , :00450157

|

:0043F984 81C400FCFFFF add esp, FFFFFC00

:0043F98A 50 push eax

* Possible StringData Ref from Data Obj ->"%s - WinRAR"

|

:0043F98B 6875664800 push 00486675

:0043F990 8D442408 lea eax, dword ptr [esp+08]

:0043F994 50 push eax

:0043F995 E8667A0300 call 00477400

:0043F99A 83C40C add esp, 0000000C

:0043F99D 803D1CDD480000 cmp byte ptr [0048DD1C], 00--->这里可以看出48DD1C是个全局变量,也就是注册标志

:0043F9A4 757A jne 0043FA20

:0043F9A6 A1B4DF4900 mov eax, dword ptr [0049DFB4]

:0043F9AB 83F814 cmp eax, 00000014--->小于20天时显示"evaluation copy"

:0043F9AE 7C05 jl 0043F9B5

:0043F9B0 83F828 cmp eax, 00000028--->小于40天大于20天时提醒购买

:0043F9B3 7C1D jl 0043F9D2

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

|:0043F9AE(C)

|

* Possible Reference to String Resource ID=00873: "evaluation copy"

|

:0043F9B5 B869030000 mov eax, 00000369

:0043F9BA E8DDF1FCFF call 0040EB9C

:0043F9BF 50 push eax

:0043F9C0 8D942404020000 lea edx, dword ptr [esp+00000204]

:0043F9C7 52 push edx

:0043F9C8 E87B3C0300 call 00473648

:0043F9CD 83C408 add esp, 00000008

:0043F9D0 EB27 jmp 0043F9F9

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

|:0043F9B3(C)

|

:0043F9D2 B928000000 mov ecx, 00000028

* Possible Reference to String Resource ID=00874: "only %d days left to buy a license"

|

:0043F9D7 B86A030000 mov eax, 0000036A

:0043F9DC 2B0DB4DF4900 sub ecx, dword ptr [0049DFB4]

:0043F9E2 51 push ecx

:0043F9E3 E8B4F1FCFF call 0040EB9C

既然找到了注册标志,那就看看是谁在对他进行设置吧

下断 BPM 48DD1C 呵呵,LOOK!

* Reference To: KERNEL32.GetLocalTime, Ord:0000h

|

:004367B3 E82AAB0400 Call 004812E2

:004367B8 33C0 xor eax, eax

:004367BA E88D52FDFF call 0040BA4C--->呼叫验证核心

:004367BF A21CDD4800 mov byte ptr [0048DD1C], al--->这里写入标志,看来上面这个CALL是检测核心

:004367C4 33C0 xor eax, eax

:004367C6 E9270E0000 jmp 004375F2

哦,好的,我们到核心再去看看吧: )

* Referenced by a CALL at Addresses:

|:0043658A , :004367BA , :0043E6F4 , :0043F030 , :00450363

|

:0040BA4C 55 push ebp

:0040BA4D 8BEC mov ebp, esp

:0040BA4F 81C404F0FFFF add esp, FFFFF004

:0040BA55 50 push eax

:0040BA56 81C448FDFFFF add esp, FFFFFD48

:0040BA5C 53 push ebx

:0040BA5D 56 push esi

:0040BA5E 57 push edi

:0040BA5F 8885E3FEFFFF mov byte ptr [ebp+FFFFFEE3], al

:0040BA65 BE18D74800 mov esi, 0048D718

:0040BA6A B838324800 mov eax, 00483238

:0040BA6F E874800600 call 00473AE8

:0040BA74 8D95C8FAFFFF lea edx, dword ptr [ebp+FFFFFAC8]

* Possible StringData Ref from Data Obj ->"rarreg.*"

|

:0040BA7A B85F2E4800 mov eax, 00482E5F

:0040BA7F E815F5FFFF call 0040AF99--->程序检查是否有一个名字是RARREG的文件

:0040BA84 84C0 test al, al

:0040BA86 7514 jne 0040BA9C

:0040BA88 33C0 xor eax, eax

:0040BA8A 8B95E4FEFFFF mov edx, dword ptr [ebp+FFFFFEE4]

:0040BA90 64891500000000 mov dword ptr fs:[00000000], edx

:0040BA97 E9CF050000 jmp 0040C06B--->玩完

恩,我好象有一个文件名字是RARREG.KEY的文件,把它改这个名字好了,然后,一路走,走,走,来到了这里

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

|:0040BC86(C)

|

:0040BC34 8B3C9D302E4800 mov edi, dword ptr [4*ebx+00482E30]

:0040BC3B 57 push edi

:0040BC3C E8377A0600 call 00473678

:0040BC41 59 pop ecx

:0040BC42 8BC8 mov ecx, eax

:0040BC44 8BD7 mov edx, edi--->EDX的东西好眼熟,好象在哪里看到过呀,对了,在我的RARREG文件里好象也有这么一堆字符

:0040BC46 8D8548F6FFFF lea eax, dword ptr [ebp+FFFFF648]

:0040BC4C E85B060000 call 0040C2AC--->黑名单比较

:0040BC51 85C0 test eax, eax--->上了黑名单吗?好惨: (

:0040BC53 752D jne 0040BC82--->没有上黑名单?恭喜,下面就一路顺风了: )

:0040BC55 33C0 xor eax, eax

:0040BC57 BA02000000 mov edx, 00000002

:0040BC5C 50 push eax

:0040BC5D 8D8508FFFFFF lea eax, dword ptr [ebp+FFFFFF08]

:0040BC63 83AD00FFFFFF04 sub dword ptr [ebp+FFFFFF00], 00000004

:0040BC6A E8BD070000 call 0040C42C

:0040BC6F 58 pop eax

:0040BC70 8B95E4FEFFFF mov edx, dword ptr [ebp+FFFFFEE4]

:0040BC76 64891500000000 mov dword ptr fs:[00000000], edx

:0040BC7D E9E9030000 jmp 0040C06B--->又玩完

跟到这里终于发现,原来我的RARREG里的东西上了黑名单了: (,怎么办?: ((((,既然别的都认可了,那说明作者说的话是真的,可以直接从2.8升级到3.0,恩,有了,我把黑名单换一下好了,在名单上的滋味可不好,人怕出名猪怕壮呀: )

呵呵,看看程序的空间,觉得这里好象是最理想的地方,用HIEW改吧 : )

//******************** Program Entry Point ********

:00401000 EB10 jmp 00401012 --->这里改EB09

:00401002 66623A bound di, word ptr [edx]

:00401005 43 inc ebx

:00401006 2B2B sub ebp, dword ptr [ebx]

:00401008 48 dec eax

:00401009 4F dec edi

:0040100A 4F dec edi

:0040100B 4B dec ebx --->这里开始改成C605402F080033(注意,这是把和我自己的注册文件里的相同的一组数据中一个字符给改了,可能和大家的情况有点不同,请自己修改)

:0040100C 90 nop

:0040100D E9C4214800 jmp 008831D6

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

|:00401000(U)

|

:00401012 A1B7214800 mov eax, dword ptr [004821B7]--->程序入口

好,运行一下,呵呵,怎么样,想必大家都知道了 : ) ,我天生比较懒,所以想了这么个懒办法 : )

在这里有了点问题,请高手指教,我用TRW载入的时候,发现黑名单随着程序载入,已经存在,不能判断数据源在哪里,用资源工具也没找到这些数据的踪影,若我想拦截这些数据装入时该怎么办?

hello!

(出处:赢政天下整理收藏)

相关文章:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史