首页
社区
课程
招聘
[原创]xQBar1.01 控件的NAG窗口的去除
发表于: 2004-12-26 11:59 5402

[原创]xQBar1.01 控件的NAG窗口的去除

2004-12-26 11:59
5402
『破解作者』 Moodsky
『作者邮箱』 [email]moodsky@eyou.com[/email]
『使用工具』 Peid,OD
『破解平台』 Win2000
『软件名称』 xQBar 1.01
『本地下载』 附件:xQBar1.01.rar
『软件简介』 比较全面的QQ控件
『软件大小』 200K
『加壳方式』 无
『破解声明』 我是一只小菜鸟,偶得一点心得,愿与大家分享。
――――――――――――――――――――――――――――――――――――――――――――――――――
『破解内容』

    用Peid查看为VB6编写,没有加壳,但未注册时总弹出NAG窗口。

    首先建立一个包含控件的工程,运行看了看,典型的NAG骚扰,想法有两个,第一就是找到关
键跳转改掉,第二个是找到NAG的CALL把它NOP,好吧,下面来用OD载入工程吧!
    载入工程1.EXE后看看这个工程所载入的模块(ALT+E),如下:

可执行部件

基数       大小       入口       名称       文件版本          路径

00400000   0001E000   00401274   工程1        1.00              D:\xQBar1.01\工程1.exe
65D20000   00054000   65D2DE8C   USP10      1.0325.2195.6692  C:\WINNT\system32\USP10.dll
66000000   00152000   66001AEC   MSVBVM60   6.00.9782         C:\WINNT\system32\MSVBVM60.DLL
6C330000   00008000   6C332DA3   LPK        5.00.2195.6692    C:\WINNT\system32\LPK.DLL
75E00000   0001A000   75E01264   IMM32      5.00.2195.6655    C:\WINNT\system32\IMM32.DLL
77990000   0009B000   77A04030   OLEAUT32   2.40.4522         C:\WINNT\system32\OLEAUT32.dll
77A30000   000EF000   77A4B5CC   ole32      5.00.2195.6906    C:\WINNT\system32\ole32.dll
77DF0000   00065000   77E14689   USER32     5.00.2195.6897    C:\WINNT\system32\USER32.dll
77E60000   000D2000   77E67A40   KERNEL32   5.00.2195.6946    C:\WINNT\system32\KERNEL32.dll
77F40000   0003B000              GDI32      5.00.2195.6945    C:\WINNT\system32\GDI32.DLL
77F80000   0007D000              ntdll      5.00.2195.6899    C:\WINNT\system32\ntdll.dll
786F0000   00071000   786F3E30   RPCRT4     5.00.2195.6904    C:\WINNT\system32\RPCRT4.DLL
796D0000   00062000   796D1ECE   ADVAPI32   5.00.2195.6876    C:\WINNT\system32\ADVAPI32.dll

    可以看到,程序刚运行时并没有载入xQBar.ocx,但这个NAG一定包括在xQBar.ocx里,我们都知道,
在DLL里取函数位置系统要用到LoadLibrary函数(载入指定的动态链接库,并将它映射到当前进程使用
的地址空间。)好,就用它来做断点,看看程序什么时候可以载入xQBar.ocx。

bp LoadLibraryA

F9运行,然后继续8次F9(共9次F9,VB好像载入OCX都是9次),我们(ALT+E)就看到了:

可执行部件

基数       大小       入口       名称       文件版本          路径

00400000   0001E000   00401274   工程1        1.00              D:\xQBar1.01\工程1.exe
01270000   0000E000   01271414   Commandx   1.03              D:\xQBar1.01\Commandxu.ocx
11000000   0003A000   110024C4   xQBar      1.00              D:\xQBar1.01\xQBar.ocx
60000000   00045000   60001F5E   MSCTF      1.00.2409.7 buil  C:\WINNT\system32\MSCTF.dll
65D20000   00054000   65D2DE8C   USP10      1.0325.2195.6692  C:\WINNT\system32\USP10.dll
66000000   00152000   66001AEC   MSVBVM60   6.00.9782         C:\WINNT\system32\MSVBVM60.DLL
66630000   0001C000              vb6chs     6.00.8988         C:\WINNT\system32\vb6chs.dll
6C330000   00008000   6C332DA3   LPK        5.00.2195.6692    C:\WINNT\system32\LPK.DLL
72C50000   00090000   72CC92E0   CLBCATQ    2000.2.3511.0     C:\WINNT\system32\CLBCATQ.DLL
75950000   00006000   75951A6A   LZ32       5.00.2195.6611    C:\WINNT\system32\LZ32.DLL
75E00000   0001A000   75E01264   IMM32      5.00.2195.6655    C:\WINNT\system32\IMM32.DLL
777E0000   00007000   777E1334   VERSION    5.00.2195.6623    C:\WINNT\system32\VERSION.DLL
77990000   0009B000   77A04030   OLEAUT32   2.40.4522         C:\WINNT\system32\OLEAUT32.dll
77A30000   000EF000   77A4B5CC   ole32      5.00.2195.6906    C:\WINNT\system32\ole32.dll
77DF0000   00065000   77E14689   USER32     5.00.2195.6897    C:\WINNT\system32\USER32.dll
77E60000   000D2000   77E67A40   KERNEL32   5.00.2195.6946    C:\WINNT\system32\KERNEL32.dll
77F40000   0003B000              GDI32      5.00.2195.6945    C:\WINNT\system32\GDI32.DLL
77F80000   0007D000              ntdll      5.00.2195.6899    C:\WINNT\system32\ntdll.dll
78000000   00045000   78001000   MSVCRT     6.10.9844.0       C:\WINNT\system32\MSVCRT.dll
786F0000   00071000   786F3E30   RPCRT4     5.00.2195.6904    C:\WINNT\system32\RPCRT4.DLL
796D0000   00062000   796D1ECE   ADVAPI32   5.00.2195.6876    C:\WINNT\system32\ADVAPI32.dll

    既然已经载入了,我们就得想办法在进入它的区域里来做手脚,(ALT+M)进入内存镜像,在
xQBar.ocx的.text区段F2下断:        

内存镜像,项目 52
地址=11001000
大小=0002F000 (192512.)
Owner=xQBar    11000000
区段=.text
包含=code,imports,exports
类型=Imag 01001002
访问=R
初始访问=RWE

然后F9运行,程序被断在了这里:

1100F512    8BD0            mov edx, eax
1100F514    8D4D D8         lea ecx, dword ptr ss:[ebp-28]
1100F517    FF15 78110011   call dword ptr ds:[<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove
1100F51D    50              push eax
1100F51E    FF15 A8110011   call dword ptr ds:[<&MSVBVM60.#581_rtcR8>; MSVBVM60.rtcR8ValFromBstr
1100F524    DD9D 30FFFFFF   fstp qword ptr ss:[ebp-D0]
1100F52A    C785 74FFFFFF 0>mov dword ptr ss:[ebp-8C], 0
1100F534    C785 6CFFFFFF 0>mov dword ptr ss:[ebp-94], 4

F8一直跟进,直到:

11010F68    8D45 AC         lea eax, dword ptr ss:[ebp-54]
11010F6B    50              push eax
11010F6C    FF15 20100011   call dword ptr ds:[<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove
11010F72    8BD0            mov edx, eax
11010F74    8D4D D8         lea ecx, dword ptr ss:[ebp-28]
11010F77    FF15 78110011   call dword ptr ds:[<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove
11010F7D    8BD0            mov edx, eax
11010F7F    8B4D 08         mov ecx, dword ptr ss:[ebp+8]
11010F82    81C1 B8000000   add ecx, 0B8
11010F88    FF15 14110011   call dword ptr ds:[<&MSVBVM60.__vbaStrCo>; MSVBVM60.__vbaStrCopy
11010F8E    8D4D D8         lea ecx, dword ptr ss:[ebp-28]
11010F91    FF15 A0110011   call dword ptr ds:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr
11010F97    8D4D AC         lea ecx, dword ptr ss:[ebp-54]
11010F9A    FF15 1C100011   call dword ptr ds:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVar
11010FA0    C745 FC 2300000>mov dword ptr ss:[ebp-4], 23
11010FA7    8B4D 08         mov ecx, dword ptr ss:[ebp+8]
11010FAA    8B11            mov edx, dword ptr ds:[ecx]
11010FAC    8B45 08         mov eax, dword ptr ss:[ebp+8]
11010FAF    50              push eax
11010FB0    FF92 BC080000   call dword ptr ds:[edx+8BC]
11010FB6    C745 FC 2400000>mov dword ptr ss:[ebp-4], 24
11010FBD    C785 74FFFFFF 0>mov dword ptr ss:[ebp-8C], 0
11010FC7    C785 6CFFFFFF 0>mov dword ptr ss:[ebp-94], 2

    执行到11010FB0时NAG窗口出现,向上看了看,没找到关键跳转(太菜了),只好对CALL来NOP
了:

11010FAF    50              push eax
11010FB0    90              nop
11010FB1    90              nop
11010FB2    90              nop
11010FB3    90              nop
11010FB4    90              nop
11010FB5    90              nop
11010FB6    C745 FC 2400000>mov dword ptr ss:[ebp-4], 24

修改部分保存,OD自动辨认为xQBar.ocx,重新运行程序加载试试,成功,NAG窗口消失!
写的不好,让大家见笑了。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
学习,辛苦了
2004-12-26 12:33
0
雪    币: 97697
活跃值: (200834)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持!!!
2004-12-26 12:40
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
学习,辛苦了
2004-12-27 00:44
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
支持!!!
2004-12-27 12:52
0
雪    币: 213
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这样容易出事故
2004-12-27 14:30
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
其实破解控件最好用SICE
2004-12-27 23:04
0
游客
登录 | 注册 方可回帖
返回
//