游戏内存修改器是什么原理?

查看 140|回复 10
作者:pennai   
使用过 cheat engine 这种比较通用的内存修改器,貌似是通过数值变化(你的钱从 500 变到 300 ,游戏进程内存刚好有 500 变到 300 的变量)来知道某个指标(金钱、生命)存储在哪个内存地址。
但是对于特定游戏的修改器,如风灵月影这种,似乎不需要通过数值变化,就能知道金钱变量存储在哪个地址(相对地址,进程空间内)?我理解进程很多内存空间都是动态分配与释放的,某个变量固定在某个相对地址不太可能?

变量, 内存, 地址, 进程

mokeyjay   
基址了解一下
pennai
OP
  
@mokeyjay 我知道进程有基址,我的意思是一个进程里的变量相对于基址的相对地址也不会是固定的
wangritian   
进程都是从 0 开始的相对地址,实际物理地址是操作系统和硬件一起管理;分配到栈空间的变量相对地址固定,比如全局变量、函数内静态变量,角色属性多半是这种;堆空间虽然是动态分配,也可以找到某个定值的地址再通过固定的偏移找到目标变量吧
kokutou   
@pennai
cheat engine 自带教程做完你就懂了。
riggzh   
@pennai 大部分游戏都是固定的。
kokutou   
基址 偏移 指针 特征
icy37785   
@pennai #2 实际上绝大多数情况下都是固定的。
mingl0280   
风灵月影是人家找好了地址特征码的,当然不需要扫了,CE 的 Cheat Table 也是一个原理。
crab   
相对地址,比如获取模块地址再加偏移。再智能点直接动态特征码搜索匹配。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部