- UID
- 5592
注册时间2005-12-21
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 慵懒 2019-1-18 17:27 |
---|
签到天数: 30 天 [LV.5]常住居民I
|
【破文标题】SQL管理器 5.0解码分析
【破文作者】lzq1973[PYG][CZG][OCN][DFCG][D4.s]
【作者邮箱】[email protected]
【作者主页】http://my.winzheng.com/?455397
【破解工具】OD、PEiD、C32Asm
【破解平台】WinXP
【软件名称】SQL管理器 5.0
【软件大小】363KB
【原版下载】http://www.sharebank.com.cn/soft/SoftView_24394.htm
【保护方式】SN
【软件简介】功能说明:
1、实现远程连接数据服务器。
2、对数据库进行“备份、恢复、日志文件清除”。
3、提取多个表的结构,并可保存。
4、可以把表中记录直接生成“Insert、Delete、Update”语句,便于使用。
5、可以直接提取表中记录值。
6、可以对多表进行备份。
7、可以直接在此运行SQL语句。
【破解声明】俺是只小小鸟,纯为学习,愿与大家分享!
------------------------------------------------------------------------
【破解过程】 OD载入,来到这里
004C6991 . 50 push eax
004C6992 . B9 02000080 mov ecx, 80000002
004C6997 . BA 546D4C00 mov edx, 004C6D54 ; serialno
004C699C . B8 686D4C00 mov eax, 004C6D68 ; software\microsoft\windows\currentversion\explorer\movecont_sql
004C69A1 . E8 AEFAFFFF call 004C6454
004C69A6 . 8D45 EC lea eax, [ebp-14]
004C69A9 . 50 push eax
004C69AA . 8D45 E8 lea eax, [ebp-18]
004C69AD . 50 push eax
004C69AE . 8D45 E4 lea eax, [ebp-1C]
004C69B1 . E8 6AEAFFFF call 004C5420
004C69B6 . 8B45 E4 mov eax, [ebp-1C]
004C69B9 . 8BCE mov ecx, esi
004C69BB . 8BD3 mov edx, ebx
004C69BD . E8 36E8FFFF call 004C51F8
004C69C2 . 8B45 E8 mov eax, [ebp-18] ; 机器码(ASCII "00096535")
004C69C5 . 8B4D 0C mov ecx, [ebp+C]
004C69C8 . 8BD7 mov edx, edi
004C69CA . E8 6DE6FFFF call 004C503C ; 关键处
004C69CF . 8B55 EC mov edx, [ebp-14] ; (ASCII "5885-0-480-0")
004C69D2 . 8B45 F4 mov eax, [ebp-C]
004C69D5 . E8 EAE0F3FF call 00404AC4
004C69DA . 75 1A jnz short 004C69F6
004C69DC . 8B45 08 mov eax, [ebp+8]
004C69DF . BA B06D4C00 mov edx, 004C6DB0 ; 1
=====================004C69CA . E8 6DE6FFFF call 004C503C==================
004C503C /$ 55 push ebp
004C503D |. 8BEC mov ebp, esp
004C503F |. 51 push ecx
004C5040 |. B9 07000000 mov ecx, 7
004C5045 |> 6A 00 /push 0
004C5047 |. 6A 00 |push 0
004C5049 |. 49 |dec ecx
004C504A |.^ 75 F9 \jnz short 004C5045
004C504C |. 874D FC xchg [ebp-4], ecx
004C504F |. 53 push ebx
004C5050 |. 56 push esi
004C5051 |. 8BF1 mov esi, ecx
004C5053 |. 8BDA mov ebx, edx
004C5055 |. 8945 FC mov [ebp-4], eax ; 机器码(ASCII "00096535")
004C5058 |. 8B45 FC mov eax, [ebp-4]
004C505B |. E8 08FBF3FF call 00404B68
004C5060 |. 33C0 xor eax, eax
004C5062 |. 55 push ebp
004C5063 |. 68 CF514C00 push 004C51CF
004C5068 |. 64:FF30 push dword ptr fs:[eax]
004C506B |. 64:8920 mov fs:[eax], esp
004C506E |. 8D45 F8 lea eax, [ebp-8]
004C5071 |. 50 push eax
004C5072 |. 8D45 E0 lea eax, [ebp-20]
004C5075 |. 50 push eax
004C5076 |. B9 02000000 mov ecx, 2 ; 取前2位
004C507B |. 33D2 xor edx, edx
004C507D |. 8B45 FC mov eax, [ebp-4]
004C5080 |. E8 53FBF3FF call 00404BD8
004C5085 |. 8B45 E0 mov eax, [ebp-20] ; (ASCII "00")
004C5088 |. E8 9740F4FF call 00409124
004C508D |. F7EB imul ebx ; |EAX=EBX×EAX
004C508F |. 8945 E4 mov [ebp-1C], eax ; |EBP1C=EAX
004C5092 |. C645 E8 00 mov byte ptr [ebp-18], 0 ; |
004C5096 |. 8D55 E4 lea edx, [ebp-1C] ; |
004C5099 |. 33C9 xor ecx, ecx ; |
004C509B |. B8 E8514C00 mov eax, 004C51E8 ; |ASCII "%d"
004C50A0 |. E8 D34BF4FF call 00409C78 ; \P_SQLMan.00409C78
004C50A5 |. 8D45 F4 lea eax, [ebp-C]
004C50A8 |. 50 push eax
004C50A9 |. 8D45 DC lea eax, [ebp-24]
004C50AC |. 50 push eax
004C50AD |. B9 02000000 mov ecx, 2 ; 取2位
004C50B2 |. BA 02000000 mov edx, 2 ; 从第二位开始,即2、3位
004C50B7 |. 8B45 FC mov eax, [ebp-4]
004C50BA |. E8 19FBF3FF call 00404BD8
004C50BF |. 8B45 DC mov eax, [ebp-24]
004C50C2 |. E8 5D40F4FF call 00409124
004C50C7 |. F7EE imul esi ; |EAX=ESI×EAX
004C50C9 |. 8945 E4 mov [ebp-1C], eax ; |
004C50CC |. C645 E8 00 mov byte ptr [ebp-18], 0 ; |
004C50D0 |. 8D55 E4 lea edx, [ebp-1C] ; |
004C50D3 |. 33C9 xor ecx, ecx ; |
004C50D5 |. B8 E8514C00 mov eax, 004C51E8 ; |ASCII "%d"
004C50DA |. E8 994BF4FF call 00409C78 ; \P_SQLMan.00409C78
004C50DF |. 8D45 F0 lea eax, [ebp-10]
004C50E2 |. 50 push eax
004C50E3 |. 8D45 D8 lea eax, [ebp-28]
004C50E6 |. 50 push eax
004C50E7 |. B9 02000000 mov ecx, 2 ; 取2位
004C50EC |. BA 04000000 mov edx, 4 ; 从第4位开始,即4、5位
004C50F1 |. 8B45 FC mov eax, [ebp-4]
004C50F4 |. E8 DFFAF3FF call 00404BD8
004C50F9 |. 8B45 D8 mov eax, [ebp-28] ; (ASCII "96")
004C50FC |. E8 2340F4FF call 00409124
004C5101 |. F7EB imul ebx ; |EAX=EBX×EAX
004C5103 |. 8945 E4 mov [ebp-1C], eax ; |
004C5106 |. C645 E8 00 mov byte ptr [ebp-18], 0 ; |
004C510A |. 8D55 E4 lea edx, [ebp-1C] ; |
004C510D |. 33C9 xor ecx, ecx ; |
004C510F |. B8 E8514C00 mov eax, 004C51E8 ; |ASCII "%d"
004C5114 |. E8 5F4BF4FF call 00409C78 ; \P_SQLMan.00409C78
004C5119 |. 8D45 EC lea eax, [ebp-14]
004C511C |. 50 push eax
004C511D |. 8D45 D4 lea eax, [ebp-2C]
004C5120 |. 50 push eax
004C5121 |. B9 03000000 mov ecx, 3 ; 取三位
004C5126 |. BA 06000000 mov edx, 6 ; 从第6位开始
004C512B |. 8B45 FC mov eax, [ebp-4]
004C512E |. E8 A5FAF3FF call 00404BD8
004C5133 |. 8B45 D4 mov eax, [ebp-2C] ; (ASCII "535")
004C5136 |. E8 E93FF4FF call 00409124
004C513B |. F7EE imul esi ; |
004C513D |. 8945 E4 mov [ebp-1C], eax ; |
004C5140 |. C645 E8 00 mov byte ptr [ebp-18], 0 ; |
004C5144 |. 8D55 E4 lea edx, [ebp-1C] ; |
004C5147 |. 33C9 xor ecx, ecx ; |
004C5149 |. B8 E8514C00 mov eax, 004C51E8 ; |ASCII "%d"
004C514E |. E8 254BF4FF call 00409C78 ; \P_SQLMan.00409C78
004C5153 |. 8D55 D0 lea edx, [ebp-30]
004C5156 |. 8B45 EC mov eax, [ebp-14] ; 转为10进制 (ASCII "5885")
004C5159 |. E8 0A3CF4FF call 00408D68
004C515E |. FF75 D0 push dword ptr [ebp-30]
004C5161 |. 68 F4514C00 push 004C51F4
004C5166 |. 8D55 CC lea edx, [ebp-34]
004C5169 |. 8B45 F8 mov eax, [ebp-8] ; 这里为 0
004C516C |. E8 F73BF4FF call 00408D68
004C5171 |. FF75 CC push dword ptr [ebp-34]
004C5174 |. 68 F4514C00 push 004C51F4
004C5179 |. 8D55 C8 lea edx, [ebp-38]
004C517C |. 8B45 F0 mov eax, [ebp-10] ; 转为10进制 (ASCII "480")
004C517F |. E8 E43BF4FF call 00408D68
004C5184 |. FF75 C8 push dword ptr [ebp-38]
004C5187 |. 68 F4514C00 push 004C51F4
004C518C |. 8D55 C4 lea edx, [ebp-3C]
004C518F |. 8B45 F4 mov eax, [ebp-C] ; 这里为 0
004C5192 |. E8 D13BF4FF call 00408D68
004C5197 |. FF75 C4 push dword ptr [ebp-3C]
004C519A |. 8B45 08 mov eax, [ebp+8]
004C519D |. BA 07000000 mov edx, 7
004C51A2 |. E8 99F8F3FF call 00404A40
004C51A7 |. 33C0 xor eax, eax
004C51A9 |. 5A pop edx
004C51AA |. 59 pop ecx
004C51AB |. 59 pop ecx
004C51AC |. 64:8910 mov fs:[eax], edx
004C51AF |. 68 D6514C00 push 004C51D6
004C51B4 |> 8D45 C4 lea eax, [ebp-3C]
004C51B7 |. BA 08000000 mov edx, 8
004C51BC |. E8 2BF5F3FF call 004046EC
004C51C1 |. 8D45 EC lea eax, [ebp-14]
004C51C4 |. BA 05000000 mov edx, 5
004C51C9 |. E8 1EF5F3FF call 004046EC
004C51CE \. C3 retn
004C51CF .^ E9 3CEEF3FF jmp 00404010
004C51D4 .^ EB DE jmp short 004C51B4
004C51D6 . 5E pop esi
004C51D7 . 5B pop ebx
004C51D8 . 8BE5 mov esp, ebp
004C51DA . 5D pop ebp
004C51DB . C2 0400 retn 4
------------------------------------------------------------------------
【破解总结】
1、取机器的第6、7、8位乘以11为SN1;
2、取机器的前两位乘以5为SN2;
3、取机器的第4、5位乘以5为SN3;
4、取机器的第2、3位乘以11为SN4;
5、SN=SN1+SN2+SN3+SN4
注:这里的“+”为连接符
附注册机源码:
.版本 2
内容 = 编辑框1.内容
len = 取文本长度 (内容)
.如果 (编辑框1.内容 ≠ “”)
sn1 = 取文本左边 (内容, 2)
sn1 = 到文本 (到数值 (sn1) × 5)
sn2 = 取文本中间 (内容, 2, 2)
sn2 = 到文本 (到数值 (sn2) × 11)
sn3 = 取文本中间 (内容, 4, 2)
sn3 = 到文本 (到数值 (sn3) × 5)
sn4 = 取文本中间 (内容, 6, 3)
sn4 = 到文本 (到数值 (sn4) × 11)
Sn = sn4 + “-” + sn1 + “-” + sn3 + “-” + sn2
编辑框2.内容 = Sn
.否则
信息框 (“机器码是否输入正确?”, 0, “提示”)
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢! |
|