- UID
- 660
注册时间2005-4-7
阅读权限50
最后登录1970-1-1
感悟天道
TA的每日心情 | 慵懒 2024-10-16 20:38 |
---|
签到天数: 1491 天 [LV.10]以坛为家III
|
VB学习系统爆破及修改--新手级
【软件简介】 Microsoft Visual Basic 提供了开发了Window应用程序的最迅速,最简捷的方法。不论是Windows 应用程序的资深专业开发人员还是初学者,Visual Basic都为他们提供了整套工具,以方便开发应用程序。
但是,学编程不是一件很简单的事情。Visual Basic虽然很容易入门,精通不易。因此,只有通过不断的实践,亲手编写程序,在实践中不断体会才能深入Visual Basic 的精髓。
Visual Basic学习系统 是一个教学软件,主要有以下功能:
1、基础知识:包含Visual Basic的基本知识,通过分章节的教学,使您能快速入门Visual Basic。
2、API函数:包含1500多个Windows API函数的详细说明,并附有详细实例,使您能常握Visual Basic编程的精髓部分。
3、编程实例:包含6个类别150多个编程实例,使您能巩固Visual Basic编程的学习。
4、文章:包含6个类别200多篇编程文章,解决您在编程中遇到的各种疑难问题。
【作者邮箱】 [email protected]
【使用工具】 SMARTCHK6.03/二哥的UnkillOllydbg/W32dasm无极版
【破解平台】 Win9x/NT/2000/XP
【下载地址】 天空下载站
【破解作者】 xbb[DFCG][PYG]
【软件大小】 348K
【加壳方式】 元
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
信息:
语言:Microsoft Visual Basic 5.0 / 6.0
保护:功能限制(API函数无法使用搜索功能、实例无法查看)、NAG提示
在注册表HKLM\Software下建立You Company\VB学习系统\1.2 内容为AppPath用户名和组织名称
-----------------------------------------------------------
先对付API函数中的搜索功能限制
我们用bp rtcMsgBox来对程序下断。
程序运行后,在API函数处使用搜索功能,程序在下面代码处被断下
660DC5F3 M> 55 push ebp 断在这里
660DC5F4 8BEC mov ebp,esp
660DC5F6 83EC 4C sub esp,4C
660DC5F9 8B4D 14 mov ecx,dword ptr ss:[ebp+14]
660DC5FC 53 push ebx
660DC5FD 56 push esi
660DC5FE 57 push edi
660DC5FF 66:8339 0A cmp word ptr ds:[ecx],0A
660DC603 B8 04000280 mov eax,80020004
660DC608 0F85 FC000000 jnz MSVBVM60.660DC70A
660DC60E 3941 08 cmp dword ptr ds:[ecx+8],eax
看堆栈,我们可以看到程序将返回到433432处。OK,我们回到程序的领空,找到该处代码。
0043342C . FF15 5C104000 call dword ptr ds:[<&MSVBVM60.#595>; MSVBVM60.rtcMsgBox
00433432 . 8D45 A0 lea eax,dword ptr ss:[ebp-60] 上面返回到这里
00433435 . 8D4D B0 lea ecx,dword ptr ss:[ebp-50]
00433438 . 50 push eax
00433439 . 8D55 C0 lea edx,dword ptr ss:[ebp-40]
我们向上看
004333D5 > \8B35 54114000 mov esi,dword ptr ds:[<&MSVBVM60._>; 光标停在这里,可以看到OD提示 跳转来自433337
004333DB . B9 04000280 mov ecx,80020004
004333E0 . 894D A8 mov dword ptr ss:[ebp-58],ecx
004333E3 . B8 0A000000 mov eax,0A
004333E8 . 894D B8 mov dword ptr ss:[ebp-48],ecx
004333EB . BF 08000000 mov edi,8
004333F0 . 8D55 80 lea edx,dword ptr ss:[ebp-80]
004333F3 . 8D4D C0 lea ecx,dword ptr ss:[ebp-40]
004333F6 . 8945 A0 mov dword ptr ss:[ebp-60],eax
我们找上去
00433320 . FF15 98114000 call dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaFreeObj
00433326 . 66:3BFB cmp di,bx
00433329 0F85 1E010000 jnz VB学习系.0043344D
0043332F . 66:833D 2C004500 >cmp word ptr ds:[45002C],0FFFF
00433337 0F85 98000000 jnz VB学习系.004333D5 <-这里跳走就弹出未注册信息,85改为84就可以使用搜索功能了 :)
0043333D . 8B0E mov ecx,dword ptr ds:[esi]
0043333F . 56 push esi
-----------------------------------------------------------
接下来是API函数中的实例按钮功能限制。我们用bp rtcMsgBox来对程序下断。程序一共调用rtcMsgBox函数六次,我们在每个上面都下断,进入程序,在API函数面板中,随便选一个API函数,然后点界面右下角的实例按钮,程序被断下。
00432F78 . FF15 5C104000 call dword ptr ds:[<&MSVBVM60.#595>; MSVBVM60.rtcMsgBox 我们断在这里,OK,向上找跳转。
00432F7E . 8D55 A4 lea edx,dword ptr ss:[ebp-5C]
00432F81 . 8D45 B4 lea eax,dword ptr ss:[ebp-4C]
00432F84 . 52 push edx
找到这里
00432F21 > \8B35 54114000 mov esi,dword ptr ds:[<&MSVBVM60._>; 光标停在这行里可以看到OD提示是由432D36处跳来的,跟过去
00432F27 . B9 04000280 mov ecx,80020004
00432F2C . 894D AC mov dword ptr ss:[ebp-54],ecx
00432F2F . B8 0A000000 mov eax,0A
找到这里
00432D1F . FF15 98114000 call dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaFreeObj
00432D25 . 66:85FF test di,di
00432D28 . 0F84 6B020000 je VB学习系.00432F99
00432D2E . 66:833D 2C004500 >cmp word ptr ds:[45002C],0FFFF
00432D36 . 0F85 E5010000 jnz VB学习系.00432F21 <-就是从这里跳的,85改84。
OK,这下实例按钮按后就不会提示你注册了。:)
-----------------------------------------------------------
下面的代码是用W32asm无极版反汇编由参考字串找到的,怀疑也是另一个功能限制的提示注册框(因为我没有找到这个功能限制,不过也破了它。:))
:00446AA8 895D88 mov dword ptr [ebp-78], ebx
:00446AAB 899D78FFFFFF mov dword ptr [ebp+FFFFFF78], ebx
:00446AB1 899D54FFFFFF mov dword ptr [ebp+FFFFFF54], ebx
:00446AB7 0F8564020000 jne 00446D21 <-爆破处,将85改84即可。
:00446ABD 8B16 mov edx, dword ptr [esi]
:00446ABF 56 push esi
:00446AC0 FF9220070000 call dword ptr [edx+00000720]
:00446AC6 8B06 mov eax, dword ptr [esi]
:00446AC8 56 push esi
:00446AC9 FF9010030000 call dword ptr [eax+00000310]
上面的跳转来到这里
:00446D21 8B3D54114000 mov edi, dword ptr [00401154]
:00446D27 B904000280 mov ecx, 80020004
......
* Possible StringData Ref from Code Obj ->"鑜孮" <-注册
|
:00446D46 C74580C07F4000 mov [ebp-80], 00407FC0
:00446D4D C78578FFFFFF08000000 mov dword ptr [ebp+FFFFFF78], 00000008
:00446D57 FFD7 call edi
:00446D59 8D5588 lea edx, dword ptr [ebp-78]
:00446D5C 8D4DC8 lea ecx, dword ptr [ebp-38]
* Possible StringData Ref from Code Obj ->"鵞
Nw? |
|