有什么工具是电子阳痿的根源,可以快速消耗一个游戏的游玩寿命?
又是什么工具让人欲罢不能,"将游戏最后一滴价值榨出来".
很多人的答案都会是——风灵月影。
但是今天不是从修改器的选择出发,而是分析修改器背后的原理(我也要当风灵月影宗长老)
对于单机游戏而言,游戏中绝大部分的参数(比如血、蓝、能量亦或是金币)都存储在计算机的堆栈中,一些类似剧情进度的则加密后写入本地的自定义配置文件中,一些防护性强大的游戏为了避免玩家作弊,会在上述的步骤中设置加密,来保证玩家的用户体验(或者纯纯为了恶心玩家)。
数据类型:游戏中的血量、蓝、生命值等,我们将他们称之为变量,变量位于内存中,包含了变量名称和数据类型,如果可以找到对应变量在内存中的地址,就可以将其修改并得到想要的数值。
进程:每一个应用程序/游戏启动,都会产生至少一个进程Process,在任务管理器里可以看到进程名称和进程PID,大家在修改器界面可以看到这个进程。
句柄:英文HANDLE,一个整数值。数据的地址需要变动,变动以后就需要有人来记录管理变动,就好像户籍管理一样,因此系统用句柄来记载数据地址的变更
进入正题,我们该怎么找到需要修改的变量的地址呢?一般要参考一下路线:
修改变量的数值→找到存储变量的内存地址→找到游戏窗口的句柄→找到游戏的进程。
这里给出一个获得内存地址的思路,Windows系统库的kernel32.dll库文件中包含了内存操作的API,其中VirtualQueryEx用于查询地址空间中内存地址的信息。
上篇先了解一下常用到的名词和API的运用。具体如何利用代码进一步调用API,以及更详细的剖析每一步的逻辑,留在中篇和下篇继续写吧(立个flag吧)
又是什么工具让人欲罢不能,"将游戏最后一滴价值榨出来".
很多人的答案都会是——风灵月影。
但是今天不是从修改器的选择出发,而是分析修改器背后的原理(我也要当风灵月影宗长老)
对于单机游戏而言,游戏中绝大部分的参数(比如血、蓝、能量亦或是金币)都存储在计算机的堆栈中,一些类似剧情进度的则加密后写入本地的自定义配置文件中,一些防护性强大的游戏为了避免玩家作弊,会在上述的步骤中设置加密,来保证玩家的用户体验(或者纯纯为了恶心玩家)。
数据类型:游戏中的血量、蓝、生命值等,我们将他们称之为变量,变量位于内存中,包含了变量名称和数据类型,如果可以找到对应变量在内存中的地址,就可以将其修改并得到想要的数值。
进程:每一个应用程序/游戏启动,都会产生至少一个进程Process,在任务管理器里可以看到进程名称和进程PID,大家在修改器界面可以看到这个进程。
句柄:英文HANDLE,一个整数值。数据的地址需要变动,变动以后就需要有人来记录管理变动,就好像户籍管理一样,因此系统用句柄来记载数据地址的变更
进入正题,我们该怎么找到需要修改的变量的地址呢?一般要参考一下路线:
修改变量的数值→找到存储变量的内存地址→找到游戏窗口的句柄→找到游戏的进程。
这里给出一个获得内存地址的思路,Windows系统库的kernel32.dll库文件中包含了内存操作的API,其中VirtualQueryEx用于查询地址空间中内存地址的信息。
上篇先了解一下常用到的名词和API的运用。具体如何利用代码进一步调用API,以及更详细的剖析每一步的逻辑,留在中篇和下篇继续写吧(立个flag吧)
防水图
精彩评论