Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式-幽络源技术

附上成品截图

如图是在Windows11测试模式下运行自编译的驱动+CE,已开启DBVM模式,本文供技术学习。

下载CE源码

访问github官方链接=>https://github.com/cheat-engine/cheat-engine/

CE源码下载压缩包即可,如图

下载安装Lazarus

Lazarus同样的在CE的github页下方通过链接直达,如图

将"lazarus-2.2.2-fpc-3.2.2-win64.exe"和"lazarus-2.2.2-fpc-3.2.2-cross-i386-win32-win64.exe"都下载下来,如图

然后先安装lazarus-2.2.2-fpc-3.2.2-win64.exe再安装lazarus-2.2.2-fpc-3.2.2-cross-i386-win32-win64.exe

安装时一直下一步即可,他默认在C盘,路径不深就不用修改,如图

小提示:关于Lazarus的常见问答可前往=>Lazarus 常见问题解答 - Lazarus 维基

使用Lazarus打开CE

直接运行Lazarus,初次使用会提示Fppkg配置错误,直接按照如下图依次点击自动修复即可

然后点击启动Lazarus

然后点击Project->OpenProject

选择CE源码下的 cheatengine.lpi 文件,如图

替换关键字

直接通过Lazarus替换关键字太多了,而且也只能替换文字,无法替换可能的特征码,幽络源这里提供一个软件一键替换所有cheat engine关键字、特征码,如图只需选择源码目录,填入替换词确定即可

替换ICON

由于修改了字符串为tuboshu,这里打开lpi文件选择tuboshu.lpi

然后点击Project下的Project Option

然后点击Load Icon替换图表点击OK

编译启动测试

我们直接点击Run->Compile many Modes

勾选64位,然后ok

编译完成弹出如下对话框表示成功

从源码的Cheat Engine/bin下可以看到我们编译后的exe文件,双击启动,如图

修改使用驱动名称并编译

点击Search->Find in Files

输入dbk64.sys,勾选search all files in project,然后点击Find,结果如下,有5个位置需要修改,我这里修改为tuboshu64.sys

在第一处,除了要修改dbk64.sys名称,这里还建议修改下如图标记的servicename

我这里修改为tuboshu64.sys,服务名为TUBOSHU,然后重编译即可

下载安装VisualStudio

由于不同系统要求的VS版本和SDK和WDK版本不一样,这里给出最新的版本表=>支持的和其他 WDK 下载版本 - Windows drivers | Microsoft Learn

VisualStudio我这里直接下载VS2026社区版,虽然系统为25H2,但问题应该不大

工作负荷中勾选C++的桌面开发即可

切换到单个组件,搜索Spectre x64/x86,下载如下红色框的四个

然后安装即可

下载安装SDK

还是这里下载SDK

直接安装即可如图

下载安装WDK

同样的要注意下载对应的,如图

双击下载的WDK,安装即可,如图

修改驱动配置文件

使用VS打开DBKKernel.sln,如图

将DBK64驱动文件名称修改为我们自定义的名称,然后ClassGuid下加一行PnpLockdown=1

然后搜索文件中的DBK64修改为我们的tuboshu64,如图

最后将底部的一个ManufacturerName修改为我们自定义的制造商名

在DBKKernel.vcxproj文件下将 <TargetVersion>Windows7 修改为 <TargetVersion>Windows10,如图

将DBK32.inf的注释

273行下加上

<TreatWarningAsErrors>false</TreatWarningAsErrors>

<DisableSpecificWarnings>4996;4189;4090</DisableSpecificWarnings>

如图

修改驱动项目属性编译无签名驱动

查看属性

配置修改下,并将目标文件名修改为我们自定义的驱动名tuboshu64

生成后事件里有一行命令,会在编译完成后自动用原作者自己的签名证书去给驱动签名,我们先清空他("(WDKBinRoot_x64)\\signtool.exe" sign /a /ac "(TargetDir)..\release\sig\GlobalSign Root CA.crt" /tr http://rfc3161timestamp.globalsign.com/advanced /td SHA256 "$(TargetPath)")

然后驱动签名先关掉,可以后续签名

将配置修改为Release without sig|x64

然后再生成

如图成功

在Cheat Engine\bin下可以看到我们自己编译的驱动tuboshu64.sys了

驱动添加测试签名

使用管理员方式打开CMD

进 WDK bin 目录

复制代码
cd "C:\Program Files (x86)\Windows Kits\10\bin\10.0.28000.0\x64"

建证书+签名

复制代码
makecert.exe -r -pe -ss PrivateCertStore -n "CN=tuboshu" tuboshu.cer

signtool.exe sign /v /a /s PrivateCertStore /n "tuboshu" /fd SHA256 /t http://timestamp.digicert.com "E:\cheat-engine-master\Cheat Engine\bin\tuboshu64.sys"

验证一下

复制代码
signtool verify /v "E:\cheat-engine-master\Cheat Engine\bin\tuboshu64.sys"

如图表示成功

电脑开启测试模式

右键开始菜单 → Windows PowerShell (管理员) 或 终端 (管理员)

输入 bcdedit /set testsigning on

回车,看到"操作成功完成"。

如图

重启电脑。桌面右下角会出现"测试模式 Windows 10/11 专业版"水印,说明已生效。那么我们的 tuboshu64.sys 就可以正常加载了。如图

DVBM的开启

以上步骤完成后,打开CE可能可能看到不支持DBVM,我这里的就是如此,一般是虚拟化资源被占用,那么只需要以下几步

1、关闭占用虚拟化的Windows功:

按 Win + R 打开运行窗口,输入 appwiz.cpl 并回车,点击左侧的"启用或关闭Windows功能",关掉以下相关的东西

复制代码
Hyper-V(包含其所有子项)
Windows 沙盒
虚拟机平台
Windows 虚拟机监控程序平台
适用于 Linux 的 Windows 子系统(WSL2)

如图

2、关闭基于虚拟化的安全(VBS)和内核隔离:

windows安全中心中有个内核隔离详情,点击去,如图

将其关闭,

3、彻底禁用Hypervisor启动:

Windows有时仍会在底层启动虚拟机监控程序。可以通过命令行强制关闭:

以管理员方式打开CMD,执行如下命令即可

复制代码
bcdedit /set hypervisorlaunchtype off

4、彻底关闭 VBS 和内核隔离:

Win + R,输入 regedit 打开注册表编辑器。

到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard

双击 EnableVirtualizationBasedSecurity 将其数值数据修改为 0。

如图

5、进入BIOS设置两个选项

不同电脑进入BIOS方式不同,查一下品牌就知道进入方式了,进入后一个是开启VT,也就是CPU虚拟化技术,但幽络源这里的电脑安装的系统默认就是开启的。

其次就是关闭安全启动,BIOS中可能以英文Secure Boot出现,关闭即可。

然后打开我们自己编译的CE即可看到支持DBVM了,如图

DBVM镜像更换

土拨鼠这里是windows11,CE7.5、以及CE源码编译出来的DBVM镜像我都试了,直接卡死,但是使用最新的CE7.7的镜像不会卡死,因此我们直接下载最新CE7.7版本的,将其 vmdisk.img 复制到我们编译的CE的bin目录下即可,如图

可能的额外情况处理

支持DBVM但报错

DBVM支持了,但有可能会出现如下情况【You are missing the driver. Try reinstalling tuboshu, and try to disable your anti-virus before doing so.】,这里我们手动创建个中间文件,让我们自己编译的CE加载我们自己编译的驱动,如果是如下的情况的话

在文件 cheat-engine-master\Cheat Engine\dbk32\DBK32functions.pas 中 3186行可以看到 64位系统会使用driver64.dat

在 cheat-engine-master\Cheat Engine\bin 下创建 driver64.dat,放入内容

复制代码
TUBOSHU
DBKProcList60
DBKThreadList60
tuboshu64.sys
76543210
fedcba98
90909090
ULTIMAP2
ultimap2-64.sys

其中TUBOSHU是服务商名,tuboshu64.sys是自己编译的驱动名,然后重启编译的CE,不再报错,如图

相关推荐
世微 如初17 天前
AP5125大功率LED恒流驱动实战:地摊灯项目从原理图到调试笔记
驱动开发·芯片·led电源驱动·降压恒流ic
ScilogyHunter17 天前
Zephyr串口驱动开发及构建完全指南
驱动开发·uart·zephyr
_Emma_17 天前
【DRM&Graphic】Linux图形与显示框架
linux·驱动开发·图形渲染·显示器
董厂长17 天前
Loop Engineering:停止手动提示,开始设计自动提示的系统
大数据·人工智能·驱动开发·llm
Saniffer_SH18 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
暮云星影18 天前
全志linux开发屏幕适配(二)`HDMI`驱动适配说明
linux·arm开发·驱动开发
charlie11451419118 天前
嵌入式Linux驱动开发——从轮询到中断
linux·开发语言·驱动开发·嵌入式
暮云星影18 天前
瑞芯微rk3566开发FIT Secure Boot
linux·arm开发·驱动开发·安全
暮云星影18 天前
全志linux开发 USB接口设置
linux·arm开发·驱动开发