[file name]: show.html [file content begin] 利用工具手动给x64无壳程序添加VMP授权 _教程_一 个 普 通 的 网 站
利用工具手动给x64无壳程序添加VMP授权
System-Administartor
2025-10-06 17:45:40
0

**之前我写过一个给x86程序添加vmp授权的工具**
**这次用工具实现x64的vmp授权**
**用到的工具  x64dbg CFFExplorer VMProtect**[00]
首先准备一个test.exe的程序 和 VMProtectSDK64.dll。
VMProtectSDK64.dll一般在vmp的Lib\Windows目录下。

[01]
用CFFExplorer 添加导入函数 VMProtectSetSerialNumber 步骤如下图 按名称或者序号导入都可以。

[02]
添加一个区段,名为Skey,大小设置成0x1000,区段属性要改成可读可写可执行。


[03]
把可选头的成员AddressOfEntryPoint 的值改成区段Skey的虚拟地址后保存出新EXE。






[04]
在x64dbg的引擎设置里把禁用ASLR勾选。

[05]
找到VMProtectSetSerialNumber地址,找出原程序oep备份出来。


[06]
把新new_test.exe拖入x64dbg 添加代码如下图,然后补丁出来


这行汇编的意思是获取当前进程PEB指针,然后从peb+0x500读取到key的指针。
这样做的的用途是到时候可以通过自己写的dll 在dll里面写vmp机器码获取那些操作。
从dll获取到的key指针写到peb+0x500处,用来setkey
peb+0x500这个地址虽然目前看来没用被使用,但仍不建议用这个地址来传参。
VMProtectSetSerialNumber(const char * SerialNumber)

在x64里 fastcall的首参rcx,所以这里我就直接使用rcx作为参数了。
call qword ptr ds:[<VMProtectSetSerialNumber>]  
这里x64与x86不同,x64的寻址是相对寻址,所以我只需要在x64dbg中找到VMProtectSetSerialNumber call[]一下即可。
[07]
添加了代码的新程序拖入vmp,把原程序的OEP的锁定序列号选是,初始化授权。

[08]
加密出来的exe在mov rcx, qword ptr ds:[rcx+0x500]处下断点。
随便放个指针进去,指针里存放vmpkey 然后单步走过vmsetkey,结果为0表示成功。
跑起程序顺利通过vmplockcode。


[09]
大致流程就是这样,和x86差不多,也是在dll里来获取机器码,然后读取key。
key读取到之后传入peb0x500这样。

虽然现在的vmp授权已经极不安全了,可以实现无key Keygen了,但未来vmp可能会修复这些漏洞。
授权的可塑性还是很强的。
dll获取机器码和获取key那些比较简单,我就不写了,之前的x86的代码也可以套用,最后写好后还是用vmp的dllbox绑定到exe上即可。
按照这个流程写一个工具也是可以的。

上一篇:利用工具手动给x64无壳程序添加VMP授权

下一篇:没有了

相关内容

热门资讯

ASP网站开发入门教程 以下是ASP网站开发的入门教程,结合基础环境搭建、语法学习、数据库操作及实际应用场景,帮助初学者快速...
NTFS 蓝色箭头标记的含义 背景阐述在计算机操作系统的运用中,文件和文件夹的管理至关重要。Windows 10 系统作为广泛使用...
Ollama:从入门到进阶 本文从开源工具Ollama的核心价值出发,系统介绍了其在大型语言模型(LLM)领域的应用优势。作为免...
Android Recover... 背景阐述在安卓设备的使用过程中,系统维护、更新以及故障排查修复等操作至关重要。Recovery模式作...
Node.js入门教程与实践指... 以下是Node.js的入门教程,适合零基础学习者快速上手:Node.js 入门教程1. Node.j...
Python比较运算符优先级 运算符优先级概述在Python中,比较运算符的优先级决定了表达式中运算的执行顺序。理解这些优先级对于...
FFmpeg 备忘清单 本备忘清单是 FFmpeg 中常见视频处理操作的备忘清单
MySQL 备忘清单 本备忘单旨在快速理解 MySQL 所涉及的主要概念,提供了最常用的SQL语句,供您参考。
Cloudfare page ... 📺 项目简介LibreTV 是一个轻量级、免费的在线视频搜索与观看平台,提供来自多个视频源的内容搜索...
Linux操作MySQL数据库... -在Linux系统中操作MySQL数据库通常涉及以下步骤:1. 安装MySQL首先,确保MySQL已...
[file content end]