问题标签 [cheat-engine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - scanmem (Linux) 与 CheatEngine (Win)
scanmem
比CheatEngine
(尽管我在我的 VirtualBox 中运行 CheatEngine)慢得多。进一步的 scanmem 无法扫描任何值 (*),但 CheatEngine 可以。怎么会?对于 Linux 用户,scanmem 是否有更好的选择?
lua - 更改时打印
我很难弄清楚这一点。我是Lua的新手。
基本上我在作弊引擎中找到了一个基本指针。现在我想使用 Lua 来打印基指针的值如何随时间变化的历史记录。
例如,当我启动脚本时,基本指针值为 55555,然后 Lua 会打印到例如 notepad.exe
55555
当它更改为 66666 时,它会换行并打印 66666,所以它看起来像
55555
66666
关于如何实现它的任何想法?
flash - 使用作弊引擎加速 Flash 程序中的时间
我有一个 flash exe 文件,它有一组输入并对其进行模拟。模拟需要实时执行,大约需要一天才能完成 1 轮。我需要从中获取大量数据。
它是使用 Macromedia Director 8.5 制作的,维基百科称它于 2001 年发布。
我试图使用作弊引擎来加快时间,但我找不到要修改的地址!我不知道时间存储在什么数据类型中,所以我在值类型中使用了“全部”并尝试寻找“增加的值”它能够将列表缩短到 ~250 个值,但我无法缩短它了。我在模拟器中唯一能看到的是“hh:mm:ss”时间格式。还有几个按钮可以暂停、播放、停止、加载变量等。
我正在尝试做的事情:
我试图找到时间变量,检查它的增量,并使其增加得更快。
我已经尝试过(但失败了)的事情:
我尝试在具有加速系统时间(在 virtualbox 上)的 Virtualbox 中运行它以获得更快的数据 - flash 程序仍然实时运行。
我尝试重新创建它的模拟,但我不知道它使用的物理参数 - 它太复杂了。
debugging - 找出哪些指令写入此内存地址 olly dbg 作弊引擎
ollydbg 中是否有一个选项可以找出哪些代码写入内存地址?就像 Cheat Engine 显示写入特定地址的所有汇编指令一样。“断点 --> 内存”不起作用。
c# - 如何避免作弊引擎在运行时查看我的字符串
我在玩 CheatEngine,发现它可以在客户端应用程序中查看我的所有字符串。我想知道我应该怎么做才能让作弊引擎在运行时看不到我的字符串。我尝试了所有我知道的方法,但只要我有一个字符串,CheatEngine 就可以查看它。我想防止这种情况发生,或者至少 CheatEngine 将加密字符串可视化。
c++ - 在 C++ 程序中使用作弊引擎基地址
我最近学习了如何使用 Cheat Engine 查找进程的基地址。我在 Windows XP 上使用 Solitaire 进行了此操作,我找到了 score 的基地址(类似于000AABBC
),并且该地址从未改变。
所以我制作了一个 C++ 程序,它使用WriteProcessMemory();
(我刚刚传递了那个地址)并且它每次都在工作。现在我在 Windows 7 上做,我找到了基地址,但它是一个指针,它指向的地址每次都会改变。当我检查指针地址时,它说"solitaire.exe"+000BAFD8
。那么如何像之前一样在代码中使用它呢?
c++ - 通过代码生成防止作弊
这种反作弊技术是否适用于使用私人服务器(公开未知的可执行文件)的多人游戏:
当客户端启动游戏时,它将每天自动更新(使用启动器)。服务器也会自行更新。除非有真正的补丁,否则更新仅包括游戏对象内存布局、网络代码和着色器的更改。这是使用自动生成和随机化 (C++) 类的自动化系统完成的。也许它还可以将假对象添加到层次结构中,以使识别对象更加困难。
通过这种方式,我希望能够比破解者更快地更新游戏,并将逆向工程、更新和发布/更新新的作弊。
这会奏效还是黑客可以以某种方式绕过这种机制?他们会每天做这项工作,还是可以在某个时候将其自动化?我可以做些什么来改进这个系统?
从长远来看,随机化内存布局似乎没有帮助,因为通过在可执行文件中执行函数调用并从该代码中提取指针偏移量,可以或多或少地轻松提取布局。所以为了有效地防止这种情况,调用结构和代码本身也需要随机化。
有没有好的方法来做到这一点?这对自动破解有效吗?
java - JNA - EnumProcessModules() 不返回所有 DLL?
我试图从游戏中读取坐标。当在我通过 OpenProcess 接收的 HANDLE 上使用 ReadProcessMemory 时,这工作得非常好,我在 CheatEngine 中找到了内存。例如,如果我知道正在运行的进程中的浮点值是 0x5AB38F68,我可以读取这个。
但是,每次重新启动游戏时,地址都会更改。它依赖于一个名为 AkSoundEngine.dll 的模块。所以基本上地址是 AkSoundEngine.dll+0x168F68。但是,我终生无法找到所述 DLL 的基地址。它在 CE 中显示:点击查看图片
但是,当在与以前相同的 HANDLE 上使用 EnumProcessModules() 时,结果如下:
DLL 未显示。因此我的假设是,它可能在 tld.exe 模块之一中。如果是这种情况,我将如何迭代模块的模块然后接收其基地址?我是否正确假设我也必须添加 tld.exe 的基地址,如:
tld.exe+AkSoundEngine.dll+0x168F68
?
您可能还注意到,它将 tld.exe 显示为一个模块 5 次,但其中只有 2 个返回 BaseOfDll,作为LPMODULEINFO
GetModuleInformation() 返回的一部分。
是不是我刚刚遇到了 JNA 中可行的方法(我对此表示怀疑,因为我只是在调用 C 代码)?
我不知道如何更具体地问,但你可以在我的 GitHub 上看到整个代码。其中大部分发生在 Game.java 的 updatePosition() 方法中。
c# - 为什么进程内存查看器将字节数组读取为字符串?
我有 2 个通过 netPipe WCF 相互通信的 c# 应用程序。一个应用程序正在向另一个应用程序发送一个字节数组。如果我使用进程内存查看器(如 CheatEngine)检查接收应用程序的内存映射,我可以将接收到的字节数组作为字符串读取。为什么会这样?