今夕望月 发表于 2011-3-11 12:49

魔兽改键精灵脱壳(PECompact 2.x )+去除弹窗广告

本帖最后由 今夕望月 于 2011-3-11 16:51 编辑

软件名称:魔兽改键精灵,网上随便就可以找到

工具:peid,od,lordpe,import fix,getvbres

很简单的内容,大家随便看看就可以了。
首先peid查壳,PECompact 2.x -> Jeremy Collake,好了OD载入,开始脱壳00402F58 >B8 30CE4500   MOV EAX,魔兽改键.0045CE30
00402F5D    50            PUSH EAX
00402F5E    64:FF35 0000000>PUSH DWORD PTR FS:                  ; 这里用esp定律
00402F65    64:8925 0000000>MOV DWORD PTR FS:,ESP
00402F6C    33C0            XOR EAX,EAX
esp 0012FFC0下断hr 0012ffc0运行,断下后删掉硬件断点7C94A573    3B45 F8         CMP EAX,DWORD PTR SS:             ; 断在这里
7C94A576    72 09         JB SHORT ntdll.7C94A581
7C94A578    3B45 F4         CMP EAX,DWORD PTR SS:
7C94A57B    0F82 FA050000   JB ntdll.7C94AB7B
7C94A581    50            PUSH EAX
7C94A582    E8 67000000   CALL ntdll.7C94A5EE
7C94A587    84C0            TEST AL,AL
7C94A589    0F84 EC050000   JE ntdll.7C94AB7B
7C94A58F    F605 1AE4997C 8>TEST BYTE PTR DS:,80
7C94A596    0F85 A75C0200   JNZ ntdll.7C970243                     ; 到这里,让跳转实现
7C94A59C    FF73 04         PUSH DWORD PTR DS:

双击寄存器z的值,让1变成0,至于为什么这么做我也不知道,这个壳就这样。跳到下面这里
7C970243    6A 10         PUSH 10



0045CE63    53            PUSH EBX停在这里
0045CE64    51            PUSH ECX
0045CE65    57            PUSH EDI
0045CE66    56            PUSH ESI
0045CE67    52            PUSH EDX
0045CE68    8D98 57120010   LEA EBX,DWORD PTR DS:    这里继续用 esp定律
0045CE6E    8B53 18         MOV EDX,DWORD PTR DS:
0045CE71    52            PUSH EDX
0045CE72    8BE8            MOV EBP,EAX
下断hr 0012ffac,运行,断下,删掉断点,到这里0045CEED    5E            POP ESI                                  ; 魔兽改键.<模块入口点>
0045CEEE    5F            POP EDI
0045CEEF    59            POP ECX
0045CEF0    5B            POP EBX
0045CEF1    5D            POP EBP
0045CEF2    FFE0            JMP EAX看到这里了吧,直接跳到oep了
0045CEF4    58            POP EAX
0045CEF5    2F            DAS




00402F34- FF25 54114000   JMP DWORD PTR DS:                ; MSVBVM60.EVENT_SINK_QueryInterface
00402F3A- FF25 F8104000   JMP DWORD PTR DS:                ; MSVBVM60.EVENT_SINK_AddRef
00402F40- FF25 3C114000   JMP DWORD PTR DS:                ; MSVBVM60.EVENT_SINK_Release
00402F46- FF25 98104000   JMP DWORD PTR DS:                ; MSVBVM60.GetMem2
00402F4C- FF25 BC104000   JMP DWORD PTR DS:                ; MSVBVM60.PutMem2
00402F52- FF25 F0114000   JMP DWORD PTR DS:                ; MSVBVM60.ThunRTMain
00402F58 >68 08E74000   PUSH 魔兽改键.0040E708                                                             这里是oep
00402F5D    E8 F0FFFFFF   CALL 魔兽改键.00402F52                     ; JMP 到 MSVBVM60.ThunRTMain
00402F62    0000            ADD BYTE PTR DS:,AL
00402F64    48            DEC EAX
00402F65    0000            ADD BYTE PTR DS:,AL
00402F67    0030            ADD BYTE PTR DS:,DH
00402F69    0000            ADD BYTE PTR DS:,AL
00402F6B    0040 00         ADD BYTE PTR DS:,AL
00402F6E    0000            ADD BYTE PTR DS:,AL
很明显,这是个vb的程序。直接请出lordpe 脱壳,然后用import fix修复下,文件可运行。脱壳就完成了。下面要找到弹网页的事件。
用getvbres,打开脱壳后的程序,,在这里找到这么个网址,是官网吧。这个程序有时候会弹广告,有时候不弹,但是点击菜单里的官方网站时一定会弹,我们就从这里下手找到弹网页的call,把它修改。
在数据窗口中ctrl+g 转到 004169f4,这时我们就看到了这个网址
004169F468 00 74 00 74 00 70 00 3A 00 2F 00 2F 00 75 00   h.t.t.p.:././.u.
00416A042E 00 73 00 6B 00 79 00 77 00 6F 00 2E 00 63 00   ..s.k.y.w.o...c.
00416A146F 00 6D                                                                   o.m
选中网址部分,下硬件访问断点(字)。

运行程序。点菜单中的'官方网站"程序断了下来0041E385   .52            PUSH EDX                                 ;停在这里
0041E386   .FFD6          CALL ESI
0041E388   .50            PUSH EAX
0041E389   .8D45 E8       LEA EAX,DWORD PTR SS:
0041E38C   .68 E4694100   PUSH dump1_.004169E4                     ;UNICODE "open"
0041E391   .50            PUSH EAX
0041E392   .FFD6          CALL ESI
0041E394   .50            PUSH EAX
0041E395   .57            PUSH EDI
0041E396   .E8 C575FFFF   CALL dump1_.00415960                     ;这个就是弹网页的子程序,F7跟进去
0041E39B   .FF15 78104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaSetSy>;msvbvm60.__vbaSetSystemError
跟进以后00415960      A1 A83D4500   MOV EAX,DWORD PTR DS:            ;直接把这句改成retn,运行,点官方网站,不弹了
00415965   .0BC0          OR EAX,EAX
00415967   .74 02         JE SHORT dump1_.0041596B
00415969   .FFE0          JMP EAX
0041596B   >68 48594100   PUSH dump1_.00415948
00415970   .B8 402C4000   MOV EAX,<JMP.&msvbvm60.DllFunctionCall>
00415975   .FFD0          CALL EAX
00415977   .FFE0          JMP EAX




好了现在在点右键,复制到可执行文件=--所有修改----全部复制--保存文件
ok了!大功告成



浪子空谷 发表于 2011-3-11 12:59

我现在还不会用OD脱壳呢

今夕望月 发表于 2011-3-11 13:27

回复 浪子空谷 的帖子

怎么说

今夕望月 发表于 2011-3-11 16:52

补上中午漏的代码

xiaorong520 发表于 2011-3-12 10:18

如果能出视频比较好,文字一堆看的眼花、。。谢谢分析

残风恋 发表于 2011-3-12 10:22

呵呵2次运用ESP定律,恩~~学到了

liulibo567 发表于 2011-3-14 10:50

还要自己看看esp定律 好好学习

今夕望月 发表于 2011-3-14 12:08

另外补充一下。。。这样弄完广告还是会弹。。但是由于弹广告的不定性,实在不好拦截。。就当是抛砖引玉吧

yang936 发表于 2011-3-17 12:04

谢谢分享,学习了

bestchao 发表于 2011-3-17 12:08

新手学习很不错
页: [1] 2 3 4
查看完整版本: 魔兽改键精灵脱壳(PECompact 2.x )+去除弹窗广告