gpt4 book ai didi

c# - .Net C# ReadProcessMemory 指针函数向后返回地址

转载 作者:行者123 更新时间:2023-11-30 22:35:59 25 4
gpt4 key购买 nike

我刚开始在这些论坛上发帖,但是为了我的编程帮助需要多次来到这里,并且通常能够很容易地找到我的答案,但我担心我可能会问错误的问题,或者可能是非常明显,我只是没有看到它,但这是我的问题。

我正在为 Quake 创建我的第一个训练器,我想我会从一个容易找到指针的游戏开始,而不是我的其他游戏通常有 2+ 级指针。所以我用 Cheat Engine 通过 Quake 并获取我需要的所有指针,制作我的 gui 等但是有一个问题。我读了我的第一个指针,它向后返回了我需要的地址:/

例子:

这是我正在阅读的指针 - 006C5214

当我阅读它时,它给了我这个地址 - 02BFD940

然后我将我的偏移量 48C 添加到我上面的地址,它将我定向到包含我需要的值的 02BFDDCC。

当我用 ReadProcessMemory 读取我的指针时,我得到了正确的地址,除了它是倒序的(endian?)

我需要 02BFD940我得到 40D9BF02

我已经尝试了所有我能想到的方法来翻转顺序并将其返回到 IntPtr 中以便在我的 ReadProcessMemory/WriteProcessMemory 中使用。我能够按照我想要的顺序翻转它,因为我的 ReadProcessMemory 提供了我的地址,如 40-D9-BF-02,它很容易被分割成一个数组 Split('-');

唯一的问题是,在我按照我想要的方式完成拆分和重新排序后,我无法设法将它转换回 IntPtr 以用于我的读写内存功能。

我一直使用 Cheat Engine 或反汇编程序来完成我的内存编辑工作。这是我第一次尝试成为一名全面工作的培训师,如果对我的问题有任何帮助,我们将不胜感激。我试过在我的 BitConverter 上设置字节序 bool 值,但它是只读的:/

如果我完全遗漏了某些东西,而它就在我面前,请随时告诉我并拍拍我的脑袋 xD 我不介意。

-附言你们的论坛很棒。

最佳答案

尝试

    byte[] buffer = new byte[4];
int bytesread;

ReadProcessMemory(hProcess, dwAddress, buffer, 4, out bytesread);

IntPtr P = new IntPtr (BitConverter.ToInt32(buffer, 0));

关于c# - .Net C# ReadProcessMemory 指针函数向后返回地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com