老文章档案 · 2003 年

QuickCHM2.01破解小记

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-06-28 · 作者:LostInUnAsm 人气: · 出处:嬴政天下整理收藏)

************************************************************************

** The Tutorial For QuickCHM ver 2.01 By LostInUnASM 2003.3.6 **

************************************************************************

声明:

今天想用QuickCHM把以前搜集的材料整理一下,才发现由于没有注册,不能编辑和编译大于15个节点的项目 :(于是决定自己动手丰衣足食 在这里先向吴新兵老兄陪个不是:呵呵,大哥你也喜欢用DELPHI写程式,小弟也一样,有空可以交流经验 这个QuickCHM的版本好象不是最新的吧,不知道你有何新的研究成果

程序:QuickChM 2.01

类型:Delphi Aspack

工具:W32Dasm、ProDump、Dede、TRW2000 //高手完全可以不用那么多吧

分析:先用PRODUMP脱壳,再用W32DASM反汇编,结合DEDE可以找到具体比较注册码的关键地方是

:004F246D 8B4334 mov eax, dword ptr [ebx+34]

:004F2470 8B55F8 mov edx, dword ptr [ebp-08]

:004F2473 E83429F1FF call 00404DAC ==》这里是具体比较的CALL LstrCmp Call

:004F2478 0F85BA000000 jne 004F2538 ==》在这里修改就可以暴力破解了 :P

不过只要你重新启动程序,依然会出现UnRegister的字样,SO继续跟踪程序启动时调用了哪些过程

发现:

* Possible StringData Ref from Code Obj ->"F0E1" ==》注意:这是一个很有用的字符串

|

:004EDC9D BAB8E04E00 mov edx, 004EE0B8

:004EDCA2 8BC7 mov eax, edi

:004EDCA4 E8DBABFFFF call 004E8884 ==》这是一个特别重要的CALL哦!

:004EDCA9 8BC7 mov eax, edi

:004EDCAB E8CCAEFFFF call 004E8B7C ==》这也很重要哦

:004EDCB0 8B4734 mov eax, dword ptr [edi+34] ==》存储正确的注册码

:004EDCB3 8B55F0 mov edx, dword ptr [ebp-10]

:004EDCB6 E8F170F1FF call 00404DAC ==》显然这个CALL和上面那个所调用的过程a一样

:004EDCBB 7532 jne 004EDCEF ==》修改这里就可去除UnRegister的字样了

用户名: L o s t I n U n A s m

注册码:64 F6 56 8C 30 3F 9D B7 17 1E A1 4A

使用TRW在004EDCB0处设端点,再按了无数个F10后,终于有所发现。

跟踪后发现其计算规律如下:

1、首字母的ASCII值X加100 除 255得余数X1,X1 再XOR 字符串F0E1中相对应的第一个字母的ASCII值得出 数X2 再把该数转换为16进制就可以了。

2、把第二字母的ASCII值Y加上 X2,取得 Y1 Y1 再XOR 字符串F0E1中想对应的第二个字母的ASCII值得出

数X3 再把该数转换为16进制就可以了。 依次类推.

EG: Name: F U C K Key:68487498(随便输入)

70 85 67 75

Add 100 236 114 240

---------------------------------

170 321 181 315

Mod 255 255 255 255

---------------------------------

170 66 181 60

XOR 70 48 69 49 ====>70 48 69 49 分别为F0E1的ASCII值

---------------------------------

236 114 240 13

InttoHex EC 72 F0 0D

70 48 69 49 ===》正确的注册码是: 64EC72F00D (不要漏了‘64’哦)

F 0 E 1

于是顺利地写出了注册机,用DELPHI 6.0

program KeygenForQChm;

{$APPTYPE CONSOLE}

Uses sysutils;

Var

Name,XorStr,Key:String;

LastModResult,Mr:Integer;

StrLen,I,J,IntXor:Integer;

begin

writeln('===========================================================');

writeln('This is a Keygen For QuickCHM ver 2.01 ----By LostInUnAsm');

writeln('===========================================================');

Write('Please Enter your Name(Length>=4):');

LastModResult:=100;

XorStr:='F0E1';

J:=1;

Read(Name);

StrLen:=Length(Name);

For I:=1 to StrLen do

Begin

Mr:=(Ord(Name[i])+LastModResult) Mod 255;

IntXor:=Mr Xor Ord(XorStr[J]);

Key:=Key+InttoHex(IntXor,2);

LastModResult:=IntXor;

If J<4 then Inc(J) Else J:=1;

End;

Writeln('Correct Serial Is: 64',Key); //注意,每个注册码都是以64开头的

Readln;

Readln;

end.

===================================忙了好几个小时!累死我了!=============================

PS:破解完全不用拘泥于形式,如果你想简单得到注册码,完全可以使用WINHEX,

用她来查看QuickCHM的内存,几秒就可以找到正确的注册码(好象是根据谁的理论,正确的注册码一定在错误的注册码附近)

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

相关文章:

·语音界面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)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史