【破文标题】SQL管理器 5.0解码分析
【破文标题】SQL管理器 5.0解码分析【破文作者】lzq1973
【作者邮箱】[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,
004C69A9 .50 push eax
004C69AA .8D45 E8 lea eax,
004C69AD .50 push eax
004C69AE .8D45 E4 lea eax,
004C69B1 .E8 6AEAFFFF call 004C5420
004C69B6 .8B45 E4 mov eax,
004C69B9 .8BCE mov ecx, esi
004C69BB .8BD3 mov edx, ebx
004C69BD .E8 36E8FFFF call 004C51F8
004C69C2 .8B45 E8 mov eax, ;机器码(ASCII "00096535")
004C69C5 .8B4D 0C mov ecx,
004C69C8 .8BD7 mov edx, edi
004C69CA .E8 6DE6FFFF call 004C503C ;关键处
004C69CF .8B55 EC mov edx, ;(ASCII "5885-0-480-0")
004C69D2 .8B45 F4 mov eax,
004C69D5 .E8 EAE0F3FF call 00404AC4
004C69DA .75 1A jnz short 004C69F6
004C69DC .8B45 08 mov eax,
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 , ecx
004C504F|.53 push ebx
004C5050|.56 push esi
004C5051|.8BF1 mov esi, ecx
004C5053|.8BDA mov ebx, edx
004C5055|.8945 FC mov , eax ;机器码(ASCII "00096535")
004C5058|.8B45 FC mov eax,
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:
004C506B|.64:8920 mov fs:, esp
004C506E|.8D45 F8 lea eax,
004C5071|.50 push eax
004C5072|.8D45 E0 lea eax,
004C5075|.50 push eax
004C5076|.B9 02000000 mov ecx, 2 ;取前2位
004C507B|.33D2 xor edx, edx
004C507D|.8B45 FC mov eax,
004C5080|.E8 53FBF3FF call 00404BD8
004C5085|.8B45 E0 mov eax, ;(ASCII "00")
004C5088|.E8 9740F4FF call 00409124
004C508D|.F7EB imul ebx ; |EAX=EBX×EAX
004C508F|.8945 E4 mov , eax ; |EBP1C=EAX
004C5092|.C645 E8 00 mov byte ptr , 0 ; |
004C5096|.8D55 E4 lea edx, ; |
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,
004C50A8|.50 push eax
004C50A9|.8D45 DC lea eax,
004C50AC|.50 push eax
004C50AD|.B9 02000000 mov ecx, 2 ;取2位
004C50B2|.BA 02000000 mov edx, 2 ;从第二位开始,即2、3位
004C50B7|.8B45 FC mov eax,
004C50BA|.E8 19FBF3FF call 00404BD8
004C50BF|.8B45 DC mov eax,
004C50C2|.E8 5D40F4FF call 00409124
004C50C7|.F7EE imul esi ; |EAX=ESI×EAX
004C50C9|.8945 E4 mov , eax ; |
004C50CC|.C645 E8 00 mov byte ptr , 0 ; |
004C50D0|.8D55 E4 lea edx, ; |
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,
004C50E2|.50 push eax
004C50E3|.8D45 D8 lea eax,
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,
004C50F4|.E8 DFFAF3FF call 00404BD8
004C50F9|.8B45 D8 mov eax, ;(ASCII "96")
004C50FC|.E8 2340F4FF call 00409124
004C5101|.F7EB imul ebx ; |EAX=EBX×EAX
004C5103|.8945 E4 mov , eax ; |
004C5106|.C645 E8 00 mov byte ptr , 0 ; |
004C510A|.8D55 E4 lea edx, ; |
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,
004C511C|.50 push eax
004C511D|.8D45 D4 lea eax,
004C5120|.50 push eax
004C5121|.B9 03000000 mov ecx, 3 ;取三位
004C5126|.BA 06000000 mov edx, 6 ;从第6位开始
004C512B|.8B45 FC mov eax,
004C512E|.E8 A5FAF3FF call 00404BD8
004C5133|.8B45 D4 mov eax, ;(ASCII "535")
004C5136|.E8 E93FF4FF call 00409124
004C513B|.F7EE imul esi ; |
004C513D|.8945 E4 mov , eax ; |
004C5140|.C645 E8 00 mov byte ptr , 0 ; |
004C5144|.8D55 E4 lea edx, ; |
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,
004C5156|.8B45 EC mov eax, ;转为10进制 (ASCII "5885")
004C5159|.E8 0A3CF4FF call 00408D68
004C515E|.FF75 D0 push dword ptr
004C5161|.68 F4514C00 push 004C51F4
004C5166|.8D55 CC lea edx,
004C5169|.8B45 F8 mov eax, ;这里为0
004C516C|.E8 F73BF4FF call 00408D68
004C5171|.FF75 CC push dword ptr
004C5174|.68 F4514C00 push 004C51F4
004C5179|.8D55 C8 lea edx,
004C517C|.8B45 F0 mov eax, ;转为10进制 (ASCII "480")
004C517F|.E8 E43BF4FF call 00408D68
004C5184|.FF75 C8 push dword ptr
004C5187|.68 F4514C00 push 004C51F4
004C518C|.8D55 C4 lea edx,
004C518F|.8B45 F4 mov eax, ;这里为0
004C5192|.E8 D13BF4FF call 00408D68
004C5197|.FF75 C4 push dword ptr
004C519A|.8B45 08 mov eax,
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:, edx
004C51AF|.68 D6514C00 push 004C51D6
004C51B4|>8D45 C4 lea eax,
004C51B7|.BA 08000000 mov edx, 8
004C51BC|.E8 2BF5F3FF call 004046EC
004C51C1|.8D45 EC lea eax,
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, “提示”)
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
页:
[1]