一个进程中数据的虚拟内存地址为什么老变?
本人要写一个程序监测app.exe程序的某个数值变化,如果App.exe的被监测的这个值大于“500”我的程序就开始动作,如果app.exe这个值是小于“500”,我的程序也停止动作。
app.exe以前的版本我用FPE,金山游侠,查找到app.exe进程中存放被监测值得地址,&H007FDAC8.
但是近期,App.exe改版了。被监测内存地址发生了变化,我再用FPE或者金山游侠无法使用常规方法即:当被搜索的值发生变化呼出FPE查询筛选,直到确定内存地址,然后修改数据。原因是目标内存地址老变,如: 属性值是567,假设查找第一遍就找到了唯一的内存地址与之对应&H007FDAC8 然是返回app.exe。,立刻再呼出FPE观察, 以前的内存地址的&H007FDAC8里面的值已经不是存放着567了,通过内存浏览,发现以前的567跑到&H007FFA32,返回App.exe,立刻再呼出FPE观察,发现存放567的数值又跑了,跑到&H0080FA34。。。。。这样无限制的乱跑下去,每次新建查询任务,查找567都能找到,但是每次找到567的内存地址都在变。。。。
想请问各位,谁遇到这样的问题?这样类型进程的怎么锁定我想查找的值?他为什么老变?难道真的没法用ReadProcessMemory取值了么?