VMProtect是一款软件保护工具,用户可以通过它,对自己的软件进行加壳加密保护,让自己程序代码不易被别人破解拷贝走。一个软件的制作,最重要的就是代码核心,而网络上常常有人专门破译别人软件的代码为自己所有或则加入病毒代码。对制作软件的程序猿们来讲,无意是最不能接受的。那要怎么保护自己的软件呢?VMProtect就是一款强力的软件保护工具,它的口碑在网络上赫赫有名,难以攻破的加密方式,让许多企图破译软件盗走代码的‘小偷’都无功而返。它通过这个软件保护的代码部分在虚拟机上执行,这使得被保护的程序很难被分析与破解,为你程序加上最强的护盾。
功能特色
1.多种编译类型,为程序保驾护航。
2.虚拟化绑定注册码,让程序更难被破解。
3.操作简单,容易上手。
4.添加水印,让程序成为你的专属。
5.专家模式,文件信息更加详细清楚。
加密程序解析
虚拟机加密,就是说像VMP这样的保护程序,它会把源程序的X86指令变成自定义的伪指令,等到执行的时候,VMP内置在保护程序中的VM就会启动,读取伪指令,然后解析执行。VMP是一个堆栈虚拟机,它的一切操作都是基于堆栈传递的。在VMP中,伪指令就是一个个的handler,VM中有一个核心的Dispatch部分,它通过读取程序的bytecode,然后在DispatchiTable里面定位到不同的handler中执行。绝大多数情况下,在一个handler中执行完成后,程序将回到Dispatch部分,然后到next handler中执行。
使用小计一
1、新建工程
新建一个win32工程,这里需要使用MFC,名称为:VMProtectDemo1
2、复制所需环境
1.打开 VMProtect 的安装目录,找到Include和Lib两个目录,引用到工程目录
2.复制ncludeCVMProtectSDK.h和LibCOFFVMProtectSDK32.lib两个文件到工程目录
3、工程编写
1.在VMProtectDemo1.cpp中添加VMProtect SDK的头文件
2.头文件中有自动连接lib库,所以我们必须要手动连接,修改main函数的代码为
3.编译运行下
4.运行的结果发现缺少VMProtectSDK32.dll,这个文件可以在Lib目录下找到,找到之后复制到工程的exe目录
5.再运行一下,这时候的程序是还没有加过壳的程序,我们需要使用VMProtect进行保护。
不能用net吗?
1、VMP内层不能有别的壳,而木马一般都带壳。因此,加VMP前,要把原壳脱掉。如果愿意的话,加VMP后可以再加回来。
2、木马文件末端可能存在附加数据(Overlay)。VMP会导致附加数据错误或丢失。因此加壳的话需要手动处理一下。
3、木马有TLS回调。VMP有可能破坏TLS回调。
代码还原技术?
1、从指定位置或当前eip处开始读取BB块(如果遇到e8,e9跳转就相应的转到目标地址继续读取),生成指令描述表
2、第1次扫描指令描述表识别clc、stc、cmc无效指令
3、第2次扫描指令描述表识别test、cmp无效指令
4、第3次倒着扫描指令描述表,识别赋值、运算等无效指令
5、扫描push、pop指令
怎么注册?
按提示进行操作即可,小编推荐的该版本无需进行注册,安装完成即可使用
加壳是什么意思?
其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩,保护程序数据的完整性,不会轻易的被修改或者窥视程序的内幕。
脱壳是什么意思?
是完全破除加壳软件,就是把软件的保护层去掉,找到软件核心(源代码)。
是什么?
VMProtect是一个软件保护软件。通过这个软件保护的代码部分在虚拟机上执行,这使得被保护的程序很难被分析与破解。反汇编程序与MAP文件的运用使您能快速选择需要保护从而避免破解的代码
加密的软件能破解吗?
1.反汇编后静态分析: W32Dasm、IDA Pro
2.用调试工具跟踪动态分析:SoftICE、TRW2000
3.针对各种语言的反汇编工具:VB、Delphi、Java等
4.其他监视工具:FileMon、RegMon 等
5.破解难度非常大,有些编译简答的还可以破解。
的壳怎么破解?
vmprotect的加壳技术是非常难破译的
使用教程
1、打开程序可以看到显示“拖动要打开的文件到这里”,或者点击文件菜单-打开也可以,这时候直接拖动需要加壳的软件到VMP
2、打开了C盘目录下的cmd.exe做演示,编译类型处按照自己的需求选择,这里是授权管理,选择好后,点击授权管理生成就会出现KEY文件了.
3、如果要对软件进行加密而不是授权功能点击菜单设置-专家模式,如果没有特殊需求点击选项按钮
4、这时候可以根据自己的需求按照提示来设置参数,如果你需要对重要部分代码进行VMP,那么点击项目-新建-新建流程
5、这里需要你提供地址,这是必须的,那么这个地址是什么地址呢?我们可以用OD打开我们自己的软件,然后找到核心代码,也就是需要保护的代码,然后给代码的第一段复制到VMP的地址中来保护,这样就时间软件代码VMP的效果了,大大增加了破解与调试的难度