Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

附上成品截图

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

下载CE源码

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

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

下载安装Lazarus

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

使用Lazarus打开CE

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

然后点击启动Lazarus

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

然后点击Project->OpenProject

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

替换关键字

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

替换ICON

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

然后点击Project下的Project Option

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

编译启动测试

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

勾选64位,然后ok

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

修改使用驱动名称并编译

点击Search->Find in Files

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

下载安装VisualStudio

由于不同系统要求的VS版本和SDK和WDK版本不一样,这里给出最新的版本表=>https://learn.microsoft.com/zh-cn/windows-hardware/drivers/other-wdk-downloads

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

然后安装即可

下载安装SDK

还是这里下载SDK

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

直接安装即可如图

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

下载安装WDK

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

修改驱动配置文件

使用VS打开DBKKernel.sln,如图

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

将DBK32.inf的注释

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

273行下加上

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

如图

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

查看属性

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

将配置修改为Release without sig|x64

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

然后再生成

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

如图成功

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

驱动添加测试签名

使用管理员方式打开CMD

进 WDK bin 目录

cd “C:Program Files (x86)Windows Kits10bin10.0.28000.0×64”

建证书+签名

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-masterCheat Enginebintuboshu64.sys”

验证一下

signtool verify /v “E:cheat-engine-masterCheat Enginebintuboshu64.sys”

如图表示成功

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

电脑开启测试模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

输入 bcdedit /set testsigning on

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

如图

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

DVBM的开启

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

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

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

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

如图

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

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

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

将其关闭,

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

3、彻底禁用Hypervisor启动:

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

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

bcdedit /set hypervisorlaunchtype off

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

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

到路径:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlDeviceGuard

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

如图

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

5、进入BIOS设置两个选项

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

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

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

 

Windows11下的Cheat Engine+驱动源码编译并开启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-masterCheat Enginedbk32DBK32functions.pas 中 3186行可以看到 64位系统会使用driver64.dat

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

在 cheat-engine-masterCheat Enginebin 下创建 driver64.dat,放入内容

TUBOSHU
DBKProcList60
DBKThreadList60
tuboshu64.sys
76543210
fedcba98
90909090
ULTIMAP2
ultimap2-64.sys

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

Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式

THE END
喜欢就支持一下吧
点赞0 分享