【破文标题】破商城价:¥118.00的数据库字典生成器
【破文作者】未注册!
【作者邮箱】xiao_niao8@163.com
【作者主页】
【破解工具】OD
【破解平台】XP
【软件名称】数据库字典生成器
【软件大小】1966KB
【原版下载】http://www.31buy.com/Soft/Soft_13458.htm
【保护方式】ASPR壳,一机一码。用户名+注册码
【软件简介】一款操作简单,界面简洁,能帮助您生成非常漂亮的数据库字典文
档的优秀软件。
1.0版本目前适用于MS SQLServer产品
商城价:¥118.00
【破解声明】通宵无聊,找来学习,算法就不分析了,自己还不行,努力中,加油!此软件加了ASPR壳,我就不脱壳破解他!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
【破解过程】思路:
用F12暂定法,找到关键!下硬件执行断点! 闲话少说:工作,拿OD载入安装好的软件,查壳,发现ASPR壳,感觉脱壳麻烦,
我就不脱。没什么技术,大侠见笑了·
程序入口停在:
0044E000 > 55 push ebp
0044E001 E8 01000000 call DBDictBu.0044E007
0044E006 - 72 83 jb short DBDictBu.0044DF8B
0044E008 C4040B les eax,fword ptr ds:[ebx+ecx]
0044E00B - EB EB jmp short DBDictBu.0044DFF8
0044E00D 017C7A 03 add dword ptr ds:[edx+edi*2+3],edi
0044E011 C1E5 78 shl ebp,78
0044E014 EB 01 jmp short DBDictBu.0044E017
0044E016 9A 0F8A0400 000>call far 0000:00048A0F
0044E01D 66:C1C5 A4 rol bp,0A4
0044E021 E8 01000000 call DBDictBu.0044E027
0044E026 - 77 83 ja short DBDictBu.0044DFAB
0044E028 04 24 add al,24
0044E02A 06 push es
0044E02B C3 retn
0044E02C 7B 01 jpo short DBDictBu.0044E02F
0044E02E F8 clc
0044E02F E8 01000000 call DBDictBu.0044E035
0044E034 - 76 83 jbe short DBDictBu.0044DFB9
0044E036 04 24 add al,24
0044E038 06 push es
0044E039 C3 retn
0044E03A C1E8 EA shr eax,0EA
0044E03D BF 20E14400 mov edi,DBDictBu.0044E120
0044E042 E8 01000000 call DBDictBu.0044E048
0044E047 - 71 83 jno short DBDictBu.0044DFCC
0044E049 04 24 add al,24
0044E04B 06 push es
0044E04C C3 retn
直接运行!输入假码:yaoxiang 123456789! 提示注册码错识,F12暂停,最调用堆栈!直接来到关键位置:
00438E95 FF15 AC104000 call dword ptr ds:[4010AC] ; MSVBVM60.rtcMsgBox://不说就知道提示出错的地方,并且发现其为VB编的程序!
00438E9B 8D45 A0 lea eax,dword ptr ss:[ebp-60]
00438E9E 50 push eax
00438E9F 8D4D B0 lea ecx,dword ptr ss:[ebp-50]
00438EA2 51 push ecx
00438EA3 8D55 C0 lea edx,dword ptr ss:[ebp-40]
00438EA6 52 push edx
00438EA7 8D45 D0 lea eax,dword ptr ss:[ebp-30]
00438EAA 50 push eax
00438EAB 6A 04 push 4
00438EAD FFD7 call edi
00438EAF 8B0E mov ecx,dword ptr ds:[esi]
00438EB1 83C4 14 add esp,14
00438EB4 56 push esi
00438EB5 FF91 0C030000 call dword ptr ds:[ecx+30C]
00438EBB 50 push eax
00438EBC 8D55 E0 lea edx,dword ptr ss:[ebp-20]
00438EBF 52 push edx
00438EC0 FF15 A8104000 call dword ptr ds:[4010A8] ; MSVBVM60.__vbaObjSet
往上拉看看!·:到这里,
00438E2C E8 CF290000 call DBDictBu.0043B800 关键CALL算法
00438E31 66:833D 2670440>cmp word ptr ds:[447026],0FFFF
00438E39 0F84 AC000000 je DBDictBu.00438EEB 改JMP跳就注册成功!
00438E3F B9 04000280 mov ecx,80020004
00438E44 B8 0A000000 mov eax,0A
00438E49 894D A8 mov dword ptr ss:[ebp-58],ecx
00438E4C 894D B8 mov dword ptr ss:[ebp-48],ecx
00438E4F 895D 80 mov dword ptr ss:[ebp-80],ebx
00438E52 8B1D 0C124000 mov ebx,dword ptr ds:[40120C] ; MSVBVM60.__vbaVarDup
00438E58 8D55 80 lea edx,dword ptr ss:[ebp-80]
00438E5B 8D4D C0 lea ecx,dword ptr ss:[ebp-40]
00438E5E 8945 A0 mov dword ptr ss:[ebp-60],eax
00438E61 8945 B0 mov dword ptr ss:[ebp-50],eax
00438E64 C745 88 2073400>mov dword ptr ss:[ebp-78],DBDictBu.00407320
00438E6B FFD3 call ebx
00438E6D 8D55 90 lea edx,dword ptr ss:[ebp-70]
00438E70 8D4D D0 lea ecx,dword ptr ss:[ebp-30]
00438E73 C745 98 5473400>mov dword ptr ss:[ebp-68],DBDictBu.00407354
00438E7A C745 90 0800000>mov dword ptr ss:[ebp-70],8
00438E81 FFD3 call ebx
00438E83 8D55 A0 lea edx,dword ptr ss:[ebp-60]
00438E86 52 push edx
00438E87 8D45 B0 lea eax,dword ptr ss:[ebp-50]
00438E8A 50 push eax
00438E8B 8D4D C0 lea ecx,dword ptr ss:[ebp-40]
00438E8E 51 push ecx
00438E8F 6A 30 push 30
00438E91 8D55 D0 lea edx,dword ptr ss:[ebp-30]
00438E94 52 push edx
00438E95 FF15 AC104000 call dword ptr ds:[4010AC] ; MSVBVM60.rtcMsgBox
跟进算法CALL进行算法运算,其为明码比较!
00438E2C E8 CF290000 call DBDictBu.0043B800 此处下硬件执行断点后!F7跟进
0043B837 A1 28704400 mov eax,dword ptr ds:[447028]
0043B83C 50 push eax ; 假码进放进EAX
0043B83D E8 CEE7FFFF call DBDictBu.0043A010
0043B842 8B35 2C124000 mov esi,dword ptr ds:[40122C] ; MSVBVM60.__vbaStrMove
0043B848 8BD0 mov edx,eax
0043B84A 8D4D EC lea ecx,dword ptr ss:[ebp-14]
0043B84D FFD6 call esi
0043B84F 8B0D 2C704400 mov ecx,dword ptr ds:[44702C]
0043B855 50 push eax
0043B856 51 push ecx
0043B857 E8 C4010000 call DBDictBu.0043BA20
0043B85C 50 push eax
0043B85D FF15 14104000 call dword ptr ds:[401014] ; MSVBVM60.__vbaStrI4
0043B863 8BD0 mov edx,eax
0043B865 8D4D E8 lea ecx,dword ptr ss:[ebp-18]
0043B868 FFD6 call esi
0043B86A 50 push eax
0043B86B FF15 68104000 call dword ptr ds:[401068] ; MSVBVM60.__vbaStrCat
0043B871 8BD0 mov edx,eax
0043B873 8D4D E4 lea ecx,dword ptr ss:[ebp-1C] 一看就知道是连接函数
0043B876 FFD6 call esi
0043B878 50 push eax
0043B879 E8 62F2FFFF call DBDictBu.0043AAE0
0043B87E 8BD0 mov edx,eax 这里出现了真正的注册码了。很简单啦
0043B880 8D4D E0 lea ecx,dword ptr ss:[ebp-20]
0043B883 FFD6 call esi
0043B885 50 push eax
0043B886 FF15 FC104000 call dword ptr ds:[4010FC] ; MSVBVM60.__vbaStrCmp
0043B88C 8BF0 mov esi,eax 比较函数
0043B88E 8D55 E0 lea edx,dword ptr ss:[ebp-20]
0043B891 52 push edx
0043B892 8D45 E4 lea eax,dword ptr ss:[ebp-1C]
0043B895 50 push eax
0043B896 F7DE neg esi
0043B898 8D4D E8 lea ecx,dword ptr ss:[ebp-18]
0043B89B 51 push ecx
0043B89C 1BF6 sbb esi,esi
0043B89E 8D55 EC lea edx,dword ptr ss:[ebp-14]
0043B8A1 52 push edx
0043B8A2 46 inc esi
0043B8A3 6A 04 push 4
0043B8A5 F7DE neg esi
0043B8A7 FF15 E0114000 call dword ptr ds:[4011E0] ; MSVBVM60.__vbaFreeStrList
0043B8AD 83C4 14 add esp,14 得到长字符串
0043B8B0 66:F7DE neg si
0043B8B3 68 E0B84300 push DBDictBu.0043B8E0
0043B8B8 1BF6 sbb esi,esi
0043B8BA 66:8935 2670440>mov word ptr ds:[447026],si
0043B8C1 EB 1C jmp short DBDictBu.0043B8DF
0043B8C3 8D45 E0 lea eax,dword ptr ss:[ebp-20]
0043B8C6 50 push eax
0043B8C7 8D4D E4 lea ecx,dword ptr ss:[ebp-1C]
0043B8CA 51 push ecx
0043B8CB 8D55 E8 lea edx,dword ptr ss:[ebp-18]
0043B8CE 52 push edx
0043B8CF 8D45 EC lea eax,dword ptr ss:[ebp-14]
0043B8D2 50 push eax
0043B8D3 6A 04 push 4
0043B8D5 FF15 E0114000 call dword ptr ds:[4011E0] ; MSVBVM60.__vbaFreeStrList
0043B8DB 83C4 14 add esp,14
0043B8DE C3 retn
0043B8DF C3 retn
0043B8E0 8B4D F0 mov ecx,dword ptr ss:[ebp-10]
软件注册成功后会在注册码生成一个值,并没有加密!像我这个注册码及用户名
:
[HKEY_LOCAL_MACHINE\SOFTWARE\K Works.\DatabaseDictBuilder]
"SecurityID"="0B688-55E43-264X3-CDF6X-776C2"
"UserName"="yaoxiang"
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--
【破解总结】
关键在于大家不脱壳的时候,记得下硬件执行断点!算法部分,我在努力中!希
望以后能搞点高级篇出来!大家有兴趣自己搞个内存注册机!
--------------------------------------------------------------------------------------------------------------------------------------------
【版权声明】: 本文原创首发一蓑烟雨论坛,及看雪! 转载请注明作者并保持文章的完整, 谢谢!
2009年06月22日 06:08:43
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课