. net c# ReadProcessMemory指针函数向后返回地址
本文关键字:返回 地址 函数 ReadProcessMemory 指针 net | 更新日期: 2023-09-27 18:06:38
我是新的张贴在这些论坛,但已经来到这里多次为我的编程帮助的需要,通常能够找到我的答案相当容易,但我担心我可能会问错误的问题,或者也许它是非常明显的,我只是没有看到它,但这里是我的问题。
我正在为《雷神之锤》制作我的第一个训练器,我想我应该从一个容易找到指针的小游戏开始,而不是我的其他游戏,通常有2个以上的关卡指针。所以我使用欺骗引擎去体验《雷神之锤》并获取所有我需要的指针,制作我的gui等等,但是有一个问题。我读取了第一个指针,它返回了我需要的地址:/
的例子:
这是我的指针,我正在读取- 006C5214
当读取时,它给我这个地址- 02BFD940
然后我将我的偏移量48C添加到上面的地址,这将我定向到包含我需要的值的02BFDDCC。
当我用ReadProcessMemory读取指针时,我得到了正确的地址,除了它是向后的(端序?)
我需要02BFD940得到40D9BF02
我已经尝试了我能想到的一切来翻转顺序并将其返回到我的ReadProcessMemory/WriteProcessMemory中使用的IntPtr。我可以按我想要的顺序翻转它,因为我的ReadProcessMemory给出了我的地址,如40-D9-BF-02,这很容易被分割成一个数组,Split('-');
唯一的问题是,在我完成分割和重新排序之后,我想要的方式是没有办法我可以设法将它转换回IntPtr用于我的读写内存函数。
我总是用作弊引擎或反汇编器来做我的内存编辑。这是我第一次尝试在一个全面的工作培训师,任何帮助我的问题将非常感激。我试过在我的BitConverter上设置尾端布尔值,但它是只读的:/
如果我完全错过了什么,而它就在我面前,请随时叫我出来,给我一巴掌的头xD我不介意。
的留言。你们的论坛太棒了
try
byte[] buffer = new byte[4];
int bytesread;
ReadProcessMemory(hProcess, dwAddress, buffer, 4, out bytesread);
IntPtr P = new IntPtr (BitConverter.ToInt32(buffer, 0));