VMProtect使用小计【二】 – 加壳查看
Release
我这里使用的是Release的版本,Debug的版本分析没有多少的必要,因为程序发布过之后就是Release的,我们先看一下这个文件

原程序分析
使用OD打开VMProtectDemo1.exe原版程序
因为在我们的程序使用到了MessageBox,所以这里我们就下bp断点。为什么是
MessageBoxWMessageBoxW这是因为我刚开始是用的VS2008生成的默认工程,默认工程是Unicode的程序,所以这里就断MessageBoxW

运行程序
使用F9运行程序,让程序跑起来,这时会断到我们的MessageBoxW的断点上,我们按Alt+F9返回到用户代码。
013D1000 >/$ 68 B8213D01 PUSH OFFSET VMProtec.??_C@_0BH@NEBMIKLA@>; ASCII "VMProtec Tag By Sollyu"
013D1005 |. FF15 B0203D01 CALL DWORD PTR DS:[<&VMProtectSDK32.VMPr>; VMProt_1.VMProtectBeginVirtualizationLockByKey
013D100B |. 6A 40 PUSH 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
013D100D |. 68 D0213D01 PUSH OFFSET VMProtec.??_C@_1BE@GCDIBBA@?>; |Title = "By:Sollyu"
013D1012 |. 68 E4213D01 PUSH OFFSET VMProtec.??_C@_1CA@BBLPMEIO@>; |Text = "VMProtect Test."
013D1017 |. 6A 00 PUSH 0 ; |hOwner = NULL
013D1019 |. FF15 A4203D01 CALL DWORD PTR DS:[<&USER32.MessageBoxW>>; \MessageBoxW
013D101F |. FF15 AC203D01 CALL DWORD PTR DS:[<&VMProtectSDK32.VMPr>; VMProt_1.VMProtectEnd
可以很清除的看到我们的MessageBoxW。

保护程序分析
使用OD分析
和原程序分析一样,下bp断点,F9运行调试
MessageBoxW
当执行到MessageBoxW的时候,我们可以发现完全不是我们想要的代码了,而且出现了错误调试。

我们可以在VMProtect找到这段文本的说明,首先要开启专家模式

可以看到这是在说文件损坏,禁止调试的一种

IDA分析
使用OD动态调试不行,我们在使用IDA看一下效果。这里是两个程序的对比图
原程序

保护程序

可以看到,已经改的面目全非了。
VMProtect使用小计【二】 – 加壳查看的更多相关文章
- VMProtect使用小计【一】
文章列表 VMProtect使用小计[一] – 初次使用VMProtect使用小计[二] – 加壳查看VMProtect使用小计[三] – 权限管理 说明 VMProtect的功能我就不说了,详情大家 ...
- 判断android文件是否加壳
判断android文件是否加壳 查看文件是否有多个进程 反编译文件class.dex,看文件结构 查看文件特征,libsecexe libsecmain等 反编译so文件,看函数是否加密
- 浅谈被加壳ELF(即android的so文件)的调试
本文只讨论如何调试被加壳的ELF文件,包括调试中的技巧运用及调试过程中可能遇到的问题的解决方法,不包含如何还原加固的DEX本文将以某加壳程序和某加固为目标. 一.ELF格式简介 ELF全称:Execu ...
- Themida和Winlicense加壳软件脱壳教程
(一)Themida和不用license的Winlicense加壳软件就不说了,直接上脚本脱壳. (二)先看看不同版本OEP的一些小特征: Temida2.1.X.X版本之后的OEP特征(2.0.8. ...
- 简单粗暴的对android so文件加壳,防止静态分析
转载自http://bbs.pediy.com/showthread.php?t=191649 以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路.最近翻看各种资料,有了一些思路.看到论坛 ...
- VMP虚拟机加壳的原理学习
好久没有到博客写文章了,9月份开学有点忙,参加了一个上海的一个CHINA SIG信息比赛,前几天又无锡南京来回跑了几趟,签了阿里巴巴的安全工程师,准备11月以后过去实习,这之前就好好待在学校学习了. ...
- Android中的Apk的加固(加壳)原理解析和实现
一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk, ...
- UPX源码分析——加壳篇
0x00 前言 UPX作为一个跨平台的著名开源压缩壳,随着Android的兴起,许多开发者和公司将其和其变种应用在.so库的加密防护中.虽然针对UPX及其变种的使用和脱壳都有教程可查,但是至少在中文网 ...
- Android中的Apk的加固(加壳)原理解析和实现(转)
一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk, ...
随机推荐
- Cent OS 7下安装 mongodb
1.下载MongoDB 安装包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.8.tgz 2.解压并安装 .tgz 3. ...
- HTML-参考手册: HTML 符号实体
ylbtech-HTML-参考手册: HTML 符号实体 1.返回顶部 1. HTML 符号实体 本字符实体参考手册包括了数学符号.希腊字符.各种箭头记号.科技符号以及形状. 注释: 实体名称对大小写 ...
- windows 配置msys2环境
msys2是一个在windows下模拟类unix的环境,之所以叫环境,是用为他提供了部分unix shell类似的功能,这个环境使你像在unix上使用shell一样.看到msys2你可能想到是不是还有 ...
- 28. Python编写自动化测试用例
接口文档已经提供了,requests库.unittest单元测试框架也已经介绍过,笔者相信读者朋友已经可以独立编写接口自动化测试用例了.但是有一些细节,我们需要聊一下.比如我们写登录接口测试用例,用户 ...
- linux替换rm命令,防止误删
1. 在/home/username/ 目录下新建一个目录,命名为:.trash 2.. 在/home/username/tools/目录下,新建一个shell文件,命名为: remove.sh #! ...
- Java对象toString()方法
对象的字符串表示以可读格式包含有关对象状态的信息.Object类的toString()方法表示字符串中类的对象.Object类提供了toString()方法的默认实现. 它返回一个以下格式的字符串: ...
- Java DOM解析器 - 修改XML文档
这是我们需要修改的输入XML文件: 1 2 3 4 5 6 7 8 9 10 11 12 <?xml version="1.0" encoding="UTF-8&q ...
- export的用法
定义环境变量并且赋值 # export MYENV= //定义环境变量并赋值 # export -p declare -x HOME=“/root“ declare -x LANG=“zh_CN.UT ...
- python 三方库字典
参考:https://github.com/jobbole/awesome-python-cn 环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 ...
- python获取沪股通、深股通、港股通每日资金流向数据
接口:moneyflow_hsgt 描述:获取沪股通.深股通.港股通每日资金流向数据,每次最多返回300条记录,总量不限制. 注:tushare模块下载和安装教程,请查阅我之前的文章 输入参数 名称 ...