- UID
- 40746
注册时间2007-12-10
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破文标题】ASPACK+注册表重启验证(2007年12月24日)
【破文作者】Jacksunblack
【作者邮箱】[email protected]
【破解工具】PeiD v0.94;Ollydbg;LordPE;Import REConstructor;DeDe
【破解平台】Windows XP sp2
【软件名称】008个人通讯录 2.67
【软件大小】1055KB
【原版下载】http://www.onlinedown.net/soft/39594.htm
【保护方式】ASPACK+注册表重启验证
【软件简介】008个人通讯录是一款功能实用,设计精巧,风格别致,界面优美的个人信息管理软件。可用于存储大量的个人通讯联系信息,并可执行分类管理。
【破解声明】本破解过程仅出于个人学习目的,如有不足敬请指教!
------------------------------------------------------------------------
【破解过程】首先,用PeiD查壳:inforcard主程序的壳为:ASPack 2.12 -> Alexey Solodovnikov,一款比较常见的压缩壳。使用OD载入程序:
005DE001 > 60 pushad ;OD载入位置
005DE002 E8 03000000 call 005DE00A ;F8运行到此处,对ESP下硬件访问断点
005DE007 - E9 EB045D45 jmp 45BAE4F7
005DE00C 55 push ebp
005DE00D C3 retn
005DE00E E8 01000000 call 005DE014
Shift+F9,运行到:
005DE3B0 /75 08 jnz short 005DE3BA
005DE3B2 |B8 01000000 mov eax, 1
005DE3B7 |C2 0C00 retn 0C
005DE3BA \68 6CB75300 push 0053B76C
005DE3BF C3 retn
F8单步运行到005DE3BF处,返回:
0053B76C 55 push ebp
0053B76D 8BEC mov ebp, esp
0053B76F 83C4 F0 add esp, -10
0053B772 53 push ebx
0053B773 B8 14B35300 mov eax, 0053B314
如上,即到达OEP。
使用LordPE和Import REConstructor修复原程序,运行成功。
打开008个人通讯录,在软件注册页面,填入注册码和用户名,点击“确定”
提示“注册完成,重新运行程序”,由此,可以判定这是一个重启验证型的程序。
查看目录下的相关文件修改时间,没有同注册时间相近的,由此,排除了为ini文件或其它类型文件重启验证的可能性。猜测是注册表重新验证类型的软件。
使用工具RegShot,对当前注册表进行快照(保存为文件1),随后,打开软件输入伪注册码“54321”,关闭软件,使用RegShot对当前注册表进行快照(保存为文件2)。通过对比
,找到了如下位置:
项名称: HKEY_CURRENT_USER\Software\008InfoCard
类别名: <无类别>
最近写入时间: 2007-12-24 - 16:20
值 0
名称: RegUser
类型: REG_SZ
数据: jacksunblack
值 1
名称: RegNo
类型: REG_SZ
数据: 54321
由此,可以确定这是一款注册表重启验证程序。
重新加载程序,下断点:RegOpenKeyExA,RegCreateKeyExA
程序停在如下程序段:
77DAEAF4 > 8BFF mov edi, edi
77DAEAF6 55 push ebp
77DAEAF7 8BEC mov ebp, esp
77DAEAF9 83EC 30 sub esp, 30
77DAEAFC 8B45 08 mov eax, dword ptr [ebp+8]
观察此处的堆栈窗口:
0012FD7C 004717E7 /CALL 到 RegCreateKeyExA 来自 dumped_.004717E2
0012FD80 80000001 |hKey = HKEY_CURRENT_USER
0012FD84 00539BBC |Subkey = "Software\008InfoCard"
0012FD88 00000000 |Reserved = 0
0012FD8C 00000000 |Class = NULL
0012FD90 00000000 |Options = REG_OPTION_NON_VOLATILE
0012FD94 000F003F |Access = KEY_ALL_ACCESS
0012FD98 00000000 |pSecurity = NULL
0012FD9C 0012FDC0 |pHandle = 0012FDC0
0012FDA0 0012FDB8 \pDisposition = 0012FDB8
返回到调用处,按F8一路运行到如下程序段:
00539A0F |. 8D4D F8 lea ecx, dword ptr [ebp-8]
00539A12 |. BA DC9B5300 mov edx, 00539BDC ; reguser
00539A17 |. 8BC6 mov eax, esi
00539A19 |. E8 FE7EF3FF call 0047191C
00539A1E |. 8B55 F8 mov edx, dword ptr [ebp-8]
00539A21 |. B8 C4625400 mov eax, 005462C4
00539A26 |. E8 65ADECFF call 00404790
00539A2B |. 8D4D F4 lea ecx, dword ptr [ebp-C]
00539A2E |. BA EC9B5300 mov edx, 00539BEC ; regno
00539A33 |. 8BC6 mov eax, esi
00539A35 |. E8 E27EF3FF call 0047191C
00539A3A |. 8B45 F4 mov eax, dword ptr [ebp-C]
00539A3D |. 50 push eax
00539A3E |. 8D4D F0 lea ecx, dword ptr [ebp-10]
00539A41 |. BA FC9B5300 mov edx, 00539BFC ; 008infocardchina
00539A46 |. A1 C4625400 mov eax, dword ptr [5462C4]
00539A4B |. E8 18B0FDFF call 00514A68
观察寄存器窗口,可以看到,程序依次读出了注册表中的数据:jacksunblack和54321
运行到如上程序段的最后一句,即可以看到在寄存器中EAX中出现了伪注册码“54321”,在ECX中出现了真实注册码“AF46F650B24D977776CB715ABEEBC5ED”
经过注册验证,该码为真实注册码。
完成注册过程之后,还发现了另外一个问题,软件在运行初期,自动将IE主页修改成了:http://www.haoda123.com/。为此,通过RegCreateKeyExA的断点,找到相应的位置,其修
改了注册表中main的位置,从而实现了IE主页的转换。
其堆栈段如下所示
0012FD74 004717E7 /CALL 到 RegCreateKeyExA 来自 dumped_2.004717E2
0012FD78 80000001 |hKey = HKEY_CURRENT_USER
0012FD7C 00F1276C |Subkey = "Software\Microsoft\Internet explorer\Main"
0012FD80 00000000 |Reserved = 0
0012FD84 00000000 |Class = NULL
0012FD88 00000000 |Options = REG_OPTION_NON_VOLATILE
0012FD8C 000F003F |Access = KEY_ALL_ACCESS
0012FD90 00000000 |pSecurity = NULL
0012FD94 0012FDB8 |pHandle = 0012FDB8
0012FD98 0012FDB0 \pDisposition = 0012FDB0
在程序中查找字符串“http://www.haoda123.com/”,来到了如下程序段
005388AC /$ 53 push ebx
005388AD |. B2 01 mov dl, 1
005388AF |. A1 30154700 mov eax, dword ptr [471530]
005388B4 |. E8 778DF3FF call 00471630
005388B9 |. 8BD8 mov ebx, eax
005388BB |. BA 01000080 mov edx, 80000001
005388C0 |. 8BC3 mov eax, ebx
005388C2 |. E8 098EF3FF call 004716D0
005388C7 |. B1 01 mov cl, 1
005388C9 |. BA FC885300 mov edx, 005388FC ; \software\microsoft\internet explorer\main
005388CE |. 8BC3 mov eax, ebx
005388D0 |. E8 5F8EF3FF call 00471734
005388D5 |. 84C0 test al, al
005388D7 |. 74 11 je short 005388EA
005388D9 |. B9 30895300 mov ecx, 00538930 ; http://www.haoda123.com
005388DE |. BA 50895300 mov edx, 00538950 ; start page
005388E3 |. 8BC3 mov eax, ebx
005388E5 |. E8 0690F3FF call 004718F0
005388EA |> 8BC3 mov eax, ebx
005388EC |. E8 BFB0ECFF call 004039B0
005388F1 |. 5B pop ebx
005388F2 \. C3 retn
注意上述005388E5的位置,修改了IE的主页,将其位置nop掉,保存文件。重新执行程序,IE主页保持不变。从而,完成了整个破解过程
------------------------------------------------------------------------
【破解总结】1.Ctrl+N调用程序函数的应用,通过OD的这一功能,往往能够更加快速的找到所需要的函数。
2.对于注册表重启验证类型程序的破解思路,包括RegOpenKeyExA,RegCreateKeyExA。
此外,RegShot等注册表快速比较的工具往往能够方便对程序修改注册表的监控。
3.个人观点:我厌恶不加提示就修改用户主页的软件!
------------------------------------------------------------------------
【版权声明】请尊重原版软件! |
|