问题标签 [memory-editing]

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 回答
620 浏览

memory-management - 应用程序如何拥有静态内存地址?

我正在使用称为作弊引擎的内存编辑应用程序。我将作弊引擎附加到游戏中。在我的游戏中,我有一个称为 HP 的 32 位整数。HP 存储在内存地址 A。如果我重新启动游戏,HP 将存储在新的内存地址 B。似乎使用 Cheat Engine,我可以进行指针扫描并找到一个静态内存地址 C,它始终存储该会话期间 HP 的内存地址。因此,如果我取消对 C 的引用,我总是会得到存储 HP 的内存地址。如何始终保证 C 始终是相同的内存地址?如果另一个应用程序启动并占用该内存区域怎么办?

0 投票
1 回答
1266 浏览

windows - 指针偏移量有什么好处?

我正在使用称为作弊引擎的内存编辑应用程序。我将作弊引擎附加到游戏中。在我的游戏中,我有一个称为 HP 的 32 位整数。HP 存储在内存地址 A。如果我重新启动游戏,HP 将存储在新的内存地址 B。似乎使用 Cheat Engine,我可以进行指针扫描并找到一个静态内存地址 C,它指向另一个内存地址及其附带的偏移量 D 和偏移量,因此 [D + offset] 在该会话期间始终存储 HP 的内存地址。因此,如果我取消引用 [D + offset],我总是会得到存储 HP 的内存地址。

这是一个图表:

A 或 B --> 生命值

D + 偏移 --> A 或 B

C --> D

使用偏移量有什么好处?为什么 C 不能直接指向 A 或 B?我熟悉在 C 语言中处理数组时使用偏移量是有益的。这是否意味着每当我看到指针的偏移量时,指针都指向数组中的第一个元素,而偏移量指的是数组中的一个元素?

0 投票
1 回答
1892 浏览

c++ - DLL 注入的最佳实践?

假设我想将一个 DLL 注入一个想要每 250 毫秒编辑一次地址 A 的值的进程。我需要使用 DllMain,对吗?问题是我不允许在 DllMain 内等待。所以我必须创建一个线程?还是没有绕过限制?我该怎么做呢?

此外,使用 DLL 注入来编辑应用程序的内存比使用 EXE 有什么好处吗?

另外,CreateThread 中的堆栈大小应该是多少?如果它太小或太大怎么办?我怎么知道我需要多少?

0 投票
2 回答
468 浏览

c++ - 取消引用双级指针会导致与取消引用单级指针不同的行为

版本 1:

版本 2:

版本 1 工作正常,但版本 2 似乎没有。我不明白为什么版本 2 坏了。取消引用双级指针与取消引用单级指针不是一回事吗,即它在指针包含的内存地址处获取值?

我将如何编写一个将 n 级指针作为输入的函数,并通过取消对 n 级指针 n-1 次的引用来返回一个 1 级指针?

0 投票
2 回答
2100 浏览

c - 用偏移量取消引用多级指针的最简洁方法是什么?

我目前正在记忆编辑一款名为 Assault Cube 的游戏。不幸的是,由于动态内存分配,每次游戏开始时,我要编辑的值的地址都会发生变化。幸运的是,有些静态指针总是指向动态地址。使用作弊引擎,我可以找到指针,但它们有时会达到 8 级。而不是********pointer每次都做,我宁愿做:*pointer. 最重要的是,它们有偏移量,因此对它们进行硬编码将是一场噩梦。

相反,我正在使用此功能:

但它非常混乱,我将 int* 转换为 int** ,反之亦然,这被认为是不好的做法。有什么我可以做的不会导致不良做法的事情吗?我也在网上找到了这个:

我认为这比我写的更难看。我不建议你阅读它,除非你想偏头痛。

0 投票
1 回答
2928 浏览

c++ - 如何在 C++ 中编辑操作码或写入内存或编辑字节?

我正在记忆编辑一个名为 Assault Cube 的游戏,可以在以下位置找到:http ://assault.cubers.net/

我不知道如何描述它,所以我制作了一个视频:www.youtube.com/watch ?v=SS1swxQIbDI

请注意,我的弹药在编辑之前就已失效。编辑后,弹药保持不变。基本上,在 0x45B75F,我需要插入两个 NOP。

我在互联网上找到了以下内容:

1.

所以我试着做:

但我得到这个错误:error C2109: subscript requires array or pointer type

2.

我宁愿不使用 memcpy 或任何方法。

3.

同样,我宁愿不使用方法。

4.

以上给了我这些错误:

5.

这会导致崩溃。

0 投票
1 回答
2812 浏览

c# - MemorySharp 设置偏移到地址不起作用

好的,所以我正在使用该MemorySharp库来读取/写入游戏的内存。我的问题是当我尝试将偏移量添加到基指针地址时,Visual Studio 在运行时抛出错误。这是基本代码

这是我的GetBaseAddress方法

但是当我运行这个 Visual Studios 时会抛出这个错误

“MemorySharp.dll 中发生‘System.ArgumentOutOfRangeException’类型的未处理异常附加信息:相对地址不能大于主模块大小。”

它指向这行代码healthPtr = m[healthPtr + offset].Read<IntPtr>(); 不太确定我在这里做错了什么。

编辑
这是我的更新代码,但仍然无法正常工作

发现编辑答案
我必须将最终指针读取为我想要的类型。所以只有2个指针我读取第一个指针然后在最后一个读取它作为值像这样

0 投票
1 回答
212 浏览

java - 可以从内存中读取特定类型吗?

使用 JNA,我已经弄清楚如何读取/写入地址,但我不确定如何弄清楚它是什么类型的数据,例如

我正在使用第三方内存查看器来查找这些值,以便我可以针对我的程序测试结果。

上面的两个地址包含 4 个整数,易于搜索,只需扫描每 4 个字节并将其转换为整数,但如果我有以下地址,则变得更加棘手

只是为了证明我的观点,它们与上述地址完全相同,但它们不是整数,它们是多头

它也可以存储 4 个短 8 个字节或类型的组合。

是否可以检测到值类型是什么并使用 JNA 读取正确的值?

读取内存的代码片段

0 投票
0 回答
1068 浏览

c - How to edit another applications memory in C (Bypassing Protected mode)?

I want to know how to bypass protected mode in Windows 8.1, so that my C programs can access the memory of other applications and change their values...I know it can be done because I used to use memory editors to hack games; I just want to build one myself. Below is just a basic program that I threw together just to see if I could write a program that could simulate such an action. It works; of course the problem is that because of protected mode it will crash if I try to access memory outside the scope of the program.

0 投票
2 回答
4552 浏览

c# - C# - 字节数组到十六进制字符串

我正在为《现代战争 2》制作培训师。我遇到的问题是将十六进制转换为字符串,我对此很陌生,但在尝试任何事情之前我都会环顾四周。在发布这个问题之前,我也环顾四周。这是我的代码:

我得到的返回值是:330400000100100100000000000000

但我需要它来返回这个:110000100000433

有什么建议么?