pklong007 发表于 2015-8-7 17:04:54

VMP 1.6-1.7脱壳记录(淘淘文件时间修改之星1.4)

论坛脱壳这块比较冷清,刚好本人在学这方面的,于是把过程写了下,菜鸟文章,大牛路过。VMP版本很老了,主要为练手。

最近在看天草的VMP和他乡的VMP教程,感觉都是脚本党啊,看了只能明白一些东西,有很多很模糊的概念,他乡这个纯碎是只讲操作不讲原理,坑爹,幸好没买他的教程,不然亏死。
因为想练习一下脱这壳,于是上菲凡下了这个东西练手:
EP:
007C3B5E >68 394693A7   PUSH    0xA7934639
007C3B63    E8 D3541900   CALL    PhotoDat.0095903B
007C3B68    68 7C3C930F   PUSH    0xF933C7C
007C3B6D    E8 C9541900   CALL    PhotoDat.0095903B
007C3B72    82EB 7A         SUB   BL, 0x7A
007C3B75    C2 F0A7         RETN    0xA7F0

不确定是哪个版本,先尝试一下:
virtualProtect 下断点(这个断点教程都有,但为什么用这个却没一个说明。。{:soso_e101:}),具体找这个的理由我分析有2个:
1.因为原来的代码段是只读,但是由於VMP把代码压缩到另一个位置,要还原这些代码,必须先把代码段变成可读写
2.我用ollydbg的TC命令,第一个调用API的地方也是VirtualProtect,但也有可能是GetModuleHande
利用vritualprotect,然后看看保护的地方,当代码段还原为readonly,则是返回时机了,这时对.text下内存访问断点,然后F9几下,直到来到.text段的位置(或者是代码像OEP的地方,代码会很整齐的)

这里找到的OEP的RVA是:0019F46C,看到入口是DELPHI,没被抽取,庆幸。
于是,到这里看看第一调用CALL,发现第一个API是GetModuleHande,被处理成jmp xxxx,xxxx是VMP段的位置了。
因为在之前看过kissy的脚本,于是改了下,将入口点和生成API地址的地方记下来,跑脚本修复。
这个过程中因为有好些地址出现了JMP 到一些并没有意义的指令里,于是,个人调了很多次,将无意义的地方记下来,如果找到这些地方就不执行。
后面终於修复成功.
调试了下,发现是网络验证,暂时没能破解,待后面有时间再爆它菊花吧。{:soso_e113:}
看了后续版本的VMP脱壳教程,感觉难了不少,不过继续努力吧,相信能脱掉它的外衣。
附上脚本



wakichen 发表于 2015-8-31 10:56:23

没有视频啊?

as25597 发表于 2015-9-14 06:46:59

附上脚本    脚本在那下载

wakichen 发表于 2015-9-23 11:56:00

这个壳有点难度啊

9152pyg 发表于 2015-12-18 09:25:36

vmp的最烦,请教楼主,dll怎么破解?无论加壳或者裸体,怎么跟进去?

机智崔 发表于 2016-3-31 14:40:04

看着还不错啊

情缘丶残雪 发表于 2016-10-9 07:24:59

学习了 谢谢

wyq20110208 发表于 2017-1-18 21:49:10

我也不会破解,望有大神师傅教

ed0352 发表于 2017-9-12 20:21:25

说了半天一个毛都没见到在哪下载

yjczawyl 发表于 2019-8-2 10:01:14

最近遇到双壳,超搞怪
页: [1] 2
查看完整版本: VMP 1.6-1.7脱壳记录(淘淘文件时间修改之星1.4)