飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7200|回复: 11

[原创] ASPACK+注册表重启验证(2007年12月24日)

[复制链接]

该用户从未签到

发表于 2007-12-28 23:43:00 | 显示全部楼层 |阅读模式
【破文标题】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.个人观点:我厌恶不加提示就修改用户主页的软件!
------------------------------------------------------------------------
【版权声明】请尊重原版软件!
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-29 07:38:48 | 显示全部楼层
/:good /:good /:good 我还是一个新手,以前也知到注册表验证,可不知怎样查找在这里我又学到一点。谢谢。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-29 10:07:57 | 显示全部楼层
:loveliness:  学习。。。下一个操作一下
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-29 10:43:18 | 显示全部楼层
: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的地盘,,这情况又该怎样处理 ?
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-12-29 12:01:17 | 显示全部楼层
原帖由 magic659117852 于 2007-12-29 10:43 发表
:loveliness:   新手提问。。

重新加载程序,下断点:RegOpenKeyExA,RegCreateKeyExA

??------------ 两个一起么,,还是  ?


偶这边bp RegCreateKeyExA 后堆栈是:

0012E330   766A13E3  /CALL 到 ...


一般查询注册表比较常用的是bp RegOpenKeyExA,但是针对这个程序而言,是使用bp RegCreateKeyExA来下断点。
这也就是为什么我在总结中说,要多用ctrl+N来查看程序所调用的函数有哪些,从而便于处理

此外,对于我上文中所说的到达堆栈的状态,是要shift+F9运行几次到达的。
你可以看一下,你现在的堆栈状态是针对internet setting

再次,对于你说的如何返回到相应的程序的办法,你可以在堆栈段的首句上,单击ENTER,从而返回到相应的程序段。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-29 16:41:09 | 显示全部楼层
:loveliness: :loveliness:

感谢,, :loveliness:

菜鸟..自己再慢慢摸索一下
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-12-9 12:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-12-30 23:19:17 | 显示全部楼层
    学习 下 ,,哈哈,
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-20 10:55:21 | 显示全部楼层
    一遍好的范例,我正在破解重启验证的程序,谢谢楼主,先下载程序自己操作一把。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-20 14:07:55 | 显示全部楼层
    按照楼主的思路跟踪了一遍,得出:
    帐号:123456789   注册码:FB97A87E72EE3974FF1E3F55C242056F
    每按前人的脚步走一次,就长了一点经验。谢谢楼主。
    以前我是跟到一半就不跟了,怀疑自己是不是跟错了,原来跟一个注册码真的要功夫。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2018-8-23 00:04
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-1-20 14:31:11 | 显示全部楼层
    来学习以下啊,多谢分享啊
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表