为什么要编译自己的CE 在游戏逆向的过程中,很多游戏有保护,我们运行原版CE的时候会被检测到 比如我们开着CE运行英雄联盟的时候就会提示:
但是我们使用自己编译的的CE的时候就没有问题 效果图必要的工具链接:https://pan.quark.cn/s/e5bab54ae604如何编译CE1、首先下载并解压CE源码 2、安装 lazarus-2.2.2-fpc-3.2.2-cross-i386-win32-win64 然后安装 lazarus-2.2.2-fpc-3.2.2-win64 安装过程省略........ 安装好了以后打开CE源码目录里面的 \cheat-engine-master\Cheat Engine 文件夹 里面有个 cheatengine.lpi 文件 双击打开即可 打开后界面如下所示: 如果要查看窗口的话,按F12即可 现在就已经可以看到CE的主UI了 现在来修改CE的窗口标题和进程名 点击工程-工程选项 会打开下面的窗口 这里可以修改标题(然并卵)要修改图标的话直接点加载图标就行了 点击左边的版本信息 这里面的信息都可以改成我们自己的 然后再点击左侧的路径 把目标文件名改成我们自己的,注意32位和64位都要改 改好以后点确定关闭窗口,然后点运行--编译多种模式 选择32位和64位就行了,然后点OK就开始漫长的构建过程。。。。 提示编译成功即可。编译好的文件在cheat-engine-master\Cheat Engine\bin目录,文件名就是我们自己定义的
然而我们发现,进程名确实改了,进程信息也改了,but,进程标题没有变 窗口标题没有改变是因为在CE的源码中是写死的,所以我们要去源码中改 我们点击菜单中的工程--单元 在这个窗口中输入main 双击这个文件 在这个文件中按crtl+f搜索 cename 或者直接到代码最下面,找到如下代码: 把cename改成我们需要的字符串,然后编译 可以看到,窗口标题已经改掉了 我们即便把标题改成自己的,也有可能被游戏加到黑名单,如果我们用N个字母随机化标题的话,就没那么容易被检测到了,所以我们加入随机窗口标题的代码 随机标题代码 function CreateNewceWindowsText :string;const Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}; \|:",.<>/?`~';var StrText: string; i, index: integer;begin Randomize; StrText := ''; for i := 1 to 10 do begin index := Random(Length(Chars)) + 1; StrText := StrText + Chars[index]; end; result := StrText;end;
最终效果: 其实只要编译一个x64的就够了,因为x64的版本也是能搜索和调试32位进程的
|