飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10338|回复: 14

《家庭理财ver:1.3.3》重启验证

[复制链接]

该用户从未签到

发表于 2005-11-24 20:11:54 | 显示全部楼层 |阅读模式
《家庭理财ver:1.3.3》重启验证

【破文标题】《家庭理财ver:1.3.3》重启验证

【破文作者】Iceman

破解工具】OD

【破解平台】XP

【软件名称】家庭理财ver:1.3.3

【原版下载】http://www4.skycn.com/soft/22911.html

【破解声明】我是一只菜菜鸟,偶得一点心得,愿与大家分享  ^_^

============================================================================================
【破解过程】

一、查壳  无壳 Microsoft Visual Basic 5.0 / 6.0编写

二、注册软件,“您好,感谢您的大力支持!按【确定】后请重新登录本软件!”
    这个说明,不是直接验证注册码。
    注册名:Iceman             注册码:1111 2222 3333 4444   

三、软件重启时,应该有比较注册码的地方,在命令行运行“bp __vbaStrCmp”。这是一个VB程序比较字符的函数。
   
运行“bp __vbaStrCmp”,后,F9运行。程序中断下来

660E8A03 M>  FF7424 08       push dword ptr ss:[esp+8]        //中断在这里。
660E8A07     FF7424 08       push dword ptr ss:[esp+8]
660E8A0B     6A 00           push 0
660E8A0D     E8 B426F3FF     call MSVBVM60.__vbaStrComp

这时,不应该理会这个中断,因为它还没到软件比较注册码的地方。这个软件,得选择家庭名称后,才验证注册码,我在这里,也浪费了不少时间。。。。。。。。。

按几次F9后,来到用户登录界面,选择一个家庭登录,程序又被中断了。嘿嘿,关键地方到了。注册码逃不出我们的手掌心了。

660E8A03 M>  FF7424 08       push dword ptr ss:[esp+8]       //还是停在这里,因为刚才下的那个断点
660E8A07     FF7424 08       push dword ptr ss:[esp+8]       //看到ECX里,UNICODE“Iceman”,用户名
660E8A0B     6A 00           push 0
660E8A12     C2 0800         retn 8                          //返回                     


00591AD6    .  FF15 18114000 call dword ptr ds:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaStrCmp //下断的API函数
00591ADC    .  85C0          test eax,eax                    //来到这里。一路按F8
00591ADE    .  75 0A         jnz short PFin.00591AEA
00591AE0    .  BA 64744400   mov edx,PFin.00447464
00591AE5    .  8D4D DC       lea ecx,dword ptr ss:[ebp-24]
00591AE8    .  FFD7          call edi                           ;  <&MSVBVM60.__vbaStrCopy>
00591AEA    >  E8 B1370A00   call PFin.006352A0
00591AEF    .  8BD0          mov edx,eax
00591AF1    .  8D4D D8       lea ecx,dword ptr ss:[ebp-28]
00591AF4    .  FFD6          call esi
00591AF6    .  68 80744400   push PFin.00447480                 ;  UNICODE "Txt='"
00591AFB    .  8D55 D8       lea edx,dword ptr ss:[ebp-28]
00591AFE    .  52            push edx
00591AFF    .  8D45 DC       lea eax,dword ptr ss:[ebp-24]
00591B02    .  50            push eax
00591B03    .  E8 C83B0A00   call PFin.006356D0              //产生一个16位的,UNICODE码,应该是注册码了
00591B08    .  8BD0          mov edx,eax                       和我们的注册码一样长。继续跟下去。
00591B0A    .  8D4D D4       lea ecx,dword ptr ss:[ebp-2C]      “WSQS3VQX[R0PSQ[Z”
00591B0D    .  FFD6          call esi
00591B0F    .  50            push eax
00591B10    .  FF15 70104000 call dword ptr ds:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaStrCat
00591B16    .  8BD0          mov edx,eax
00591B18    .  8D4D D0       lea ecx,dword ptr ss:[ebp-30]
00591B1B    .  FFD6          call esi
00591B1D    .  50            push eax
00591B1E    .  68 F4744400   push PFin.004474F4
00591B23    .  FF15 70104000 call dword ptr ds:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaStrCat
00591B29    .  8BD0          mov edx,eax
00591B2B    .  8D4D C8       lea ecx,dword ptr ss:[ebp-38]
00591B2E    .  FFD6          call esi
00591B30    .  BA 6C744400   mov edx,PFin.0044746C              ;  UNICODE "Memory"
00591B35    .  8D4D CC       lea ecx,dword ptr ss:[ebp-34]
00591B38    .  FFD7          call edi
00591B3A    .  8D4D C8       lea ecx,dword ptr ss:[ebp-38]
00591B3D    .  51            push ecx
00591B3E    .  8D55 CC       lea edx,dword ptr ss:[ebp-34]
00591B41    .  52            push edx
00591B42    .  E8 F9A00000   call PFin.0059BC40                 //F8,过这里后,又一次停下来
                                                                  如果F7进去,会看到有一些SQL语句

660E8A03 M>  FF7424 08       push dword ptr ss:[esp+8]         //EAX中,看到那个16位的UNICODE 停在这
660E8A07     FF7424 08       push dword ptr ss:[esp+8]
660E8A0B     6A 00           push 0
660E8A0D     E8 B426F3FF     call MSVBVM60.__vbaStrComp
660E8A12     C2 0800         retn 8


如果再跟下去,会发现,有很多SQL查询语句,从MENORY中查询   
按我的理解,程序重启后,会在内存中,做注册码比较,如果比较结果相等,那么软件注册成功。
我也不清楚,这观点是否正确,毕竟,我汇编不是很懂。


关闭OD,试注册
用户名:Iceman   WSQS3VQX[R0PSQ[Z,做为注册码试下。注册成功
------------------------------------------------------------------------
【破解总结】破解这个软件,只要知道下哪个断点,很快就能破解。学习破解,学习到一定程度,就会觉得API函数很重要。
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
PYG19周年生日快乐!

该用户从未签到

发表于 2005-11-27 14:25:32 | 显示全部楼层
现在重启验证的越来越多咯。。。,学习中,已收藏!
PYG19周年生日快乐!

该用户从未签到

发表于 2005-11-29 17:14:13 | 显示全部楼层
深度学习中,,,谢谢
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-5-3 19:45
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2006-9-22 21:10:29 | 显示全部楼层
    好好的看过了·!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-23 01:46:02 | 显示全部楼层
    查到注册码保存的地方,这样也可以追出重启验证的地方
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-23 12:20:58 | 显示全部楼层
    是啊 我也是菜鸟 就是感觉重起验证的软件最麻烦 搞不定!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-10-1 13:14:02 | 显示全部楼层
    重启验证,,,还真的好好学习
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-10-22 12:29
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-10-2 13:41:02 | 显示全部楼层
    学习收藏  XX
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-11-13 15:13:35 | 显示全部楼层
    好东西啊 支持
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-1-9 11:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-2-2 12:33:55 | 显示全部楼层
    重启的软件太多,要求验证,学习一下方法.
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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