申 请 I D : mic102
1、申 请 I D :mic1022、个人邮箱:974807@qq.com
3、原创破文:
################################################################################################
软件名称: Access数据库密码破解器 3.45
下载地址: http://www.skycn.com/soft/23984.html
破解之后获取的注册码----------用户名:1234 注册码:2E0455703466A10F
################################################################################################
pedit 查壳 ---ASPack 2.12 -> Alexey Solodovnikov
直接脱壳机搞定--ASPack UnPacker.exe(脱壳机)
脱壳后pedit查壳: Borland Delphi 6.0 - 7.0
################################################################################################
OD载入---查找字符串“注册”
---查到-- “文本字符串=注册完成,请重新运行程序!” 双击反汇编跟踪
在反汇编窗口中可以看到reguser 及regno software\acpass
猜测应该是放入到注册表中
接下来两种思路
1.---查找字符串---reguser regno 及software\acpass
2.---注册表下断点(BP RegQueryValueExA) 重载运行--查看reguser及regno
################################################################################################
########################注册表断点法############
运行 注意堆栈的显示----直到读取regno时----执行运行到用户代码
然后单步走一段代码----最后到达下面代码--
004D3BAB|.E8 1C46F9FF call ACpass_u.004681CC
004D3BB0|.B1 01 mov cl,0x1
004D3BB2|.BA 403D4D00 mov edx,ACpass_u.004D3D40 ;Software\ACPass
004D3BB7|.8BC6 mov eax,esi
004D3BB9|.E8 7246F9FF call ACpass_u.00468230
004D3BBE|.8D4D F0 lea ecx,
004D3BC1|.BA 583D4D00 mov edx,ACpass_u.004D3D58 ;RegUser
004D3BC6|.8BC6 mov eax,esi
004D3BC8|.E8 4B48F9FF call ACpass_u.00468418
004D3BCD|.8B55 F0 mov edx,
004D3BD0|.B8 E4B14D00 mov eax,ACpass_u.004DB1E4
004D3BD5|.E8 F608F3FF call ACpass_u.004044D0
004D3BDA|.8D4D EC lea ecx,
004D3BDD|.BA 683D4D00 mov edx,ACpass_u.004D3D68 ;RegNo
004D3BE2|.8BC6 mov eax,esi
004D3BE4|.E8 2F48F9FF call ACpass_u.00468418
004D3BE9|.8B45 EC mov eax,
004D3BEC|.50 push eax
往下看----注意堆栈及寄存器信息
004D3BE9|.8B45 EC mov eax,
004D3BEC|.50 push eax
004D3BED|.8D4D E8 lea ecx,
004D3BF0|.BA 783D4D00 mov edx,ACpass_u.004D3D78 ;acpassChina
004D3BF5|.A1 E4B14D00 mov eax,dword ptr ds:
004D3BFA|.E8 D5E2FFFF call ACpass_u.004D1ED4
004D3BFF|.8B55 E8 mov edx,
004D3C02|.58 pop eax
004D3C03|.E8 700CF3FF call ACpass_u.00404878 -------关键CALL--比较真假注册码
004D3C08|.75 07 jnz XACpass_u.004D3C11
004D3C0A|.C605 E0B14D00>mov byte ptr ds:,0x1
004D3C11|>8BC6 mov eax,esi
004D3C13|.E8 D8FAF2FF call ACpass_u.004036F0
004D3C18|.803D E0B14D00>cmp byte ptr ds:,0x0
004D3C1F|.75 27 jnz XACpass_u.004D3C48
004D3C21|.8D55 E4 lea edx,
004D3C24|.8BB3 18030000 mov esi,dword ptr ds:
004D3C2A|.8BC6 mov eax,esi
004D3C2C|.E8 8714FCFF call ACpass_u.004950B8
004D3C31|.8D45 E4 lea eax,
004D3C34|.BA 8C3D4D00 mov edx,ACpass_u.004D3D8C ; - 未购买用户
004D3C39|.E8 FE0AF3FF call ACpass_u.0040473C
跟入关键CALL 来到下面代码:
00404878/$53 push ebx
00404879|.56 push esi
0040487A|.57 push edi
0040487B|.89C6 mov esi,eax
0040487D|.89D7 mov edi,edx
0040487F|.39D0 cmp eax,edx -------------比较真假注册码
00404881 0F84 8F000000 je ACpass_u.00404916 ---------关键跳转直接改为jmp
00404887|.85F6 test esi,esi
00404889|.74 68 je XACpass_u.004048F3
0040488B|.85FF test edi,edi
0040488D|.74 6B je XACpass_u.004048FA
0040488F|.8B46 FC mov eax,dword ptr ds:
调试的时候让关键挑的JE 跳转--(改Z标志位) 跳出关键CALL 来到
004D3BF5|.A1 E4B14D00 mov eax,dword ptr ds:
004D3BFA|.E8 D5E2FFFF call ACpass_u.004D1ED4
004D3BFF|.8B55 E8 mov edx,
004D3C02|.58 pop eax
004D3C03|.E8 700CF3FF call ACpass_u.00404878 -----关键CALL
004D3C08|.75 07 jnz XACpass_u.004D3C11 -----回到此处-- 发现此处不跳转 继续向下
004D3C0A|.C605 E0B14D00>mov byte ptr ds:,0x1
004D3C11|>8BC6 mov eax,esi
004D3C13|.E8 D8FAF2FF call ACpass_u.004036F0
004D3C18|.803D E0B14D00>cmp byte ptr ds:,0x0
004D3C1F|.75 27 jnz XACpass_u.004D3C48-----到此处发现跳转-跳过了“未购买”用户
004D3C21|.8D55 E4 lea edx,
004D3C24|.8BB3 18030000 mov esi,dword ptr ds:
004D3C2A|.8BC6 mov eax,esi
004D3C2C|.E8 8714FCFF call ACpass_u.004950B8
004D3C31|.8D45 E4 lea eax,
004D3C34|.BA 8C3D4D00 mov edx,ACpass_u.004D3D8C ; - 未购买用户
004D3C39|.E8 FE0AF3FF call ACpass_u.0040473C
004D3C3E|.8B55 E4 mov edx,
004D3C41|.8BC6 mov eax,esi
F9运行看是否解除了未注册的限制-----运行起来后查看数据库密码---可以查看正确密码
到此爆破成功。
################################################################################################
############后续:#####------追正确注册码-------
记得刚才跟入关键CALL之后--比较了真假注册码---因此可以在比较处进行下断--从寄存器EDX中获取真注册码
###############################################################################################
1.---查找字符串---reguser regno 及software\acpass 破解方法
直接查找regno 来到:
004D3BAB|.E8 1C46F9FF call ACpass_u.004681CC
004D3BB0|.B1 01 mov cl,0x1
004D3BB2|.BA 403D4D00 mov edx,ACpass_u.004D3D40 ;Software\ACPass
004D3BB7|.8BC6 mov eax,esi
004D3BB9|.E8 7246F9FF call ACpass_u.00468230
004D3BBE|.8D4D F0 lea ecx,
004D3BC1|.BA 583D4D00 mov edx,ACpass_u.004D3D58 ;RegUser
004D3BC6|.8BC6 mov eax,esi
004D3BC8|.E8 4B48F9FF call ACpass_u.00468418
004D3BCD|.8B55 F0 mov edx,
004D3BD0|.B8 E4B14D00 mov eax,ACpass_u.004DB1E4
004D3BD5|.E8 F608F3FF call ACpass_u.004044D0
004D3BDA|.8D4D EC lea ecx,
004D3BDD|.BA 683D4D00 mov edx,ACpass_u.004D3D68 ;RegNo
004D3BE2|.8BC6 mov eax,esi
004D3BE4|.E8 2F48F9FF call ACpass_u.00468418
004D3BE9|.8B45 EC mov eax,
004D3BEC|.50 push eax
004D3BED|.8D4D E8 lea ecx,
004D3BF0|.BA 783D4D00 mov edx,ACpass_u.004D3D78 ;acpassChina
004D3BF5|.A1 E4B14D00 mov eax,dword ptr ds:
004D3BFA|.E8 D5E2FFFF call ACpass_u.004D1ED4
004D3BFF|.8B55 E8 mov edx,
看到这里相信大家都知道该怎么操作了吧--
跟上面注册表的一样--只是这种方法更快的找到了重启验证的位置
废话不再多说了 大家慢慢研究吧
################################################################################################
跟随的时候多次分析一下多跑两遍程序---就可以搞定了
################################################################################################
出现问题----OD调试器里面运行的时候(让关键跳转---可以正常使用)可是改为JMP之后保存运行就出现了问题
下面使用其他方法进行爆破--
004D3BED|.8D4D E8 lea ecx,
004D3BF0|.BA 783D4D00 mov edx,ACpass_u.004D3D78 ;acpassChina
004D3BF5|.A1 E4B14D00 mov eax,dword ptr ds:
004D3BFA|.E8 D5E2FFFF call ACpass_u.004D1ED4
004D3BFF|.8B55 E8 mov edx,
004D3C02|.58 pop eax
004D3C03|.E8 700CF3FF call ACpass_u.00404878 -------关键CALL--比较真假注册码
004D3C08|.75 07 jnz XACpass_u.004D3C11 //爆破改为JE
004D3C0A|.C605 E0B14D00>mov byte ptr ds:,0x1
004D3C11|>8BC6 mov eax,esi
004D3C13|.E8 D8FAF2FF call ACpass_u.004036F0
004D3C18|.803D E0B14D00>cmp byte ptr ds:,0x0
004D3C1F|.75 27 jnz XACpass_u.004D3C48 ////爆破改为JE
004D3C21|.8D55 E4 lea edx,
004D3C24|.8BB3 18030000 mov esi,dword ptr ds:
004D3C2A|.8BC6 mov eax,esi
004D3C2C|.E8 8714FCFF call ACpass_u.004950B8
004D3C31|.8D45 E4 lea eax,
004D3C34|.BA 8C3D4D00 mov edx,ACpass_u.004D3D8C ; - 未购买用户
004D3C39|.E8 FE0AF3FF call ACpass_u.0040473C
运行--窗口标题出现未购买用户(需要去除为购买标志,这里就不跟进了呵呵)但是实际上可以查看数据库的密码了
最后提醒:此文只是对ACCESS密码工具进行了一个小的分析,希望读者不要用于非法用途
4、申请时间:15年6月7日
5、备注:老用基友的号好麻烦啊,过来试试能不能申个码。希望斑猪给个,谢谢了!
爆破过程太简单了,分析下算法吧。
页:
[1]