好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 ITaman 于 2012-7-8 12:48 编辑
【文章标题】: 一款access密码破解器的破解分析
【文章作者】: ITaman
IDA,">【作者邮箱】: itaman@126.com
【软件名称】: Access数据库密码破解器
【软件大小】: 1.5M
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: PEID V0.95,OD,LordPE ,ImportREC
【操作平台】: windowXP
【软件介绍】: Access数据库密码破解器可以破解目前已知的各版本Access数据库密码,支持20位中英文密码的破解
(试用版只能显示前4位密码),支持批量数据库破解。
【作者声明】: 本人菜鸟一只,最近参加北理工举办ISCC2012信息安全大赛,有个题需要破解个Access数据库密码,
在网上搜索到此软件。初学破解一个月,纯交流,没有其他目的,支持正版。希望各位大侠多多指教~
***********************************************************************************************************************
【详细过程】
1.查壳
PEID查壳ASPack 2.12 -> Alexey Solodovnikov
2.脱壳
OD载入
0056D001 > 60 pushad //眼前一亮,考虑ESP定律
0056D002 E8 03000000 call ACpass.0056D00A
0056D007 - E9 EB045D45 jmp 45B3D4F7
0056D00C 55 push ebp
0056D00D C3 retn
单步F8,注意到寄存器ESP 为0012FFA4 右键数据窗口中跟随
来到数据窗口
0012FFA4 7C930738 ntdll.7C930738 下硬件访问断点
F9运行
0056D3B0 /75 08 jnz XACpass.0056D3BA
0056D3B2 |B8 01000000 mov eax,0x1
0056D3B7 |C2 0C00 retn 0xC
0056D3BA \68 FC524D00 push ACpass.004D52FC //OEP到了^_^
0056D3BF C3 retn
删除硬件断点,单步F8,来到OEP
004D52FC 55 push ebp
004D52FD 8BEC mov ebp,esp
004D52FF 83C4 F0 add esp,-0x10
004D5302 53 push ebx
004D5303 B8 844F4D00 mov eax,ACpass.004D4F84
004D5308 E8 CB15F3FF call ACpass.004068D8
004D530D 8B1D E4914D00 mov ebx,dword ptr ds:[0x4D91E4] ; ACpass.004DAC34
004D5313 8B03 mov eax,dword ptr ds:[ebx]
使用LordPE 先纠正映象大小,然后完整脱壳
使用ImportREC修复,输入表都找到了,嘻嘻!抓取,运行成功。^_^
3.破解
接下来开始破解
点击软件注册:输入用户名ITaman,注册码1234567,点注册验证,提示重启程序
典型的重启验证,先到注册表里找找有没有啥猫腻
运行 regedit打开注册表,查找ITaman
果然不出所料 里面写有
RegNo:1234567
RegUser:ITaman
OD载入脱壳后的程序
搜索ASCII码 搜索关键字RegUser
找到后双击来到这里
004D3B8F |> \C605 E0B14D00>mov byte ptr ds:[0x4DB1E0],0x0 //下断点,F9运行
004D3B96 |. B2 01 mov dl,0x1 //F8单步走,注意数据窗口和堆栈的变化
004D3B98 |. A1 2C804600 mov eax,dword ptr ds:[0x46802C]
004D3B9D |. E8 8A45F9FF call dumped_.0046812C
004D3BA2 |. 8BF0 mov esi,eax
004D3BA4 |. BA 01000080 mov edx,0x80000001
004D3BA9 |. 8BC6 mov eax,esi
004D3BAB |. E8 1C46F9FF call dumped_.004681CC
004D3BB0 |. B1 01 mov cl,0x1
004D3BB2 |. BA 403D4D00 mov edx,dumped_.004D3D40 ; Software\ACPass
004D3BB7 |. 8BC6 mov eax,esi
004D3BB9 |. E8 7246F9FF call dumped_.00468230
004D3BBE |. 8D4D F0 lea ecx,[local.4]
004D3BC1 |. BA 583D4D00 mov edx,dumped_.004D3D58 ; RegUser
004D3BC6 |. 8BC6 mov eax,esi
004D3BC8 |. E8 4B48F9FF call dumped_.00468418
004D3BCD |. 8B55 F0 mov edx,[local.4]
004D3BD0 |. B8 E4B14D00 mov eax,dumped_.004DB1E4
004D3BD5 |. E8 F608F3FF call dumped_.004044D0
004D3BDA |. 8D4D EC lea ecx,[local.5]
004D3BDD |. BA 683D4D00 mov edx,dumped_.004D3D68 ; RegNo
004D3BE2 |. 8BC6 mov eax,esi
004D3BE4 |. E8 2F48F9FF call dumped_.00468418
004D3BE9 |. 8B45 EC mov eax,[local.5]
004D3BEC |. 50 push eax
004D3BED |. 8D4D E8 lea ecx,[local.6]
004D3BF0 |. BA 783D4D00 mov edx,dumped_.004D3D78 ; acpassChina
004D3BF5 |. A1 E4B14D00 mov eax,dword ptr ds:[0x4DB1E4]
004D3BFA |. E8 D5E2FFFF call dumped_.004D1ED4 //关键CALL,F7
004D3BFF |. 8B55 E8 mov edx,[local.6] //单步到此处出现了数据窗口如下注册码
004D3C02 |. 58 pop eax
004D3C03 |. E8 700CF3FF call dumped_.00404878
004D3C08 |. 75 07 jnz Xdumped_.004D3C11
004D3C0A |. C605 E0B14D00>mov byte ptr ds:[0x4DB1E0],0x1
***********************************************************************************************************************
堆栈 ss:[0012FE00]=00F323B0, (ASCII "DCEFA8866F724BF5")
edx=00F36164, (ASCII "ITaman")
***********************************************************************************************************************
使用RegNo:DCEFA8866F724BF5
RegUser:ITaman
注册成功!^_^
PS:本来想研究下注册码算法,搞个注册机,无耐功底不够,希望哪位大侠能给出算法,小弟十分感谢~^_^上面分
析有错误的地方,请各位大侠不要见笑。
今天刚刚注册的号,感谢吾爱破解开放注册一天,已经期待了很久了~~
|
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|