下载地址: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写个注册机?(非内存注册机)教教我?)
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>