老文章档案 · 2003 年

磁盘清理工具(EasyClean) V1.50 Build 0806

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

磁盘清理工具(EasyClean) V1.50 Build 0806

下载地址:http://www.skycn.com/download.php?id=7960&url=http://lnhttp.skycn.net/down/ez150.zip

软件介绍:快速磁盘垃圾扫描清理软件,本着简单、易用、快速的原则。全面开放扫描控制,用户可以自定义扫描子类以及扫描线程的数量、优先级。用户可以根据自己机器的配置,修改需要,达到最佳的搜索效果。

难度:中

工具:AspackDie,TRW2000(1.22),Winasm

为了响应组织号召,特此发表一篇重启验证注册码的破解实例,希望对大家有所帮助。(本不想拿国产软件开刀的,只不过在论坛里看见了有弟兄贴出这个软件来,况且机会难得,我特地去找此类重启验证的软件很麻烦了。上帝保佑)

个人经验小结: 本人破解重启验证注册的软件不是很多,但也偶有心得。对于此类软件,要不就是把注册信息存放到注册表中,重启时验证;要不就是把注册信息存放入ini或dat之类的文件中,重启时验证。对此可以用winasm反汇编后查找相关的字符串参考以获得着手点。如:注册信息存放到注册表:HKEY_USERS\.DEFAULT\Software\ABC\regcode中,则可查找“regcode”之类的字符串参考,然后在相关代码处设置断点,在软件重启时就可跟踪调试了。若注册信息放在abc.ini文件中也可

查找相关的信息,设置断点调试。

还可以设置条件断点,相关信息请查看softice和TRW2000的帮助。

好了废话少说,开工

用户ID:Stoby[DFCG] (注册ID不得少于8个字符)

注册码:1234-5678-0987-6543 (注册码格式可以从winasm中看到)

* Possible StringData Ref from Data Obj ->"RegCode"

|

:0040C59A 6844444500 push 00454444

:0040C59F 8D4C2414 lea ecx, dword ptr [esp+14]

* Possible StringData Ref from Data Obj ->"Option"

|

:0040C5A3 684C444500 push 0045444C

:0040C5A8 51 push ecx

:0040C5A9 8BCE mov ecx, esi

:0040C5AB E8DA0A0300 call 0043D08A

:0040C5B0 50 push eax

:0040C5B1 8D4C2408 lea ecx, dword ptr [esp+08]

:0040C5B5 C644241C03 mov [esp+1C], 03

:0040C5BA E8435E0200 call 00432402

:0040C5BF 8D4C240C lea ecx, dword ptr [esp+0C]

:0040C5C3 C644241801 mov [esp+18], 01

:0040C5C8 E8FC5C0200 call 004322C9

:0040C5CD 8B542408 mov edx, dword ptr [esp+08] 〈==用户注册名

:0040C5D1 8B42F8 mov eax, dword ptr [edx-08] 〈==注册名长度

:0040C5D4 85C0 test eax, eax 〈==是否为空

:0040C5D6 744F je 0040C627 *********跳了就over了

:0040C5D8 8B442404 mov eax, dword ptr [esp+04] 〈==用户输入的注册码

:0040C5DC 8B40F8 mov eax, dword ptr [eax-08] 〈==注册码长度

:0040C5DF 85C0 test eax, eax 〈==是否为空

:0040C5E1 7444 je 0040C627*********跳了就over了

:0040C5E3 8D4C2404 lea ecx, dword ptr [esp+04]

:0040C5E7 8D542408 lea edx, dword ptr [esp+08]

:0040C5EB 51 push ecx

:0040C5EC 52 push edx

:0040C5ED 8BCE mov ecx, esi

:0040C5EF E86C000000 call 0040C660 ***************就这了,跟入call中

:0040C5F4 8D4C2404 lea ecx, dword ptr [esp+04]

:0040C5F8 8BF0 mov esi, eax

:0040C5FA C644241800 mov [esp+18], 00

:0040C5FF E8C55C0200 call 004322C9

:0040C604 8D4C2408 lea ecx, dword ptr [esp+08]

* Referenced by a CALL at Address:

|:0040C5EF

|

:0040C660 6AFF push FFFFFFFF

:0040C662 686B154400 push 0044156B

:0040C667 64A100000000 mov eax, dword ptr fs:[00000000]

:0040C66D 50 push eax

:0040C66E 64892500000000 mov dword ptr fs:[00000000], esp

:0040C675 81EC4C080000 sub esp, 0000084C

:0040C67B 8B84245C080000 mov eax, dword ptr [esp+0000085C]

:0040C682 53 push ebx

:0040C683 55 push ebp

:0040C684 56 push esi

:0040C685 8B28 mov ebp, dword ptr [eax]

:0040C687 57 push edi

:0040C688 894C2418 mov dword ptr [esp+18], ecx

:0040C68C 8B5DF8 mov ebx, dword ptr [ebp-08]

:0040C68F 83FB08 cmp ebx, 00000008

:0040C692 0F8CA9010000 jl 0040C841

:0040C698 B907000000 mov ecx, 00000007 〈==注意,令ecx=0x7

:0040C69D 33C0 xor eax, eax

:0040C69F 8D7C2420 lea edi, dword ptr [esp+20]

:0040C6A3 894C243C mov dword ptr [esp+3C], ecx******令[esp+3C]为0x7

:0040C6A7 C744241C00000000 mov [esp+1C], 00000000

:0040C6AF C744244008000000 mov [esp+40], 00000008--------------------

:0040C6B7 F3 repz |

:0040C6B8 AB stosd |

:0040C6B9 C744244403000000 mov [esp+44], 00000003

:0040C6C1 C744244804000000 mov [esp+48], 00000004 这期间的赋值和上面的0x7要注意

:0040C6C9 C744244C06000000 mov [esp+4C], 00000006 |

:0040C6D1 C744245002000000 mov [esp+50], 00000002 |

:0040C6D9 C744245401000000 mov [esp+54], 00000001 |

:0040C6E1 C744245805000000 mov [esp+58], 00000005--------------------

****************************************令S={7,8,3,4,6,2,1,5}************************************

:0040C6E9 C7842458080000B2B8E905 mov dword ptr [esp+00000858], 05E9B8B2

:0040C6F4 8D44245C lea eax, dword ptr [esp+5C]

:0040C6F8 B9FF010000 mov ecx, 000001FF

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

|:0040C70D(C)

|

:0040C6FD 8B5004 mov edx, dword ptr [eax+04]

:0040C700 83C004 add eax, 00000004

:0040C703 81F217EDAB04 xor edx, 04ABED17

:0040C709 49 dec ecx

:0040C70A 8950FC mov dword ptr [eax-04], edx

:0040C70D 75EE jne 0040C6FD

:0040C70F 8D44243C lea eax, dword ptr [esp+3C]

:0040C713 B908000000 mov ecx, 00000008

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

|:0040C722(C)

|

:0040C718 8B38 mov edi, dword ptr [eax]

:0040C71A 83C004 add eax, 00000004

:0040C71D 4F dec edi

:0040C71E 49 dec ecx************************令S中每个元素都减1的到新的集合S'={6,7,2,3,5,1,0,4}

:0040C71F 8978FC mov dword ptr [eax-04], edi

:0040C722 75F4 jne 0040C718

:0040C724 B908000000 mov ecx, 00000008

:0040C729 8D74243C lea esi, dword ptr [esp+3C]

:0040C72D 8D7C245C lea edi, dword ptr [esp+5C]

:0040C731 33C0 xor eax, eax

:0040C733 F3 repz

:0040C734 A5 movsd

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

|:0040C740(C)

|

:0040C735 8A0C28 mov cl, byte ptr [eax+ebp]

:0040C738 884C0410 mov byte ptr [esp+eax+10], cl

:0040C73C 40 inc eax

:0040C73D 83F808 cmp eax, 00000008

:0040C740 7CF3 jl 0040C735

:0040C742 83FB08 cmp ebx, 00000008

:0040C745 7E24 jle 0040C76B

:0040C747 BE08000000 mov esi, 00000008 〈==esi为0x8,计数器1

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

|:0040C769(C)

|

:0040C74C 8BC6 mov eax, esi

:0040C74E 2507000080 and eax, 80000007

:0040C753 7905 jns 0040C75A

:0040C755 48 dec eax

:0040C756 83C8F8 or eax, FFFFFFF8

:0040C759 40 inc eax 〈==eax为计数器2,且初值为1

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

|:0040C753(C)

|

:0040C75A 8A1428 mov dl, byte ptr [eax+ebp] 〈==取用户ID首字母

:0040C75D 8A0C2E mov cl, byte ptr [esi+ebp] 〈==取用户ID第8个字母

:0040C760 32CA xor cl, dl 〈==两者异或

:0040C762 46 inc esi 〈==计数器1加一

:0040C763 3BF3 cmp esi, ebx 〈==比较是否比较完用户ID号长度,ebx为用户ID号长度

:0040C765 884C0410 mov byte ptr [esp+eax+10], cl 〈==保存运算结果

:0040C769 7CE1 jl 0040C74C 〈==没比较完则继续

令原来的用户ID经过运算变成了用户ID(2)

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

|:0040C745(C)

|

:0040C76B 33C0 xor eax, eax

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

|:0040C786(C)

|

:0040C76D 8B4C045C mov ecx, dword ptr [esp+eax+5C] 〈==把S'中的元素分别送入ecx

:0040C771 83C004 add eax, 00000004 〈==eax相当与计数器,给eax加4,因为S'中每个元素地址都相差4,这样下次接着取下一个元素

:0040C774 0FBE4C0C10 movsx ecx, byte ptr [esp+ecx+10] 将用户ID(2)中的第ecx个元素ASCII分别送入ecx (注:[esp+ecx+10]中的ecx即为S'中的元素,所以S'中元素的作用是用来取地址偏移量的;[esp+10]指向用户ID(2)首地址)

:0040C779 81F1AE000000 xor ecx, 000000AE ecx与0xAE异或****(算法关键之处)

:0040C77F 83F820 cmp eax, 00000020 比较S'中的元素是否取完

:0040C782 894C0418 mov dword ptr [esp+eax+18], ecx 保存运算结果result

:0040C786 7CE5 jl 0040C76D

好了,下面是将运算结果每4个一组加上“-”形成注册码,过程省略。

算法总结:

先将集合S={7,8,3,4,6,2,1,5}各元素分别减1得到集合S'={6,7,2,3,5,1,0,4}

将用户ID号的第8个字母ASCII与第1个字母ASCII异或,第9个字母和第2个字母ASCII异或..............

直到第(用户ID号长度)个字母与第(用户ID号长度-8)个字母异或完。使得用户ID号经过运算变成了用户ID号(2)

将用户ID号(2)中的第S'[i]个字符的ASCII与0xAE异或结果放入result中,这样直到取完S'中的元素。

最后把result每4个一组加上“-”即为注册码。

用户ID:Stoby[DFCG]

注册码:EAE8-9CCC-F59D-BED7

最近想学用keymake做注册机(非内存注册机),可是还不是很了解,有哪位大哥会的教兄弟一下。谢了!(哪为大哥把这个软件用keymake写个注册机?(非内存注册机)教教我?)

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

相关文章:

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