我正在寻找一种方法将指针地址从作弊引擎传递到一行代码。
作弊引擎地址为P-> 0C86D240。
代码行如下:
WriteProcessMemory(handle,(LPVOID)P->0C86D240,).
最后我想改变指针地址的值。
更新:我将P->更改为0x0C86D240,我能够为游戏的THAT会话写入内存。当关闭然后再次打开时,十六进制数字是不同的
Cheat Engine中的P->0C86D240
意味着该条目是一串指针,最终解析为地址0x0C86D240
。如果在Cheat Engine中双击此部件,您将看到一个弹出对话框,显示此指针链的组成部分。例如,让我们调用起始指针P0
和一系列名为offset0, offset1, offset2, ...
的偏移量。指针链是取地址P0 + offset0
的值,使用它作为你的下一个指针P1
,然后取地址P1 + offset1
的值,用它作为你的下一个指针P2
...这个链最终会给你地址0C86D240
。如果你重置你的游戏,你希望你的P0
不会改变,但之后的一切都将动态改变(即P1, P2, P3,
......)并一直追踪到所需的值。
如果你知道指针链是如何工作的,那么将它转换为C ++是微不足道的。您只需要记下基本指针和所有偏移(如弹出对话框中双击P->0C86D240
部分所示。)然后,向下追踪直到您用完所有偏移值。
第1步:使用作弊引擎搜索您想要更改的值。
第2步:如果找到了正确的地址,请右键单击它并对该地址进行指针扫描。现在你应该得到许多具有一些偏移量的基地址。
步骤3:关闭游戏并重复步骤1.现在复制新地址并单击重新扫描指针扫描(在步骤2中打开的窗口中)。在重新扫描地址字段中粘贴新地址并重新扫描。那么你应该只获得正确的基地址+偏移量。
第4步:总是找到正确的地址:readprocessmemory(baseaddress + offset)
所有的拳头我无法弄清楚P->意味着什么可能删除它并使值为十六进制的0x
当关闭然后再次打开时,十六进制数字是不同的
如果我错了,我想你正在谈论游戏然后不继续阅读
所以你从作弊引擎获得的地址可能是动态的,这意味着每次你关闭或打开它时该值会改变意义,程序将被分配到内存中的另一个位置
那你该怎么办.....
你可以找到静态地址这个过程有点复杂我会建议你看一个教程https://www.youtube.com/watch?v=hfWOAFsYnFA
该程序内置的作弊引擎教程涵盖了多级指针。先做你的工作。如果已找到指针,则表示您正在寻找的地址:一个静态地址,指向包含您要修改的值的地址。