CD DVD Data Recovery v1.0.810 注册分析
【破文标题】CD DVD Data Recovery v1.0.810 注册分析【破文作者】ZHOU2X
【破解工具】OD PEID
【破解平台】Win XP
【软件名称】CD/DVD Data Recovery
【软件大小】476 KB
【原版下载】http://www.008soft.com/products/cddvddr.exe
【保护方式】注册码
【软件简介】
CD DVD Data Recovery v1.0.810
软件大小476 KB
软件类别国外软件/光碟工具
运行环境Win2003, WinXp, Win2000, Nt, WinMe, Win9x
软件语言英文
整理时间2006-8-3 9:48:22
相关连接http://www.crsky.com/soft/6844.html
随着刻录机的普及,刻录盘被广泛的用于数据及资料的备份。但是,由于各种原因,你所备份的数据可能已经无法
在光盘驱动器中被正常读取。现在好了,你有了一个好帮手——CD/DVD Data recovery。它是一个光盘数据、多媒体恢
复工具,适用于从各类无法正常读取的 CD、DVD 中恢复数据。该软件操作非常简便,极易上手。
【破解声明】
------------------------------------------------------------------------
【破解过程】
PEID 扫描为 Microsoft Visual C++ 7.0,无壳;注册失败提示:“registration failed!”
0041A980/.55 push ebp
0041A981|.8BEC mov ebp, esp
0041A983|.83EC 20 sub esp, 20
0041A986|.894D E0 mov dword ptr , ecx
0041A989|.6A 01 push 1
0041A98B|.8B4D E0 mov ecx, dword ptr
0041A98E|.E8 F3D30100 call 00437D86
0041A993|.8B4D E0 mov ecx, dword ptr
0041A996|.83C1 70 add ecx, 70
0041A999|.E8 F210FFFF call 0040BA90
0041A99E|.83F8 02 cmp eax, 2
0041A9A1|.7D 13 jge short 0041A9B6 ;注册名不少于2位跳
0041A9A3|.6A 00 push 0
0041A9A5|.6A 00 push 0
0041A9A7|.68 F8E34400 push 0044E3F8 ;please input correct user name!
0041A9AC|.E8 58710200 call 00441B09
0041A9B1|.E9 A9020000 jmp 0041AC5F
0041A9B6|>8B4D E0 mov ecx, dword ptr
0041A9B9|.83C1 74 add ecx, 74
0041A9BC|.E8 CF10FFFF call 0040BA90
0041A9C1|.83F8 08 cmp eax, 8
0041A9C4|.7D 13 jge short 0041A9D9 ;注册码不少于8位跳
0041A9C6|.6A 00 push 0
0041A9C8|.6A 00 push 0
0041A9CA|.68 18E44400 push 0044E418 ;please input correct registration code!
0041A9CF|.E8 35710200 call 00441B09
0041A9D4|.E9 86020000 jmp 0041AC5F
0041A9D9|>6A 00 push 0 ; /Arg1 = 00000000
0041A9DB|.8B4D E0 mov ecx, dword ptr ; |
0041A9DE|.83C1 70 add ecx, 70 ; |
0041A9E1|.E8 0ACEFFFF call 004177F0 ; \CDDVDDR.004177F0
0041A9E6|.8845 EF mov byte ptr , al
0041A9E9|.6A 01 push 1 ; /Arg1 = 00000001
0041A9EB|.8B4D E0 mov ecx, dword ptr ; |
0041A9EE|.83C1 70 add ecx, 70 ; |
0041A9F1|.E8 FACDFFFF call 004177F0 ; \CDDVDDR.004177F0
0041A9F6|.8845 F8 mov byte ptr , al
0041A9F9|.6A 00 push 0 ; /Arg1 = 00000000
0041A9FB|.8B4D E0 mov ecx, dword ptr ; |
0041A9FE|.83C1 70 add ecx, 70 ; |
0041AA01|.E8 EACDFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AA06|.8845 FF mov byte ptr , al
0041AA09|.6A 01 push 1 ; /Arg1 = 00000001
0041AA0B|.8B4D E0 mov ecx, dword ptr ; |
0041AA0E|.83C1 70 add ecx, 70 ; |
0041AA11|.E8 DACDFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AA16|.8845 FA mov byte ptr , al
0041AA19|.0FB645 EF movzx eax, byte ptr ;注册名 ASCII 第一位
0041AA1D|.83C8 43 or eax, 43 ;与 43 或运算,取为S1
0041AA20|.8845 EF mov byte ptr , al
0041AA23|.0FB64D F8 movzx ecx, byte ptr ;注册名 ASCII 第二位
0041AA27|.83C9 44 or ecx, 44 ;与 44 或运算,取为S2
0041AA2A|.884D F8 mov byte ptr , cl
0041AA2D|.0FB655 FF movzx edx, byte ptr ;注册名 ASCII 第一位
0041AA31|.83CA 52 or edx, 52 ;与 52 或运算,取为S3
0041AA34|.8855 FF mov byte ptr , dl
0041AA37|.0FB645 FA movzx eax, byte ptr ;注册名 ASCII 第二位
0041AA3B|.83C8 45 or eax, 45 ;与 45 或运算,取为S4
0041AA3E|.8845 FA mov byte ptr , al
0041AA41|.0FB645 EF movzx eax, byte ptr
0041AA45|.99 cdq
0041AA46|.B9 0A000000 mov ecx, 0A ;S1 除以 0A,求余(S1=S1%0A)
0041AA4B|.F7F9 idiv ecx
0041AA4D|.8855 EF mov byte ptr , dl
0041AA50|.0FB645 F8 movzx eax, byte ptr
0041AA54|.99 cdq
0041AA55|.B9 0A000000 mov ecx, 0A ;S2 除以 0A,求余(S2=S2%0A)
0041AA5A|.F7F9 idiv ecx
0041AA5C|.8855 F8 mov byte ptr , dl
0041AA5F|.0FB645 FF movzx eax, byte ptr
0041AA63|.99 cdq
0041AA64|.B9 0A000000 mov ecx, 0A ;S3 除以 0A,求余(S3=S3%0A)
0041AA69|.F7F9 idiv ecx
0041AA6B|.8855 FF mov byte ptr , dl
0041AA6E|.0FB645 FA movzx eax, byte ptr
0041AA72|.99 cdq
0041AA73|.B9 0A000000 mov ecx, 0A ;S4 除以 0A,求余(S4=S4%0A)
0041AA78|.F7F9 idiv ecx
0041AA7A|.8855 FA mov byte ptr , dl
0041AA7D|.C745 F0 00000>mov dword ptr , 0
0041AA84|.C745 E8 00000>mov dword ptr , 0
0041AA8B|.EB 09 jmp short 0041AA96
0041AA8D|>8B55 E8 /mov edx, dword ptr
0041AA90|.83C2 01 |add edx, 1
0041AA93|.8955 E8 |mov dword ptr , edx
0041AA96|>8B4D E0 mov ecx, dword ptr
0041AA99|.83C1 70 |add ecx, 70
0041AA9C|.E8 EF0FFFFF |call 0040BA90
0041AAA1|.3945 E8 |cmp dword ptr , eax
0041AAA4|.7D 1E |jge short 0041AAC4
0041AAA6|.8B45 E8 |mov eax, dword ptr
0041AAA9|.50 |push eax ; /Arg1
0041AAAA|.8B4D E0 |mov ecx, dword ptr ; |
0041AAAD|.83C1 70 |add ecx, 70 ; |
0041AAB0|.E8 3BCDFFFF |call 004177F0 ; \CDDVDDR.004177F0
0041AAB5|.8845 E7 |mov byte ptr , al
0041AAB8|.0FB64D E7 |movzx ecx, byte ptr
0041AABC|.034D F0 |add ecx, dword ptr ;该循环是注册名 ASCII 逐位相加求和,取为S5
0041AABF|.894D F0 |mov dword ptr , ecx
0041AAC2|.^ EB C9 \jmp short 0041AA8D
0041AAC4|>8B45 F0 mov eax, dword ptr
0041AAC7|.99 cdq
0041AAC8|.B9 0A000000 mov ecx, 0A ;S5 除以 0A,求余(S5=S5%0A)
0041AACD|.F7F9 idiv ecx
0041AACF|.8855 F4 mov byte ptr , dl
0041AAD2|.6A 00 push 0 ; /Arg1 = 00000000
0041AAD4|.8B4D E0 mov ecx, dword ptr ; |
0041AAD7|.83C1 74 add ecx, 74 ; |
0041AADA|.E8 11CDFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AADF|.8845 FC mov byte ptr , al
0041AAE2|.6A 01 push 1 ; /Arg1 = 00000001
0041AAE4|.8B4D E0 mov ecx, dword ptr ; |
0041AAE7|.83C1 74 add ecx, 74 ; |
0041AAEA|.E8 01CDFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AAEF|.8845 FD mov byte ptr , al
0041AAF2|.6A 02 push 2 ; /Arg1 = 00000002
0041AAF4|.8B4D E0 mov ecx, dword ptr ; |
0041AAF7|.83C1 74 add ecx, 74 ; |
0041AAFA|.E8 F1CCFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AAFF|.8845 F6 mov byte ptr , al
0041AB02|.6A 03 push 3 ; /Arg1 = 00000003
0041AB04|.8B4D E0 mov ecx, dword ptr ; |
0041AB07|.83C1 74 add ecx, 74 ; |
0041AB0A|.E8 E1CCFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AB0F|.8845 F5 mov byte ptr , al
0041AB12|.6A 04 push 4 ; /Arg1 = 00000004
0041AB14|.8B4D E0 mov ecx, dword ptr ; |
0041AB17|.83C1 74 add ecx, 74 ; |
0041AB1A|.E8 D1CCFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AB1F|.8845 F9 mov byte ptr , al
0041AB22|.6A 05 push 5 ; /Arg1 = 00000005
0041AB24|.8B4D E0 mov ecx, dword ptr ; |
0041AB27|.83C1 74 add ecx, 74 ; |
0041AB2A|.E8 C1CCFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AB2F|.8845 F7 mov byte ptr , al
0041AB32|.6A 06 push 6 ; /Arg1 = 00000006
0041AB34|.8B4D E0 mov ecx, dword ptr ; |
0041AB37|.83C1 74 add ecx, 74 ; |
0041AB3A|.E8 B1CCFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AB3F|.8845 FE mov byte ptr , al
0041AB42|.6A 07 push 7 ; /Arg1 = 00000007
0041AB44|.8B4D E0 mov ecx, dword ptr ; |
0041AB47|.83C1 74 add ecx, 74 ; |
0041AB4A|.E8 A1CCFFFF call 004177F0 ; \CDDVDDR.004177F0
0041AB4F|.8845 FB mov byte ptr , al
0041AB52|.0FB655 EF movzx edx, byte ptr ;S1
0041AB56|.0FB645 FC movzx eax, byte ptr ;试炼码第1位
0041AB5A|.83E8 30 sub eax, 30 ;试炼码第1位=试炼码第1位-30
0041AB5D|.3BD0 cmp edx, eax ;S1 与试炼码第1位比较
0041AB5F|.75 3C jnz short 0041AB9D ;不等就跳往进行通用码比较(下同)
0041AB61|.0FB64D F8 movzx ecx, byte ptr
0041AB65|.0FB655 FD movzx edx, byte ptr
0041AB69|.83EA 30 sub edx, 30
0041AB6C|.3BCA cmp ecx, edx
0041AB6E|.75 2D jnz short 0041AB9D ;S2 与试炼码第2位比较
0041AB70|.0FB645 FF movzx eax, byte ptr
0041AB74|.0FB64D F6 movzx ecx, byte ptr
0041AB78|.83E9 30 sub ecx, 30
0041AB7B|.3BC1 cmp eax, ecx
0041AB7D|.75 1E jnz short 0041AB9D ;S3 与试炼码第3位比较
0041AB7F|.0FB655 FA movzx edx, byte ptr
0041AB83|.0FB645 F5 movzx eax, byte ptr
0041AB87|.83E8 30 sub eax, 30
0041AB8A|.3BD0 cmp edx, eax
0041AB8C|.75 0F jnz short 0041AB9D ;S4 与试炼码第4位比较
0041AB8E|.0FB64D F4 movzx ecx, byte ptr
0041AB92|.0FB655 F9 movzx edx, byte ptr
0041AB96|.83EA 30 sub edx, 30
0041AB99|.3BCA cmp ecx, edx
0041AB9B|.74 58 je short 0041ABF5 ;S5 与试炼码第5位比较,如果相等则注册成功
0041AB9D|>0FB645 FC movzx eax, byte ptr ;试炼码第1位;下面8位数字是通用码
0041ABA1|.83F8 39 cmp eax, 39 ;9
0041ABA4|.0F85 A7000000 jnz 0041AC51 ;不等跳往失败(下同)
0041ABAA|.0FB64D FD movzx ecx, byte ptr ;试炼码第2位
0041ABAE|.83F9 33 cmp ecx, 33 ;3
0041ABB1|.0F85 9A000000 jnz 0041AC51
0041ABB7|.0FB655 F6 movzx edx, byte ptr
0041ABBB|.83FA 30 cmp edx, 30 ;0
0041ABBE|.0F85 8D000000 jnz 0041AC51
0041ABC4|.0FB645 F5 movzx eax, byte ptr
0041ABC8|.83F8 31 cmp eax, 31 ;1
0041ABCB|.0F85 80000000 jnz 0041AC51
0041ABD1|.0FB64D F9 movzx ecx, byte ptr
0041ABD5|.83F9 36 cmp ecx, 36 ;6
0041ABD8|.75 77 jnz short 0041AC51
0041ABDA|.0FB655 F7 movzx edx, byte ptr
0041ABDE|.83FA 36 cmp edx, 36 ;6
0041ABE1|.75 6E jnz short 0041AC51
0041ABE3|.0FB645 FE movzx eax, byte ptr
0041ABE7|.83F8 36 cmp eax, 36 ;6
0041ABEA|.75 65 jnz short 0041AC51
0041ABEC|.0FB64D FB movzx ecx, byte ptr
0041ABF0|.83F9 36 cmp ecx, 36 ;6
0041ABF3|.75 5C jnz short 0041AC51
0041ABF5|>6A 00 push 0
0041ABF7|.6A 00 push 0
0041ABF9|.68 40E44400 push 0044E440 ;registration has succeeded!
0041ABFE|.E8 066F0200 call 00441B09
0041AC03|.8B4D E0 mov ecx, dword ptr
0041AC06|.83C1 70 add ecx, 70
0041AC09|.E8 8202FFFF call 0040AE90
0041AC0E|.50 push eax
0041AC0F|.68 5CE44400 push 0044E45C ;username
0041AC14|.68 68E44400 push 0044E468 ;option
0041AC19|.E8 F2CCFFFF call 00417910
0041AC1E|.8BC8 mov ecx, eax ; |
0041AC20|.E8 FB6F0200 call 00441C20 ; \CDDVDDR.00441C20
0041AC25|.8B4D E0 mov ecx, dword ptr
0041AC28|.83C1 74 add ecx, 74
0041AC2B|.E8 6002FFFF call 0040AE90
0041AC30|.50 push eax
0041AC31|.68 70E44400 push 0044E470 ;registration_code
0041AC36|.68 84E44400 push 0044E484 ;option
0041AC3B|.E8 D0CCFFFF call 00417910
0041AC40|.8BC8 mov ecx, eax ; |
0041AC42|.E8 D96F0200 call 00441C20 ; \CDDVDDR.00441C20
0041AC47|.8B4D E0 mov ecx, dword ptr
0041AC4A|.E8 3F160200 call 0043C28E
0041AC4F|.EB 0E jmp short 0041AC5F
0041AC51|>6A 00 push 0
0041AC53|.6A 00 push 0
0041AC55|.68 8CE44400 push 0044E48C ;registration failed!
0041AC5A|.E8 AA6E0200 call 00441B09
0041AC5F|>8BE5 mov esp, ebp
0041AC61|.5D pop ebp
0041AC62\.C3 retn
------------------------------------------------------------------------
【破解总结】
通用注册码:93016666
注册名必须大于等于2位;
注册码必须大于等于8位;
取注册名的第一与第二位 ASCII 码,第一位、第二位分别与 43 、44 及与 52、45 进行或运算,运算结果除以 0A 求余;
逐位取注册名的ASCII 码求和,再除以 0A 求余;将上面结果连接再加 3 位随机数即成注册码
算法比较简单,适合我等新手练习
附易语言注册机源码
.版本 2
.局部变量 name, 文本型
.局部变量 i, 整数型
.局部变量 lenn, 整数型
.局部变量 code1, 字节型
.局部变量 code4, 整数型
.局部变量 code3, 文本型
.局部变量 code2, 字节型
name = 编辑框1.内容
lenn = 取文本长度 (name)
.判断开始 (lenn < 2)' lenn=0 或 lenm=0
编辑框3.内容 = “★注册名必须2位以上★”
.默认
.计次循环首 (lenn, i)
code1 = 取代码 (name, i)
code4 = code1 + code4
.计次循环尾 ()
code1 = 取代码 (name, 1)
code2 = 取代码 (name, 2)
置随机数种子 ()
code3 = 到文本 (位或 (code1, 67) % 10) + 到文本 (位或 (code2, 68) % 10) + 到文本 (位或 (code1,
82) % 10) + 到文本 (位或 (code2, 69) % 10) + 到文本 (code4 % 10) + 到文本 (取随机数 (100, 999))
编辑框3.内容 = code3
.判断结束
------------------------------------------------------------------------
【版权声明】 谢谢,这个东西让我迷糊了半天。
真的去了第三课但是没搞到教材很郁闷的! 向前辈学习。
页:
[1]