NoVmp(虚拟机优化软件)正式版是款针对虚拟机打造的优化工具。NoVmp(虚拟机优化软件)最新版可以将VMProtect x64 3.0-3.5(最新版本)转换为优化的VTIL。并且NoVmp(虚拟机优化软件)改可以使用虚拟机翻译中间语言库重新编译回x64,目前还不完全支持编译时剥离重定位的二进制文件。
-
0.97.4 官方版查看
-
2.3 官方版查看
-
0.41 最新版查看
-
5.1 官方版查看
-
官方版查看
NoVmp(虚拟机优化软件)软件简介
NoVmp是一个项目,它将VMProtect x64 3.0-3.5(最新版本)转换为优化的VTIL,还可以使用虚拟机翻译中间语言库重新编译回x64。
这是一个实验性的,主要是我想发布的PoC。大多数事情都可以改进,尤其是新的NativeLifters回购协议,但在撰写本文的时候,它并不存在。
NoVmp(虚拟机优化软件)使用方法
NoVmp接受未打包的二进制文件,所以如果你的二进制文件是打包的,你必须先转储它,另外,如果你用Scylla这样的工具转储了它,你必须使用-base参数提供原始的映像库,像这样。
-base 0x14000000
默认情况下,NoVmp会将每一个跳转都解析到虚拟机中,如果你只对一些特定的虚拟化例程感兴趣,你可以使用-vms参数,像这样的相对虚拟地址。
-vms 0x729B81 0x72521
这些地址应该指向VMEnter,如下图所示。
VMEnter
默认情况下,节段发现是自动的,但如果您的调用没有被链接,您应该尝试使用 -sections 将 VMProtect 节段名称添加到节段列表中,如下所示。
-sections .xxx0 .yyy0
请注意,.1 部分是合并的 VMProtect DLL,不应输入。
此外,您还可以使用以下任何一个开关。
-noopt.禁用优化。禁用优化。
-opt:恒定。优化 VMProtect Ultra 常数混淆功能。
-experimental:重新编译。启用实验性 x64 编译器。
已知错误
VTIL-Core 已知的问题,主要是缺乏跳表支持和传播通道耗时太长/不是很好,这些问题正在解决中。
目前还不完全支持编译时剥离重定位的二进制文件。
实验编译器是一个边缘性的破损演示,与它相关的问题不应该被提交,因为它将会被重做,并且会在VTIL-Core中出现。
许可证
NoVmp采用GNU General Public License v3授权。
NoVmp(虚拟机优化软件)更新日志
禁用每条程序的多线程,因为优化时每块多线程会使CPU达到最大限度。