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, ...
随机推荐
- ecshop整合discuz教程完美教程
所需软件: ecshop安装包: ECShop_V2.7.3_UTF8_release1106.rarucenter安装包: UCenter_1.6.0_SC_UTF8.zipdiscuz! ...
- Hadoop 权限管理(转)
如下图,hadoop访问控制分为两级,其中ServiceLevel Authorization为系统级,用于控制是否可以访问指定的服务,例如用户/组是否可以向集群提交Job,它是最基础的访问控制,优先 ...
- 在 MacBook 上安装 Ubuntu
建立ubuntu 安裝U盤,加入usb port,按住option key 開機,正常安裝. 完成後,會缺少wifi drive sudo apt-get install bcmwl-kernel-s ...
- struts2 paramsPrepareParamsStack拦截器简化代码(源码分析)
目录 一.在讲 paramsPrepareParamsStack 之前,先看一个增删改查的例子. 1. Dao.java准备数据和提供增删改查 2. Employee.java 为model 3. E ...
- 兼容iphone x刘海的正确姿势
在 ios 11 中我们可以使用 viewport-fit=cover + safe-area-inset-*. 那么是不是 ios11 以下就用不了这些了呢?是的,但你见过 iphone x+ 有 ...
- JS-MiniUI:百科
ylbtech-JS-MiniUI:百科 MINIUI是一款优秀的JS前端web框架,提供丰富.强大控件库,能快速开发企业级Web应用软件.该软件以美观精致的界面和快速的页面响应速度获得用户的好评.是 ...
- css代码思考:display和float
关于display <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 用php写爬虫去爬数据
参考文档1 参考文档2 这里是我自己写的一个小需求 <?php /** 采集http://www.959.cn/school,即时更新的最新的文章内容:每分钟采集一次.采集结束后实时入库并展示. ...
- spring纯注解的account案例
dao层: package cn.mepu.dao.imp; import cn.mepu.dao.IAccountDao; import cn.mepu.domain.Account; import ...
- 数据结构:堆(Heap)
堆就是用数组实现的二叉树,所有它没有使用父指针或者子指针.堆根据"堆属性"来排序,"堆属性"决定了树中节点的位置. 堆的常用方法: 构建优先队列 支持堆排序 快 ...