问题标签 [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.

0 投票
1 回答
669 浏览

c++ - 如何在没有大小验证的情况下使用 WriteProcessMemory 在 C++ 中写入内存?

我一直在尝试使用此代码写入进程的内存(以创建作弊码):

例如,当我用 jz 覆盖 jnz 时,它可以正常工作,因为两者的大小相同。但是,当我尝试用 jmp 覆盖例如 pop 时,我会收到一个错误,因为这些命令的大小不同。

我在这里读到WriteProcessMemory 执行验证以检查指定地址的可用大小。

我想要做的是在没有大小检查的情况下写入内存地址,因此程序只需覆盖代码所需的尽可能多的字节。

使用 Cheat Engine 我能够做到这一点,因为它让我可以覆盖必要的字节。

所以我的问题是如何在 C++ 中做与 Cheat Engine 相同的操作?

0 投票
2 回答
2896 浏览

c++ - 查看内存中的双变量

我正在研究程序如何将数据保存在内存中。所以我做了一个包含全局双变量的简单程序:

当我想从任何读取内存的程序(在我的情况下为 CheatEngine)中搜索内存中的这个双变量时,我看到了一些不清楚的东西。

CheatEngine 在内存中找到 512 :

第一张图片

当我将其转换为十六进制时,它显示:

第二张图片

当我浏览这个变量在内存中的位置时,它就像:

第三张图片

所以我将 512 从十进制转换为十六进制,它是 200,但是第二张图片中没有类似的 200。

第二张图片中的 4080000000000000 是什么以及它如何等于 512 ?

0 投票
0 回答
425 浏览

c# - 如何在我的游戏教练作弊程序中使用像 CTRL+F1 这样的热键乘数?

我几乎不会被认为对我现在正在做的任何事情都很了解,所以我很感激你的帮助......

我目前正在开发 C# Steam 游戏培训师,我希望在这里能够做的是将当前的热键设置替换为允许用户按下多个按钮的组合的热键来激活,而不是仅限于激活单个密钥。

当我在教练的下拉框中输入数字时遇到问题,但是当我按下数字键时不会输入数字键,因为此热键设置仅将其限制为教练中其他东西的特定功能. 我认为这可能与当前热键代码不允许分配的任何按钮在训练器中指定的过程以外的任何其他东西上工作的方式有关(?)

如果可能的话,我将如何实施一个替代热键系统,该系统不限制仅分配给进程的按钮的使用,(我的意思是,除了trainer 当它打开时),我将如何使它成为一个通过按 2 个键而不是 1 个键的组合来工作的倍增器,例如 CTRL+F1、ALT+1、SHIFT+F1?这是我正在研究的培训师的代码:

谢谢!

0 投票
1 回答
2472 浏览

python - 如何使用 MODULEENTRY32 获取进程的基地址?

我想在这个例子中做点什么:Python - How to get the start/base address of a process? . 我和那个话题中的人有同样的问题,因为指针作弊引擎提供的是参考进程本身的基地址。

我环顾四周,看起来最好的解决方案是使用 ctypes 和 MODULEENTRY32 来存储进程的快照并分析它们的 modBaseAddr。

这是我当前的代码

现在我对内存的理解并不是最好的,但我认为在程序运行时基地址应该是静态的。当我运行这段代码时,每次运行时我得到的 ModBaseAddr 都会发生变化。我遇到的另一个奇怪的问题是,如果没有该 print ProcId 语句,运行程序会从第 41 行返回 ERROR_ACCESS_DENIED(错误 5)(这与我假设的 CreateToolhelp32Snapshot 函数有关,因为我在计算机上拥有管理员权限)。但是,使用 print 语句,程序每次都会运行给我一个不同的 ModBaseAddr。如果我手动输入 GetBaseAddr 函数 ProcessId 它也可以在没有打印语句的情况下工作,但是,它每次都会给我一个随机地址。如果有人可以为我提供任何帮助或为我指明正确的方向,我

0 投票
1 回答
1871 浏览

vb.net - 使用带有指针 VB 的 CheatEngine 值读取/WriteProcessMemory

我正在使用 Cheat Engine 获取地址以在应用程序中编辑某些内容。但是,在使用 Read/WriteProcessMemory 和 Visual Basic 将值放入 Visual Studio 时,我似乎做错了。

图片

这是我在作弊引擎中得到的值。现在如何翻译这些信息并使用 ReadProcessMemory 来获取值?

这是我的代码,它不起作用并给出不同的值:

0 投票
1 回答
3751 浏览

c++ - 如何获取进程中使用的 .DLL 的(物理)基地址?

我最近开始了一个新的 c++ win32 控制台项目。它基本上重写了内存中给定地址的值。

关键是,我希望它使用带有偏移量的指针映射来重新计算它应该使用的地址。 是 Cheat Engine 中指针映射的图像。

正如我所说,如果我只输入地址,我会设法手动重写值(在这种情况下为 1147),但我希望它是自动的!希望你能理解我的问题

祝你今天过得愉快。

0 投票
2 回答
187 浏览

c++ - 指向结构指针数组的指针

我什至没有一个问题,我认为这是某种确认,我正确理解了这个主题。
我正在做一些逆向工程研究,这就是我所拥有的。假设我们有结构/类,如下所示:

在我们正在查看的进程的内存中,我们有一个这些结构的数组。

所以,我所拥有的是指向结构指针数组的指针。
如果我错了,现在请你纠正我。要读取该数组第一个元素的 x 值(实际结构,而不是指针),我必须按照以下步骤操作:

  1. 读取指针指向的值(4 个字节)。
  2. 没有任何偏移,读取先前读取的值指向的值,也是 4 个字节(这将引导我到结构开始的地址)
  3. 现在我必须将偏移量添加到等于 n 的值上。并从步骤 2 (step2result+n+1) 的地址中读取值。

我对吗?我会得到第一个结构包含的实际 X 吗?要从第二个获取 X 值,我只需在 step2 中添加偏移量(+4 个字节)?

我认为我做对了,但实际上我无法从指针中访问结构。我会说,指向数组的指针是 100% 正确的。

感谢阅读,期待答案。如果您需要更多信息,请询问。

ps 没有任何东西被破解或任何东西只是为了教育目的

补充:
好的,我试图简化它只是让解释和理解变得更加困难。现在我要尝试修复它。
一种结构描述了游戏中的 NPC 参数。整个结构的大小为 0x1200。前 16 个字节只是 ID 信息,然后在这个信息变成 64 个字节的字符串之后,就是名称。然后去坐标 X/Y/Z。这些之后的一切都无关紧要。
它并不难找到,这是一个屏幕截图:
结构体 /
所以我可以通过在该结构开始的地址上添加或减去 0x1200 来找到其他结构。
我搜索了结构开始的地址并找到了指向该地址的指针。然后我扫描了对找到的指针的访问并得到了类似的东西:

然后我搜索该eax值并找到指向的指针这eax
就是为什么我认为这是指针数组的原因。
希望我只是更具体地解释了这一点。

0 投票
1 回答
1558 浏览

c++ - (C++ 内存编辑)将“THREADSTACK0”转换为地址

我在作弊引擎中获得了一个指向地址的指针,当我试图将它移植到 c++ 中为其设置热键时,我遇到了一个问题。作弊引擎告诉我"THREADSTACK0"-000009C0(和一些偏移量)指向我的地址,但我不知道如何获取"THREADSTACK0"-000009C0. 请记住,我是 C++ 新手,所以不要让我信息过多。在此先感谢您的帮助!

0 投票
3 回答
524 浏览

c# - C#打开表单并同时运行函数

我正在尝试为游戏编写内存作弊代码,但我想创建一个菜单,所以我决定制作它。现在我希望我的程序同时打开表单并进行作弊。因为现在作弊正在这样做,否则作弊不起作用并且表格正在打开。我是 C# 的新手,如果我是菜鸟,我很抱歉......:P

谢谢,伊兹米歇尔

0 投票
1 回答
189 浏览

c# - 选中复选框时C#程序崩溃

我为游戏编写了一个作弊代码,但我想创建一个菜单,我就是这样做的。如果选中复选框,请执行 while (checkbox.checked)。所以我开始测试我的程序,由于某些原因,当我选中复选框时我的程序崩溃了。有谁能够帮助我?

伊兹米歇尔