我下载了一个单机游戏(模拟器nes),导弹坦克(相信有童年的人都玩过吧),然后我用CE查到了这个游戏的关数基址
然后我用WriteProcessMemory修改他的内存,把导弹坦克的关数跳到了指定的关数,实现了外挂功能
但是   当我下一次打开该游戏的时候,发现不能实现该功能了,后来才发现,基址变了!!!,
那这样每次打开都会变基址,写外挂就不成功了,请问我应该怎样才能实现不让基址变化??
有谁教教吗

解决方案 »

  1.   

    它的变量不是static public的全局变量。而是new出的.所以内存地址不固定。
      

  2.   

    你确认你找的地址对么?
    就是在游戏中 发现它用绝对地址  比如:  mov dword ptr  [XXXXXXX] , eax    ;第几关 
    你找的地址就是 XXXXXXX
    如果是,你看看当前地址是否是模块地址,  如果是模块地址,你要把用(XXXXXX-模块基址)  得到偏移
    以后打开游戏后,就得用这个模块的基址+上这个偏移