我是新来张贴在这些论坛上,但多次来到这里为我的编程帮助需求,并且通常能够很容易地找到我的答案,但我担心我可能会提出错误的问题或者很明显,我只是看不到它,但这是我的问题。.Net C#ReadProcessMemory指针函数向后返回地址
我正在为Quake制作我的第一个教练,我以为我会从一个容易找到指针的游戏开始,而不是通常具有2+级指针的其他游戏。所以我通过Cheat引擎通过Quake并抓取我需要的所有指针,使我的GUI等,但有一个问题。我读了我的第一个指针,它返回我需要向后地址:/
例子:
这里是我的指针,我是从阅读 - 006C5214
时读它给了我这个地址 - 02BFD940
然后,我将偏移量48C添加到上面的地址,该地址指向包含我需要的值的02BFDDCC。
当我看到我的指针与ReadProcessMemory我得到正确的地址,除了它的倒退(端?)
我需要02BFD940 我得到40D9BF02
我用尽了一切我能想到的前后翻页该命令并将其返回到IntPtr中,以便在我的ReadProcessMemory/WriteProcessMemory中使用。我可以按照我想要的顺序翻转它,因为我的ReadProcessMemory给出了我的地址,如40-D9-BF-02,它很容易用Split(' - ')切成一个数组;
唯一的问题是,我完成分裂和重新排序后,我想要的方式是我无法设法将其转换回IntPtr用于我的读写记忆功能。
我一直使用作弊引擎或反汇编程序编辑内存。这是我第一次尝试一个完全有效的教练,任何对我的问题的帮助将非常感激。我已经尝试在我的BitConverter上设置endian布尔值,但它是只读的:/
如果我完全错过了一些东西,它就在我的面前,随时可以打电话给我,并给我一记耳光头xD我不介意。
-P.S.你们家的论坛真棒。
看来你相反的字节序获取数据,如您怀疑。一个简单的'Array.Reverse(byte [4]')应该可以做到。 – leppie
哦,这可能对未来有所帮助,谢谢。 – Tsproggy