UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1168|回复: 0
收起左侧

[动态调试] Cheat engine 7.5 最新版编译 过一般检测

[复制链接]
tiebadalao

主题

0

回帖

UD

新手上路

UID
52
积分
21
注册时间
2022-5-18
最后登录
1970-1-1
2025-1-14 21:16:39 | 显示全部楼层 |阅读模式
参考某论坛帖子 使用最新CE源代码编译
成品:123网盘 百度网盘
一般需求可以直接使用
解压使用"\Cheat Engine\bin\uxeatengine-x86_64.vmp.exe"或"\Cheat Engine\bin\uxeatengine-x86_64.exe"

对CE的修改
更改了驱动名字
修改了名字和图标,修改了字符串
使用vmp3.X进行混淆和保护

编译了访问内核的驱动程序(要使用内核驱动程序请配合https://github.com/Mattiwatti/EfiGuard/releases/tag/v1.2.1)需要一个U盘
格式化为:IDA, "">FAT 或 FAT32
下载efiguard并将EFI放入U盘
打开 U 盘上的“EFI”文件夹 ->“Boot”并删除“Loader.config.efi”文件,将“Loader.efi”文件重命名为“bootx64.efi”。
进入BISO后选择usb启动
使用管理员cmd打开下载的efiguard文件夹,在 CMD 中输入“efidsefix.exe -d”以禁用驱动程序签名强制
然后启动CE并在 Cheat Engine 内转到“编辑”->“设置”->“调试器选项”并选中“使用内核模式调试器(需要 DBVM)”
然后转到“额外”并选中所有 4 个复选框
点击确定确保能在屏幕左上角看到“DBK64 LOADED”
返回cmd并输入“efidsefix.exe -e”确保游戏驱动不受影响正常启动

执行下面这个lua脚本即可
[Lua] 纯文本查看 复制代码
symbols = createSymbolList();
symbols.register();
 
function onOpenProcess(pid)
    symbols.unregister();
    symbols = createSymbolList();
    symbols.register();
 
    reinitializeSymbolhandler();
 
    if (pid == 4) then
        return;
    end
 
    local proc = dbk_getPEProcess(pid);
    --printf("proc: %08X", proc);
 
    local peb = readQword(proc + 0x550);
    --printf("peb: %08X", peb);
 
    local ldr = readQword(peb + 0x18);
    --printf("ldr: %08X", ldr);
 
    local index = readQword(ldr + 0x10);
    --printf("index: %08X\n", index);
 
    while (index ~= ldr + 0x10) do
          local mod = readQword(index);
          --printf("mod: %08X", mod);
 
          local name = readString(readQword(mod + 0x58 + 0x8), readSmallInteger(mod + 0x58), true);
          --printf("name: %s", name);
 
          local base = readQword(mod + 0x30);
          --printf("base: %08X", base);
 
          local size = readInteger(mod + 0x40);
          --printf("size: %04X\n", size);
 
          symbols.addModule(name, "", base, size, true);
 
          index = readQword(mod);
    end
 
    local name = readString(proc + 0x5A8, 15);
    --print("name:", name);
 
    local base = readQword(proc + 0x520);
    --printf("base: %08X", base);
 
    local size = readQword(proc + 0x498);
    --printf("size: %04X", size);
 
    symbols.addModule(name, "", base, size);
 
    reinitializeSymbolhandler();
 
    --print("finished!");
end
SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.

这个程序并不完善,特别是内核部分
不过一般的检测应该是没有问题的
修复了前面版本开始的字符报错
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-18 07:51 , Processed in 0.034142 second(s), 11 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表