好友
阅读权限40
听众
最后登录1970-1-1
|
【破文标题】RegistryEasy 4.9简单分析
【破文作者】tianxj
【作者邮箱】tianxj_2007@126.com
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】Windows XP sp3(雨林木风)
【软件名称】RegistryEasy 4.9
【软件大小】2480KB
【软件类别】国外软件/卸载工具
【软件授权】共享版
【软件语言】英文
【运行环境】Win9x/Me/NT/2000/XP/2003
【更新时间】2008-12-28
【原版下载】华军软件园
【保护方式】注册码
【软件简介】清洁扫描您的PC并且安全清除由于错误及无效的操作造成系统速度变慢,死机和崩溃的文件。registryeasy修理注册表的问题,使您的计算机快速运行!registryeasy使用了一个高性能的检测算法,将迅速查明在您的Windows注册表中消失和无效的参数。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"Invalid serial number! Please try again..."
**************************************************************
二、用PEiD对RE.exe查壳,为 Borland Delphi 6.0 - 7.0
**************************************************************
三、运行OD,打开RE.exe,右键—超级字串参考—查找ASCII.
==============================================================004D4E1C /$ 55 PUSH EBP
004D4E1D |. 8BEC MOV EBP,ESP
004D4E1F |. B9 0A000000 MOV ECX,0A
004D4E24 |> 6A 00 /PUSH 0
004D4E26 |. 6A 00 |PUSH 0
004D4E28 |. 49 |DEC ECX
004D4E29 |.^ 75 F9 \JNZ SHORT RE.004D4E24
004D4E2B |. 53 PUSH EBX
004D4E2C |. 56 PUSH ESI
004D4E2D |. 8BD8 MOV EBX,EAX
004D4E2F |. 33C0 XOR EAX,EAX
004D4E31 |. 55 PUSH EBP
004D4E32 |. 68 84504D00 PUSH RE.004D5084
004D4E37 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004D4E3A |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004D4E3D |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
004D4E40 |. 8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
004D4E46 |. E8 91C8F9FF CALL RE.004716DC
004D4E4B |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; //试炼码
004D4E4E |. 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
004D4E51 |. E8 FE42F3FF CALL RE.00409154
004D4E56 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; //试炼码
004D4E59 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
004D4E5C |. E8 DF40F3FF CALL RE.00408F40 ; //将试炼码转小写
004D4E61 |. A0 94504D00 MOV AL,BYTE PTR DS:[4D5094]
004D4E66 |. 50 PUSH EAX
004D4E67 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
004D4E6A |. 50 PUSH EAX
004D4E6B |. 33C9 XOR ECX,ECX
004D4E6D |. BA A0504D00 MOV EDX,RE.004D50A0 ; -
004D4E72 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //小写试炼码
004D4E75 |. E8 DE9CF3FF CALL RE.0040EB58 ; //将小写试炼码中的"-"去掉,设为字符串A
004D4E7A |. 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C] ; //字符串A
004D4E7D |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004D4E80 |. E8 DFFCF2FF CALL RE.00404B64
004D4E85 |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
004D4E88 |. 50 PUSH EAX
004D4E89 |. B9 08000000 MOV ECX,8
004D4E8E |. BA 09000000 MOV EDX,9
004D4E93 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //字符串A
004D4E96 |. E8 5101F3FF CALL RE.00404FEC ; //取字符串A的9-16位
004D4E9B |. 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] ; //字符串A的9-16位
004D4E9E |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004D4EA1 |. E8 5E40F3FF CALL RE.00408F04 ; //字符串A的9-16位转大写
004D4EA6 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004D4EA9 |. 50 PUSH EAX
004D4EAA |. B9 01000000 MOV ECX,1
004D4EAF |. BA 03000000 MOV EDX,3
004D4EB4 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //字符串A
004D4EB7 |. E8 3001F3FF CALL RE.00404FEC ; //取字符串A的第3位
004D4EBC |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
004D4EBF |. 50 PUSH EAX
004D4EC0 |. B9 01000000 MOV ECX,1
004D4EC5 |. BA 01000000 MOV EDX,1
004D4ECA |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //字符串A
004D4ECD |. E8 1A01F3FF CALL RE.00404FEC ; //取字符串A的第1位
004D4ED2 |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] ; //字符串A的第1位的地址
004D4ED5 |. E8 AA48F3FF CALL RE.00409784 ; //将字符串A的第1位送入EAX
004D4EDA |. 8BF0 MOV ESI,EAX ; //ESI=EAX
004D4EDC |. 46 INC ESI ; //ESI=ESI+1
004D4EDD |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
004D4EE0 |. 50 PUSH EAX
004D4EE1 |. 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
004D4EE4 |. B8 AC504D00 MOV EAX,RE.004D50AC ; Easy Gang
004D4EE9 |. E8 EE8FFEFF CALL RE.004BDEDC ; //将"Easy Gang"作MD5运算转小写,设为字符串B
004D4EEE |. 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28] ; //字符串B
004D4EF1 |. B9 0A000000 MOV ECX,0A
004D4EF6 |. 8BD6 MOV EDX,ESI
004D4EF8 |. E8 EF00F3FF CALL RE.00404FEC ; //取字符串B的ESI位后的10位
004D4EFD |. 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
004D4F00 |. 50 PUSH EAX
004D4F01 |. B9 01000000 MOV ECX,1
004D4F06 |. BA 02000000 MOV EDX,2
004D4F0B |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //字符串A
004D4F0E |. E8 D900F3FF CALL RE.00404FEC ; //取字符串A的第2位
004D4F13 |. 8B45 D4 MOV EAX,DWORD PTR SS:[EBP-2C] ; //字符串A的第2位的地址
004D4F16 |. E8 6948F3FF CALL RE.00409784 ; //将字符串A的第2位送入EAX
004D4F1B |. 8BF0 MOV ESI,EAX ; //ESI=EAX
004D4F1D |. 46 INC ESI ; //ESI=ESI+1
004D4F1E |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004D4F21 |. 50 PUSH EAX
004D4F22 |. B9 05000000 MOV ECX,5
004D4F27 |. BA 04000000 MOV EDX,4
004D4F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //字符串A
004D4F2F |. E8 B800F3FF CALL RE.00404FEC ; //取字符串A的4-8位
004D4F34 |. 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
004D4F37 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //字符串A的4-8位
004D4F3A |. E8 1542F3FF CALL RE.00409154
004D4F3F |. 837D D0 00 CMP DWORD PTR SS:[EBP-30],0
004D4F43 |. 0F84 DD000000 JE RE.004D5026 ; //字符串A的4-8位若为空则跳
004D4F49 |. 8D55 CC LEA EDX,DWORD PTR SS:[EBP-34]
004D4F4C |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004D4F4F |. E8 0042F3FF CALL RE.00409154
004D4F54 |. 837D CC 00 CMP DWORD PTR SS:[EBP-34],0
004D4F58 |. 0F84 C8000000 JE RE.004D5026 ; //字符串B的ESI位后的10位若为空则跳
004D4F5E |. 8D55 C8 LEA EDX,DWORD PTR SS:[EBP-38]
004D4F61 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004D4F64 |. E8 EB41F3FF CALL RE.00409154
004D4F69 |. 837D C8 00 CMP DWORD PTR SS:[EBP-38],0
004D4F6D |. 0F84 B3000000 JE RE.004D5026 ; //大写字符串B的9-16位若为空则跳
004D4F73 |. 8D55 C4 LEA EDX,DWORD PTR SS:[EBP-3C]
004D4F76 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004D4F79 |. E8 D641F3FF CALL RE.00409154
004D4F7E |. 837D C4 00 CMP DWORD PTR SS:[EBP-3C],0
004D4F82 |. 0F84 9E000000 JE RE.004D5026 ; //字符串A的第3位若为空则跳
004D4F88 |. 8D45 C0 LEA EAX,DWORD PTR SS:[EBP-40]
004D4F8B |. 50 PUSH EAX
004D4F8C |. FF75 F8 PUSH DWORD PTR SS:[EBP-8] ; //大写字符串A的9-16位
004D4F8F |. FF75 F0 PUSH DWORD PTR SS:[EBP-10] ; //字符串B的ESI位后的10位
004D4F92 |. FF75 F4 PUSH DWORD PTR SS:[EBP-C] ; //字符串A的第3位
004D4F95 |. 8D45 B8 LEA EAX,DWORD PTR SS:[EBP-48]
004D4F98 |. BA 03000000 MOV EDX,3
004D4F9D |. E8 AAFEF2FF CALL RE.00404E4C ; //将上面三个字符串相连,设为字符串C
004D4FA2 |. 8B45 B8 MOV EAX,DWORD PTR SS:[EBP-48] ; //字符串C
004D4FA5 |. 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44]
004D4FA8 |. E8 2F8FFEFF CALL RE.004BDEDC ; //将字符串C作MD5运算转小写,设为字符串D
004D4FAD |. 8B45 BC MOV EAX,DWORD PTR SS:[EBP-44] ; //字符串D
004D4FB0 |. B9 05000000 MOV ECX,5
004D4FB5 |. 8BD6 MOV EDX,ESI
004D4FB7 |. E8 3000F3FF CALL RE.00404FEC ; //取字符串D的ESI位后的5位,设为字符串D
004D4FBC |. 8B55 C0 MOV EDX,DWORD PTR SS:[EBP-40] ; //字符串D
004D4FBF |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //字符串A的4-8位
004D4FC2 |. E8 11FFF2FF CALL RE.00404ED8 ; //比较CALL
004D4FC7 |. 75 35 JNZ SHORT RE.004D4FFE ; //关键跳转
004D4FC9 |. 8D55 B0 LEA EDX,DWORD PTR SS:[EBP-50]
004D4FCC |. 8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
004D4FD2 |. E8 05C7F9FF CALL RE.004716DC
004D4FD7 |. 8B45 B0 MOV EAX,DWORD PTR SS:[EBP-50]
004D4FDA |. 8D55 B4 LEA EDX,DWORD PTR SS:[EBP-4C]
004D4FDD |. E8 7241F3FF CALL RE.00409154
004D4FE2 |. 8B4D B4 MOV ECX,DWORD PTR SS:[EBP-4C]
004D4FE5 |. 33D2 XOR EDX,EDX
004D4FE7 |. 8BC3 MOV EAX,EBX
004D4FE9 |. E8 06010000 CALL RE.004D50F4
004D4FEE |. 8BC3 MOV EAX,EBX
004D4FF0 |. E8 E7010000 CALL RE.004D51DC
004D4FF5 |. 8BC3 MOV EAX,EBX
004D4FF7 |. E8 B09AFBFF CALL RE.0048EAAC
004D4FFC |. EB 4E JMP SHORT RE.004D504C
004D4FFE |> 6A 30 PUSH 30
004D5000 |. B9 B8504D00 MOV ECX,RE.004D50B8 ; Registry Easy
004D5005 |. BA C8504D00 MOV EDX,RE.004D50C8 ; Invalid serial number! Please try again...
004D500A |. A1 1C955800 MOV EAX,DWORD PTR DS:[58951C]
004D500F |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004D5011 |. E8 F6D3FBFF CALL RE.0049240C
004D5016 |. 8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
004D501C |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
004D501E |. FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
004D5024 |. EB 26 JMP SHORT RE.004D504C
004D5026 |> 6A 30 PUSH 30
004D5028 |. B9 B8504D00 MOV ECX,RE.004D50B8 ; Registry Easy
004D502D |. BA C8504D00 MOV EDX,RE.004D50C8 ; Invalid serial number! Please try again...
004D5032 |. A1 1C955800 MOV EAX,DWORD PTR DS:[58951C]
004D5037 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004D5039 |. E8 CED3FBFF CALL RE.0049240C
004D503E |. 8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
004D5044 |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
004D5046 |. FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
004D504C |> 33C0 XOR EAX,EAX
004D504E |. 5A POP EDX
004D504F |. 59 POP ECX
004D5050 |. 59 POP ECX
004D5051 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004D5054 |. 68 8B504D00 PUSH RE.004D508B
004D5059 |> 8D45 B0 LEA EAX,DWORD PTR SS:[EBP-50]
004D505C |. E8 6BFAF2FF CALL RE.00404ACC
004D5061 |. 8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C]
004D5064 |. BA 0D000000 MOV EDX,0D
004D5069 |. E8 82FAF2FF CALL RE.00404AF0
004D506E |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
004D5071 |. E8 56FAF2FF CALL RE.00404ACC
004D5076 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
004D5079 |. BA 05000000 MOV EDX,5
004D507E |. E8 6DFAF2FF CALL RE.00404AF0
004D5083 \. C3 RETN
004D5084 .^ E9 A3F3F2FF JMP RE.0040442C
004D5089 .^ EB CE JMP SHORT RE.004D5059
004D508B . 5E POP ESI
004D508C . 5B POP EBX
004D508D . 8BE5 MOV ESP,EBP
004D508F . 5D POP EBP
004D5090 . C3 RETN
**************************************************************
【破解总结】
运用了MD5加密运算
--------------------------------------------------------------
【算法总结】
举例说明:
1.根据软件的要求输入的试炼码为"1234-5678-9abc-def0"
2.去掉试炼码中间的"-"后为"123456789abcdef0"
3.取"123456789abcdef0"的9-16位为"9abcdef0",转大写为"9ABCDEF0"
4."Easy Gang"作MD5运算转小写为"ec7235e71546232da9f7cc02f32c9d0e"
5.根据试炼码的第1位上的字符"1",1+1=2,取"ec7235e71546232da9f7cc02f32c9d0e"的第2位后的10位,即"c7235e7154"
6.将字符串"9ABCDEF0"、"c7235e7154"和试炼码的第3位上字符"3"相连得"9ABCDEF0c7235e71543"
7."9ABCDEF0c7235e71543"作MD5运算转小写为"4fc224905dcd47d77c3727b723602dc2"
8.根据试炼码的第2位上的字符"2",2+1=3,取"4fc224905dcd47d77c3727b723602dc2"的第3位后的5位,即"c2249"
9.最后将试炼码去掉"-"后的4-8位,即"45678"与运算所得的"c2249"比较,相同则注册成功
经分析可知"123c-2249-9abc-def0"为一组正确的注册码
--------------------------------------------------------------
【算法注册机】
易语言代码.版本 2
.支持库 dp1
.子程序 _按钮1_被单击
.局部变量 A, 文本型, , , 第9-16位
.局部变量 B, 文本型, , , 第1位
.局部变量 C, 文本型, , , 第2位
.局部变量 D, 文本型, , , 第3位
.局部变量 E, 文本型
.局部变量 F, 文本型
A = 到文本 (取随机数 (0, 9)) + 到文本 (取随机数 (0, 9)) + 到文本 (取随机数 (0, 9)) + 到文本 (取随机数 (0, 9)) + 到文本 (取随机数 (0, 9)) + 到文本 (取随机数 (0, 9)) + 到文本 (取随机数 (0, 9)) + 到文本 (取随机数 (0, 9))
B = 到文本 (取随机数 (0, 9))
C = 到文本 (取随机数 (0, 9))
D = 到文本 (取随机数 (0, 9))
E = 取文本中间 (“ec7235e71546232da9f7cc02f32c9d0e”, 到整数 (B) + 1, 10)
F = 取文本中间 (取数据摘要 (到字节集 (A + E + D)), 到整数 (C) + 1, 5)
编辑框1.内容 = 取文本中间 (B + C + D + F + A, 1, 4) + “-” + 取文本中间(B + C + D + F + A, 5, 4) + “-” + 取文本中间 (B + C + D + F + A, 9, 4) + “-” + 取文本中间 (B + C + D + F + A, 13, 4)
--------------------------------------------------------------
【注册信息】
送几组靓号:
6660-7f99-6666-6666
777a-612f-7777-7777
888b-f603-8888-8888
保存在
[HKEY_CURRENT_USER\Software\RegistryEasy]
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及徐超等所有帮助过我的论坛兄弟姐妹们!谢谢
元旦快到了,祝朋友们在新年里:事业如日中天,心情阳光灿烂,工资地覆天翻,未来风光无限,爱情浪漫依然,快乐游戏人间。
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |
免费评分
-
查看全部评分
|