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

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

2004/10/15 0:55:00来源:本站整理作者:蓝点我要评论(0)
磁盘清理工具(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写个注册机?(非内存注册机)教教我?)


    
    
     
    
    

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 囧
      囧
  • 0 恶心
      恶心
  • 0 期待
      期待
  • 0
      难过
  • 0 不错
      不错
  • 0 关注
      关注
  • 最新评论
  • 热门评论
共有评论(0)条 查看全部评论
高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲

注:您的评论需要经过审核才会显示出来