吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 36774|回复: 84
收起左侧

[Scripts] VMProtect 2.12.3 IAT修复方法&修复脚本

  [复制链接]
a070458 发表于 2015-7-31 20:05
本帖最后由 a070458 于 2015-8-3 12:38 编辑

-------------------------------------------------【文章简介】-------------------------------------------------
【文章标题】 VMProtect 2.12.3 IAT修复方法&修复脚本
【文章作者】 a070458
【作者邮箱】 无
【作者主页】 无
【软件名称】 C++.vmp.exe
【软件大小】 自己加壳
【下载地址】 自己搜索下载
【加壳方式】 VMP2.12.3
【保护方式】 VMP
【编写语言】 VC
【使用工具】 OD
【操作平台】 XP
【软件介绍】 自己搜索
【作者声明】 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
-------------------------------------------------【文章正文】-------------------------------------------------


1.加壳设置,这里就不V掉OEP和资源保护了  其他默认设置
vmp.png

2.OEP的寻找
  OEP的寻找也是用很旧很旧大牛们总结的方法了   VirtualProtect下段 一路F9等他设置最后一个区段的时候  找个Vm_retn 下断点运行后直接对text段下断点一路F9就到达OEP或OEP附近了



3. 修复call的寻找
  这个好找在代码断寻找所有call 然后看谁跳向vmp0区段就对了


4.寻找正确api
   这个也好找 随便跟进几个call  你发现一路F7  最后会都会到达
push dword ptr ss:[esp+CONST];retn const
然后F7到达真正的API,  所以 这2句代码就有用了  可以剩下N个F7的时间
这里在VMP0区段搜索所有符合的代码下段
大概长成这样
1.png 2.png

这里吐糟一下od脚本的findcmd 命令  搜索命令是这样的  如果搜索call 如果发现E8 E8 ???????? 他就会搜索出第一个e8当做call 指令 然后+5继续寻找  这样就漏掉一个咯



5. 修复思路和IAT识别
脚本大概思路 就是寻找需修复的api的call的地址------保存当前的ESP和【ESP】的值,把寄存器全部变为0,然后运行 ,到达retn处-----F7一下到达api----------然后获取当前ESP的值和【ESP】的值,比较一下 就能识别所有类型
VMP会把所有IAT类型全都变为E8 CALL 5字节,  如果是FF15 FF25 这些6字节的剩下一字节就会随机填充
但是VMP会这样的   push r32,call VMP0  ;然后在call 里面pop 掉达到堆栈平行,这样就需要识别出来然后把call 的地址往上移动1字节了  ,这个也可以从[esp]的值可以看出来,因为他也要返回,所以到达API 他肯定要还原 所以从[ESP]的值就可以看出来了
基本就是6种类型
////////////////////////////
类型1  push xxx call xxxxxxx  (FF15 XXXXXX)   //FF15 前一字节NOP    MEsp==NowEsp    进call前[MEsp]!=进call后[MEsp]
类型2  call xxxxxxx 一字节垃圾代码 (FF15 XXXXXX)//FF15 后一字节NOP      MEsp-NowEsp  =4
类型3     push xxx call xxxxx   (FF25 XXXXXX) //FF25 后一字节NOP       MEsp==NowEsp   进call前[MEsp]==进call后[MEsp]
类型4  call xxxxxxx 一字节垃圾代码 (FF25 XXXXXX)//FF25 前一字节NOP           NowEsp- Mesp =4
类型5  mov r32,[api]  (5字节)// mov r32,[api] 后  返回的地址的不会跳过1字节
类型6  mov r32,[api]  (6字节)// mov r32,[api] 后  返回的地址跳过1字节
/////////////////////////////////
随便找个call跟进对照一下就明白了,可能有错,欢迎各位大牛指出
//////////////////////////////
6.其他问题
   因为是采用寻找所有修复call 然后修复,肯定会有1 2个会找错或者修复错,如果这样把程序弄崩溃了,(脚本运行效率太慢了,如果运行到一半挂掉了 就白费功夫了)所以 HOOOK KiUserExceptionDispatcher 达到跳过修复的call  然后继续往下修复。
7.png
   有的可能修复不了  具体看log窗口吧 有提示信息。
8.png
7.资源的修复
   隔壁UPK大神有工具和方法,有兴趣自己去学习


/////////////////////////////////////////////////////////
基本框架都在啦 有兴趣自行扩展
然后就发现会修IAT才是长征的开始
////////////////////////////////////////////////////////

附上脱壳脚本
vmp.rar (165.18 KB, 下载次数: 1534)

这里感谢吾爱大家庭,最开始就是接触到这个论坛,在这学会很多很多东西







点评

这个思路怎么看怎么熟悉,最早作者叫血什么来着,有15种方法  发表于 2015-8-3 10:09

免费评分

参与人数 18吾爱币 +1 热心值 +18 收起 理由
razor40K + 1 + 1 热心回复!
pxhb + 1 非常好
ccn1974 + 1 热心回复!
Themagickey + 1 谢谢@Thanks!
微博2016 + 1 谢谢@Thanks!
by_时光 + 1 谢谢大神分享
kaka100861 + 1 鼓励转贴优秀软件<span id="transmark.
小楠 + 1 谢谢@Thanks!
〇〇木一 + 1 zzzzzz赞个
wanttobeno + 1 谢谢@Thanks!
katkat + 1 我很赞同!
吾爱扣扣 + 1 吃我一记洛阳铲
Terrorblade + 1 前排支持大神
Pizza + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
Sure007 + 1 热心回复!
zf616545 + 1 谢谢@Thanks!
逍遥枷锁 + 1 谢谢@Thanks!
LoongKing + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| a070458 发表于 2015-8-18 12:50
lwy9299 发表于 2015-8-14 22:52
看得有点头晕,“VirtualProtect下段 一路F9等他设置最后一个区段的时候”这里不明白

因为壳会使用VirtualProtect 对每个段设置保护选项
他设置最后一个区段的时候离OEP最近
weiwj520 发表于 2017-9-20 20:43
本帖最后由 weiwj520 于 2017-9-20 20:49 编辑

大神,这个vmp壳脱壳脚本使用出现错误!
求助大神,能不能帮忙脱个壳,新手脱这个vmp实在乏力,研究了几天没法。
附件地址:链接: https://pan.baidu.com/s/1dF7yrkP 密码: dtsg
LoongKing 发表于 2015-7-31 20:20
zf616545 发表于 2015-7-31 20:34
谢谢楼主,我是新手,顶帖
别提曾经. 发表于 2015-7-31 20:39
楼主壳怎么脱呢
蚯蚓翔龙 发表于 2015-7-31 20:47
暂时只能看懂大概。。。
xiawan 发表于 2015-7-31 21:21
都是大神,都在研究这个东西了
z4689528 发表于 2015-7-31 21:24
支持楼主 加油 哦!!
头像被屏蔽
bambooqj 发表于 2015-7-31 21:31
  师傅 终于发帖了。。。。。
z4689528 发表于 2015-7-31 21:34
哎  吾爱币 少了!!
longruan 发表于 2015-7-31 21:41 来自手机
不明觉厉啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 10:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表