每次启动游戏 内存地址都会改变
ReadProcessMemory函数 我可以正确使用并且正常读取到地址上的值
可是内存地址每次都随游戏的启动而改变 
比如MP地址 204F460 1B0F460 1B0F440 1A3F460 1A3F440 205F440 203F440 205F440 1B1F460
以上是随机到的地址
怎么才能固定下来呢?
我知道用什么调试工具 中断这个地址 找出地址源 就可以轻松解决
可是怎么实现呢  有高手给我讲讲吗?
谢谢了~

解决方案 »

  1.   

    随即的地址一般都是这样的,一个固定数和一个很小的变化的数相加,得到的和作为新的地址使用,只需要把那个变化的数保存到一个固定的地方然后再读出来就可以了使用这个调试工具Ollydbg找到那个随即的地址,在读写这个地址的地方添加一个中断,用writeProcessMemory在这里写上一些汇编代码,添加一个跳转指令,调到程序的空白地方(程序中有很多这样的空白)。在空白的地方写入一些汇编代码把要保存的数据进行保存(同样在数据区找一个空白的地方),然后在跳回到原来的地方继续执行就可以了。具体参看
    http://dev.csdn.net/Develop/article/16%5C16959.shtm