首页
社区
课程
招聘
[原创]Skin++ 3.0 For Visual Basic控件的简单破解
发表于: 2007-4-28 16:43 15313

[原创]Skin++ 3.0 For Visual Basic控件的简单破解

2007-4-28 16:43
15313
软件名称:Skin++ For Visual Basic 3.0
官方网站:http://www.uipower.com/
文章作者:Moodsky
作者声明:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

    想找一个VB能用的皮肤控件,朋友推荐了Skin++,当前版本3.0,编译後有限制,弹出讨厌的NAG提醒你去注册,然后调用IE自动跳转到官方网站。就利用这个IE跳转来找找吧,用OD打开Skin++_VB_Demo包里的工程1.exe,bp LoadLibraryA,F9共18次看到程序刚加载SkinPPVB.dll,ALT+M在

Memory map, 条目 59
地址=015D1000
大小=0006D000 (446464.)
属主=SkinPPVB 015D0000
区段=.text
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE

下断点,去掉LoadLibraryA断点,F9运行。

程序被断在:

016356B7 >/$  55            push    ebp
016356B8  |.  8BEC          mov     ebp, esp
016356BA  |.  53            push    ebx
016356BB  |.  8B5D 08       mov     ebx, dword ptr [ebp+8]
016356BE  |.  56            push    esi
016356BF  |.  8B75 0C       mov     esi, dword ptr [ebp+C]

这时在下断点bp ShellExecuteW,F9运行,弹出NAG窗口,让我们点“是”,程序被断下了。

7D684E88 >  8BFF            mov     edi, edi
7D684E8A    55              push    ebp
7D684E8B    8BEC            mov     ebp, esp
7D684E8D    83EC 3C         sub     esp, 3C
7D684E90    8B45 08         mov     eax, dword ptr [ebp+8]

0013FC8C   015D2BA9  /CALL 到 ShellExecuteW 来自 SkinPPVB.015D2BA3
0013FC90   00000000  |hWnd = NULL
0013FC94   016567EC  |Operation = "open"
0013FC98   016567F8  |FileName = "http://www.uipower.com"
0013FC9C   00000000  |Parameters = NULL
0013FCA0   00000000  |DefDir = NULL
0013FCA4   00000005  \IsShown = 5

去掉ShellExecuteW断点,在015D2BA9返汇编跟随,来到:

015D2B71  |.  E8 9C230600   call    <jmp.&MFC42u.#538>
015D2B76  |.  A1 A4C86501   mov     eax, dword ptr [165C8A4]
015D2B7B  |.  C74424 20 FFF>mov     dword ptr [esp+20], -1
015D2B83  |.  50            push    eax
015D2B84  |.  E8 770F0000   call    015D3B00
015D2B89  |.  83C4 14       add     esp, 14
015D2B8C  |.  83F8 06       cmp     eax, 6
015D2B8F  |.  75 18         jnz     short 015D2BA9
015D2B91  |.  6A 05         push    5                                ; /IsShown = 5
015D2B93  |.  6A 00         push    0                                ; |DefDir = NULL
015D2B95  |.  6A 00         push    0                                ; |Parameters = NULL
015D2B97  |.  68 F8676501   push    016567F8                         ; |FileName = "http://www.uipower.com"
015D2B9C  |.  68 EC676501   push    016567EC                         ; |Operation = "open"
015D2BA1  |.  6A 00         push    0                                ; |hWnd = NULL
015D2BA3  |.  FF15 FCE56301 call    dword ptr [<&SHELL32.ShellExecut>; \ShellExecuteW
015D2BA9  |>  8B4C24 08     mov     ecx, dword ptr [esp+8]

因为这时NAG窗口已经运行,所以向上找,好来到:

015D2B30  /$  6A FF         push    -1
015D2B32  |.  68 F85C6301   push    01635CF8                         ;  SE 处理程序安装
015D2B37  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
015D2B3D  |.  50            push    eax
015D2B3E  |.  64:8925 00000>mov     dword ptr fs:[0], esp
015D2B45  |.  83EC 08       sub     esp, 8

让我们按照步骤重新来到SkinPPVB.dll进程,CRTL+G,输入015D2B30,下断,F9运行。然后单步走发现到:

015D2B84  |.  E8 770F0000   call    015D3B00

处NAG窗口出现,跟进:

015D3B00      6A FF         push    -1                               ;  这个过程只是调用了一个函数来弹出NAG,所以直接RETN
015D3B02  |.  68 785D6301   push    01635D78                         ;  SE 处理程序安装
015D3B07  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
015D3B0D  |.  50            push    eax
015D3B0E  |.  64:8925 00000>mov     dword ptr fs:[0], esp
015D3B15  |.  83EC 28       sub     esp, 28
015D3B18  |.  56            push    esi
015D3B19  |.  8B4C24 4C     mov     ecx, dword ptr [esp+4C]
015D3B1D  |.  8B5424 3C     mov     edx, dword ptr [esp+3C]
015D3B21  |.  33C0          xor     eax, eax
015D3B23  |.  80C9 80       or      cl, 80
015D3B26  |.  894424 34     mov     dword ptr [esp+34], eax
015D3B2A  |.  894424 08     mov     dword ptr [esp+8], eax
015D3B2E  |.  8B4424 40     mov     eax, dword ptr [esp+40]
015D3B32  |.  894C24 18     mov     dword ptr [esp+18], ecx
015D3B36  |.  8B4C24 48     mov     ecx, dword ptr [esp+48]
015D3B3A  |.  894424 14     mov     dword ptr [esp+14], eax
015D3B3E  |.  895424 0C     mov     dword ptr [esp+C], edx
015D3B42  |.  8B5424 44     mov     edx, dword ptr [esp+44]
015D3B46  |.  8D4424 04     lea     eax, dword ptr [esp+4]
015D3B4A  |.  81E1 FFFF0000 and     ecx, 0FFFF
015D3B50  |.  50            push    eax                              ; /pMsgBoxParams
015D3B51  |.  C74424 08 280>mov     dword ptr [esp+8], 28            ; |
015D3B59  |.  894C24 20     mov     dword ptr [esp+20], ecx          ; |
015D3B5D  |.  895424 14     mov     dword ptr [esp+14], edx          ; |
015D3B61  |.  FF15 FCE76301 call    dword ptr [<&USER32.MessageBoxIn>; \MessageBoxIndirectW
015D3B67  |.  8D4C24 40     lea     ecx, dword ptr [esp+40]          ;  上面的函数弹出了NAG
015D3B6B  |.  8BF0          mov     esi, eax
015D3B6D  |.  E8 9A130600   call    <jmp.&MFC42u.#800>
015D3B72  |.  8D4C24 44     lea     ecx, dword ptr [esp+44]
015D3B76  |.  C74424 34 FFF>mov     dword ptr [esp+34], -1
015D3B7E  |.  E8 89130600   call    <jmp.&MFC42u.#800>
015D3B83  |.  8B4C24 2C     mov     ecx, dword ptr [esp+2C]
015D3B87  |.  8BC6          mov     eax, esi
015D3B89  |.  5E            pop     esi
015D3B8A  |.  64:890D 00000>mov     dword ptr fs:[0], ecx
015D3B91  |.  83C4 34       add     esp, 34
015D3B94  \.  C3            retn

返回来到:

015D2B89  |.  83C4 14       add     esp, 14                          ;  来到这里
015D2B8C  |.  83F8 06       cmp     eax, 6
015D2B8F  |.  75 18         jnz     short 015D2BA9                   ;  由于更改後这里直接可以跳过ShellExecuteW所以就不必改了
015D2B91  |.  6A 05         push    5                                ; /IsShown = 5
015D2B93  |.  6A 00         push    0                                ; |DefDir = NULL
015D2B95  |.  6A 00         push    0                                ; |Parameters = NULL
015D2B97  |.  68 F8676501   push    016567F8                         ; |FileName = "http://www.uipower.com"
015D2B9C  |.  68 EC676501   push    016567EC                         ; |Operation = "open"
015D2BA1  |.  6A 00         push    0                                ; |hWnd = NULL
015D2BA3  |.  FF15 FCE56301 call    dword ptr [<&SHELL32.ShellExecut>; \ShellExecuteW
015D2BA9  |>  8B4C24 08     mov     ecx, dword ptr [esp+8]
015D2BAD  |.  64:890D 00000>mov     dword ptr fs:[0], ecx
015D2BB4  |.  83C4 14       add     esp, 14
015D2BB7  \.  C3            retn

OK,收工。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
呵呵,我想学一下VB,这个控件都不会添加,郁闷
2007-4-28 17:38
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
3
Skin++  其实很容易搞的,不过这样以来,做软件的都可以免费使用这个被KO后的控件了

呵呵,支持!
2007-4-28 19:39
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵呵!!谢谢
2007-4-28 22:40
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
要修改哪里,用NOP吗,说清楚点
2007-4-30 10:30
0
雪    币: 208
活跃值: (376)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
6
015D3B00      6A FF         push    -1                               ;  这个过程只是调用了一个函数来弹出NAG,所以直接RETN

将push    -1改成RETN,保存文件。
2007-4-30 16:30
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
moodsky 大侠  能否帮分析一下 http://bbs.pediy.com/showthread.php?t=43640 这里的控件,偶正在向你学习随便弄一个玩玩,没想到菜得一踏糊涂啊~~
2007-4-30 17:16
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
能传一个修改后的吗?是不是这样修改后就可以正常使用了,有BUG吗?
2007-5-9 07:30
0
雪    币: 211
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
For Delphi版似乎要难很多,主要是菜单里的“试用版”三个红色的字,是用DC画出的,找不到关键,如果直接跳过,水印没了,但菜单也被挖去一块皮肤,正所谓体无完肤了,哪位大侠能研究一下,或者一起交流交流!
2007-5-17 08:04
0
雪    币: 200
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
没用,菜单中仍旧有试用版字样
2007-5-21 10:33
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哈哈,我决定用这个东西了,所以不用菜单了!嘿嘿
2007-5-23 09:01
0
雪    币: 333
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wan
12
去下載回來玩一下
2007-5-23 10:42
0
游客
登录 | 注册 方可回帖
返回
//