2010.12.09_ximo_再来和谐下VMP2.07的脱壳
http://hi.baidu.com/ximo2006/blog/item/9c61dd3ae2b6e63296ddd833.html
今天拿到了VMP2.07的bin,看了下新版的外壳,发现处理上有了些变化,于是,fuck之。
大致的脱壳流程还是没什么变:
1.到OEP后dump
2.生成IAT的对应关系txt
3.添加进DLL,实现跨平台
但是,IAT的处理,新版的VMP有了点变化,之前的版本,外壳是获取全部的IAT地址后,存放在某内存区域,然后进行填充;而新版的VMP的,则是获取1个,填充1个。其实也是换汤不换药的更新,只是,以前的脚本都失效了,于是只能自己动手搞一下。
首先,用fkvmp,获取2条handler的地址:VM_Retn和VM_WmDs32,这2跳handler的地址,一会要手动修改脚本里的2个地址。
具体不多说了,就给出2个脚本:
一:OEP Founder:
/*
VMProtect OEP Founder
by ximo[LCG][DFJG]
just for fun
*/
var imagebase
var tmp
var pNtHeader
var sectionaddr
var sectionsize
var sum
var protection
var retn
//VM_Retn
mov retn,0104f1fe
bc
bphwc
GMI eip, MODULEBASE
mov imagebase, $RESULT
mov tmp,[imagebase+3c]
add tmp,imagebase
mov pNtHeader,tmp
add pNtHeader,f8
mov tmp,pNtHeader
add tmp,c
mov sectionaddr,[tmp]
add sectionaddr,imagebase
mov tmp,pNtHeader
add tmp,8
mov sectionsize,[tmp]
mov sum,sectionaddr
add sum,sectionsize
gpa "VirtualProtect", "kernel32"
cmp $RESULT, 0
je err
bp $RESULT+13
loop:
esto
mov protection,[esp+c]
cmp protection,20
je next
jmp loop
next:
bc
rtu
find:
bp retn
esto
bc
bprm sectionaddr,sectionsize
esto
cmp eip,sum
bpmc
ja find
finded:
cmt eip,"this is OEP or Near OEP!"
ret
err:
ret
二:Fake IAT:
/*
VMProtect 2.07 Unpacker
by ximo[LCG][DFJG]
just for fun
*/
var getfunc
var dllname
var apiname
var writeaddr
var addr
var apiaddr
var key
var info
var end
var logfile
mov logfile,"FkIAT.txt"
/*
VM_WmDs32:
01050DA5 8910 mov dword ptr ds:[eax],edx
*/
mov writeaddr,01050DA5
//OEP or stop script addr
mov end,0100739d
bc
bphwc
gpa "CreateFileA", "kernel32"
cmp $RESULT, 0
je err
bp $RESULT+26
esto
bc
rtu
mov getfunc,eip
bphws getfunc, "x"
bphws end, "x"
loop:
run
cmp eip,end
je end
gn eax
cmp $RESULT,0
je next
do:
mov apiaddr,eax
mov dllname,$RESULT_1
mov apiname,$RESULT_2
bp writeaddr
esto
bc eip
mov addr,eax
mov key,apiaddr
sub key,edx
eval "{addr},{key},{dllname},{apiname}"
mov info,$RESULT
wrta logfile,info
next:
jmp loop
end:
ret
err:
bc
bphwc
ret
跑完脚本后,dump下来,然后添加进修复的dll,跟fkiat.txt放一起,就可以实现跨平台了。
附件是脚本跟试练样本:
http://u.115.com/file/f888266ccb
2010.12.09_ximo_再来和谐下VMP2.07的脱壳相关推荐
- http://www.blogjava.net/heyang/archive/2010/12/02/
2019独角兽企业重金招聘Python工程师标准>>> http://www.blogjava.net/heyang/archive/2010/12/02/339589.html 使 ...
- 2010.12.14 关于decimal和Numeric类型
decimal:从-10^38到10^38-1的定精度与有效位数的数字 numeric:decimal的同义词 怎么理解Numberic类型呢? Decimal数据类型,语法为:Decimal(P,S ...
- 台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下
台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下 上文记录的是关于统计的图标的绘制 下面我们来到另一个模块:颜色 fill()填充函数 功能:某一个封闭曲线,图上特 ...
- 【Scrum】2010.12.27
基本上从今天开始,各队员开始各司其职: 12.27队员的工作和将要做的工作 Hui, 作为leader, 主要从事developer: 解决一些BUG, 加入好友等功能,以及需要登陆才能获取的信息 L ...
- Cheatsheet: 2010 12.13 ~ 12.23
Web Slow Website? 6 Ways to Speed it Up MongoDB Monitoring: Keep in it RAM Minify JavaScript on the ...
- [转] C#2010 在TreeView控件下显示路径下所有文件和文件夹
原文 张丹-小桥流水,C#2010 在TreeView控件下显示路径下所有文件和文件夹 C#2010学习过程中有所收获,便总结下来,希望能给和我一样在学习遇到困难的同学提供参考. 本文主要介绍两个自定 ...
- 2010.12.29(2)——— android GridView
2010.12.29(2)--- android 可伸缩的GridView 用 GridView 来实现九宫格布局 并且一个格显示一个图片和一行字 [b]1.ImageAdapter[/b] pack ...
- 第12 课:HA下的Spark集群工作原理解密
第12 课:HA下的Spark集群工作原理解密 本期内容: 1.Spark高可用HA实战 2. Spark集群工作原理详解 1,Spark高可用HA实战 Spark本身是Master/Slaves结构 ...
- 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 )
文章目录 一.ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 1.file_magic.cc#OpenAndReadMagic 函数 2.dex_file.cc#DexFile:: ...
最新文章
- postgresql数据库修改表
- python 链表的中间节点
- python能写桌面程序吗_python能写桌面程序吗
- mysql修改网络服务_MySql-Server 就要修改成允许 Web-Server 进行远程连接. 最后一步 需要使用ALTER USER … ACCOUNT UNLOCK语句进行解锁了:...
- antd option宽度自适应_网站自适应模板是什么
- 【Keras】学习笔记(一)
- JMM层面的内存屏障-HappenBefore
- 棋牌游戏服务器架构: 详细设计(一) 内核设计
- hibernate4调用mysql存储过程_hibernate调用存储过程
- 尚硅谷的 ediary 笔记_干货分享 | 硅谷创新加速营第五讲教您合理规划融资需求 降低投资风险...
- java学习(149):字符输入流
- mysql 5.7 远程端口_ubuntu 16.04 mysql5.7.17 开放远程3306端口
- 更喜欢使用Stream到byte[]
- Java二进制的符号位在哪一位_Java位运算符及二进制常识
- 利用ZEBAR 软件生成ZPL 代码
- NXP K60单片机Altium Designer电路设计教程(智能车)
- wireshark 查找内容
- 程序猿12个人艰不拆的真相
- 嵌入式常用裸机编程框架
- Proximity sensor---Px318J
热门文章
- 表格插件:GridManager
- Matlab-RGB-颜色对照表(0-1之间取值)
- dreamweaver后缀名_在 Dreamweaver 中添加或编辑识别的文件扩展名
- 黑客讲故事:攻下隔壁女生路由器后,我都做了些什么【转】
- linux下的串口通信
- How I Used a JSON Deserialization Oday to Steal Your Money on the Blockchain
- 博贤科技管理系统漏洞oday
- Nrf52832 SAADC
- windows python keylogger
- 人脸年龄估计matlab,基于人脸的年龄识别系统设计与实现