ASPACK+注册表重启验证(2007年12月24日)
【破文标题】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
观察此处的堆栈窗口:
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
00539A12|.BA DC9B5300 mov edx, 00539BDC ;reguser
00539A17|.8BC6 mov eax, esi
00539A19|.E8 FE7EF3FF call 0047191C
00539A1E|.8B55 F8 mov edx, dword ptr
00539A21|.B8 C4625400 mov eax, 005462C4
00539A26|.E8 65ADECFF call 00404790
00539A2B|.8D4D F4 lea ecx, dword ptr
00539A2E|.BA EC9B5300 mov edx, 00539BEC ;regno
00539A33|.8BC6 mov eax, esi
00539A35|.E8 E27EF3FF call 0047191C
00539A3A|.8B45 F4 mov eax, dword ptr
00539A3D|.50 push eax
00539A3E|.8D4D F0 lea ecx, dword ptr
00539A41|.BA FC9B5300 mov edx, 00539BFC ;008infocardchina
00539A46|.A1 C4625400 mov eax, dword ptr
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
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.个人观点:我厌恶不加提示就修改用户主页的软件!
------------------------------------------------------------------------
【版权声明】请尊重原版软件! /:good /:good /:good 我还是一个新手,以前也知到注册表验证,可不知怎样查找在这里我又学到一点。谢谢。 :loveliness:学习。。。下一个操作一下 :loveliness: 新手提问。。
重新加载程序,下断点:RegOpenKeyExA,RegCreateKeyExA
??------------ 两个一起么,,还是?
偶这边bp RegCreateKeyExA 后堆栈是:
0012E330 766A13E3/CALL 到 RegCreateKeyExA 来自 WININET.766A13DD
0012E334 80000001|hKey = HKEY_CURRENT_USER
0012E338 76685160|Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings"
0012E33C 00000000|Reserved = 0
0012E340 00000000|Class = NULL
0012E344 00000000|Options = REG_OPTION_NON_VOLATILE
0012E348 0002001F|Access = KEY_QUERY_VALUE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|20000
0012E34C 00000000|pSecurity = NULL
0012E350 0012E364|pHandle = 0012E364
0012E354 0012E360\pDisposition = 0012E360
---------------/:001 跟随后到了WININET.dll的地盘,,这情况又该怎样处理 ? 原帖由 magic659117852 于 2007-12-29 10:43 发表 https://www.chinapyg.com/images/common/back.gif
:loveliness: 新手提问。。
重新加载程序,下断点:RegOpenKeyExA,RegCreateKeyExA
??------------ 两个一起么,,还是?
偶这边bp RegCreateKeyExA 后堆栈是:
0012E330 766A13E3/CALL 到 ...
一般查询注册表比较常用的是bp RegOpenKeyExA,但是针对这个程序而言,是使用bp RegCreateKeyExA来下断点。
这也就是为什么我在总结中说,要多用ctrl+N来查看程序所调用的函数有哪些,从而便于处理
此外,对于我上文中所说的到达堆栈的状态,是要shift+F9运行几次到达的。
你可以看一下,你现在的堆栈状态是针对internet setting
再次,对于你说的如何返回到相应的程序的办法,你可以在堆栈段的首句上,单击ENTER,从而返回到相应的程序段。 :loveliness: :loveliness:
感谢,, :loveliness:
菜鸟..自己再慢慢摸索一下 学习 下 ,,哈哈, 一遍好的范例,我正在破解重启验证的程序,谢谢楼主,先下载程序自己操作一把。 按照楼主的思路跟踪了一遍,得出:
帐号:123456789 注册码:FB97A87E72EE3974FF1E3F55C242056F
每按前人的脚步走一次,就长了一点经验。谢谢楼主。
以前我是跟到一半就不跟了,怀疑自己是不是跟错了,原来跟一个注册码真的要功夫。 来学习以下啊,多谢分享啊
页:
[1]
2