什么是游戏基址?
游戏基址是保持恒定的两部分内存地址的一部分并提供一个基准点,从这里可以计算一个字节数据的位置。基址伴随着一个加到基上的偏移值来确定信息准确的位置(绝对地址)。
全局基址 一级基址 二级基址 三级基址的关系:
第一步、计算机内存一般分为四级存储。(印象里好像是四级)。
第二步、在最底下的,往往是游戏的全局基址(决定用户界面以及一些细节等)和一些响应用户操作而对应实施的命令。
第三步、该是传递基址了。现在网游的基址往往是动态的。这个是因为底层的基址不会直接传递给上一级内存。它会加上一个偏移量,然后再传递。这个传递就是指针了。
第四步、当传递到第四层的时候,就会表现在游戏的用户界面。
"----->"表示"指针指向"
基址(存放的内容是一级基址起始地址)——>一级基址(存放的内容是二级基址的起始地址:假定为a)
[一级基址(a) + 偏移量]------>二级基址(存放的内容是三级基址的起始地址:假定为b);
[二级基址(b)+偏移量]-------->三级基址
三级基址-------->游戏界面
自己制作游戏修改器必须要找到一级基址
注意:对于单机游戏 ,游戏基址是不变的。对网络游戏, 更新时可能会变。(因此才会有游戏更新后,某外挂不可以使用。其本质可能是基址改变的。)
另外,所谓的游戏的基址存在于虚拟内存中,比如基址为0x006A9EC0。
问题:基址无非就是一块内存,同时基址又不可以改变,如果计算机中该块内存被占用了,然后再安装基址为0x006A9EC0的游戏,此时会不会写入失败,造成无法安装呢?
解析:不会,基址0x006A9EC0是虚拟内存,会经过页面地址重地位,将虚拟地址转换成本机的物理地址,即不存在地址冲突问题。即使十个游戏的基址都是0x006A9EC0都不会存在冲突问题。
了解基址后,接下来看看如何寻找游戏基址。
工具:Cheat Engine (内存修改器)或Ollydbg。本实例用CE。。。。
例子:植物大战僵尸--英文原版
说明:利用阳光值,来一步一步深入寻找游戏基址。因为阳光值可以看到,可以改变。也可以通过金币等其他方式。
首先,打开游戏和CE工具,将游戏的进程加载进CE工具中。
将当前游戏的阳光值,填入搜索数值中,此时发现出现很多值。
注意:在CE工具中,绿色代表静态地址,红色代表上一次操作改变的地址,黑色代表动态地址但上一次操作没有改变。而要找的基址就是静态基址。
返回游戏,种植植物或摄取阳光,改变阳光值,再一次输入到搜索框中,点击“再次扫描”。此时发现只有一个值。(可能也会很多值,可以进行反复改)
那么问题来了,这个值到底是不是代表阳光的地址呢?
将搜索到值双击或点旁边的红色箭头,将值加载到下方的框中,双击数值,将会出现下图,然后进行修改,再观察游戏的阳光值是否被改变。如何改变了,说明已找对了。(当然,在寻找到多个值的时候也可以进行其中的某些值修改,从而排除一些可能。)
右击该值,选中“找出是什么访问了这个地址”或是“找出是什么改写了这个地址”,注意:如果点击了“找出是什么改写了这个地址”,进去是空白的,此时要返回游戏,改变阳光值,才会出其他数值。因此当时游戏处于暂停状态,没有数据写入。
进去后,可能有多个值进行了访问或只有一个。记住,只找含有 “mov”的指令,同时从上到下找第一个(CE工具会推荐可能性最大的在前面)。
双击进去,看到如下的框。mov eax,[esi+00005560],
意思是将[esi+00005560]中代表的值移动到eax中,而十六进制的00005560就是偏移量,记录。esi的值可以在下方看到,但是下一个目标就是esi从哪里来?由哪个地址+多少偏移量等到的?
好了,离基址更近一步了。将esi的值复制到搜索值中(第一步),注意:记得将Hex打上勾勾,代表以十六进制进行搜索。点击“新的扫描”。
此时,是不是有点小崩溃?好多值,都是看不懂的。不急,记住:CE工具是好工具,一般将可能性最大的放在前面。可以先将第一个进行改变,试探。(一般都是在前5个)。同理,将前5个放入下方的框中。
然后,一个个依次右击该值,选中“找出是什么访问了这个地址”或是“找出是什么改写了这个地址”。注意:要时不时返回游戏玩一玩,更新下数据。当然,必要时要将游戏返回主菜单(即登陆窗口,但不要退出游戏,否则之前的地址都会改变,要重新弄)
如何判断是否找到的呢?
一定要找mov指令,同时观察第一个就可以了。
见下图。
注意没,mov eax,[ebp+14] ,其中将ebp+14得到eax,但是eax=00189288,如果eax就是之前找到的esi,那么是不是应该两者一致的呢?所以,第一个不是要找的。同理进行下一个。
下一个查找。。。。。。。
同样,点击第一个mov指令,此时惊不惊喜,意不意外?
mov esi , [edi+00000768],而esi= 16AB6F18,与之前的一样。对,就是它,偏移量为768,记录。在下方框中的其他多余值,可以删除。保留有用的。
查找下一个值。edi= 02179E80。
是不是很激动,找了那么久,终于看到绿色的值了(静态地址)
同理,将他们加入到下方的框中,进行一个个的排除。
看到了没?mov ecx,[pvz.exe+ 002A9EC0],pvz.exe是不是进程,不是寄存器,找不下去了。说明002A9EC02就是基址?
那么问题又来了,在第二框看到mov ecx[006A9EC0],但是点击进去却是002A9EC02,为什么?(本人不知道,试过很多次还是一样)
是不是有点难以置信,下面就来验证一下。。。(无论是否出现上面的情况,这验证都要进行,可以确保所找的基址准确性)
验证就是利用所找到的基址,加上之前找到的偏移量,阳光地址=基址+偏移量,那么最终的地址一定是阳光地址,否则基址错误。
第一情况:基址: 002A9EC0 偏移量:768 5560
通过手动添加地址,可以看到基址: 002A9EC0根本不存在的,直接废除。
第二情况:基址: 006A9EC0 偏移量:768 5560
地址是存在,是可用的 。不像上面情况如此。。。
再点击确定,把它放到下方的框中,然后修改它的值,看看游戏中的阳光值有没有改变。。。。
看到了木有。。。。
验证成功了。通过修改其值可以直接改变阳光值。。同时也说明了真正的基址: 006A9EC0,偏移量:768,5560。。。。。。。。。。。
验证成功了。通过修改其值可以直接改变阳光值。。同时也说明了真正的基址: 006A9EC0,偏移量:768,5560。。。。。。。。。。。
验证成功了。通过修改其值可以直接改变阳光值。。同时也说明了真正的基址: 006A9EC0,偏移量:768,5560。。。。。。。。。。。
同理,也可以通过金币,冷却时间,植物等其他标志去寻找基址。方法一样。。。
最后,推荐一个视频,可以看到实操。。。。。。。
推荐视频:http://www.iqiyi.com/w_19rt636lht.html?fromvsogou=1
相关推荐
总的来说,寻找游戏基址是逆向工程的一部分,涉及到对内存布局的理解和对CE等工具的熟练运用。虽然这个过程可能复杂,但对于想要深入学习游戏编程和调试的初学者来说,是一个很好的实践机会。需要注意的是,使用这类...
《使用CE寻找游戏内存基址教程》 CE( Cheat Engine,作弊引擎)是一款广泛用于游戏修改的工具,它允许玩家查找并修改游戏内存中的特定数值,以实现各种自定义效果。在某些情况下,游戏中的数据地址会在退出后发生...
本文详细介绍了一种利用CE与OD结合的方式寻找游戏内存中背包数组的方法。首先介绍了CE与OD的基本概念,接着逐步指导如何通过修改背包物品数量来定位到相关的内存地址,并解释了不同数据类型搜索的重要性。最终目标是...
本文旨在详细介绍使用OllyDbg (OD) 和 Cheat Engine (CE) 这两种工具寻找程序基址的多种方法。这些技巧对于进行逆向工程、调试和修改游戏等场景非常有用。下面我们将逐一解析文中提到的每个步骤及其背后的原理。 ##...
例如,在游戏中寻找玩家生命值的基址,可以实现无限生命的效果。 三、CE的内存扫描 1. 隐蔽扫描:CE提供多种扫描类型,包括“模糊扫描”、“地址扫描”和“指针扫描”。模糊扫描允许用户根据已知的数据范围或特征...
《利用CE5.6指针寻找网游的1级内存基址》是一份针对游戏爱好者和逆向工程初学者的专业教程,旨在教会读者如何利用 Cheat Engine(CE)5.6 这款强大的内存修改工具,有效地查找网络游戏中的内存基址。在计算机科学中...
### 使用CE寻找LOL无限视距、攻击范围与炮塔范围基址的非特征码实现方法 #### 一、无限视距的实现 无限视距是《英雄联盟》(League of Legends,简称LOL)中一种非常实用的功能,能够帮助玩家获得更广阔的视野。...
在本教程中,我们将深入学习如何使用 Cheat Engine(简称CE)来寻找游戏中的内存基址,这是制作游戏辅助或外挂的重要技术之一。CE 是一个强大的内存修改工具,它允许用户搜索并修改游戏中的数值,从而实现各种自定义...
"内存基址查询工具蜘蛛CE"是一款专为游戏爱好者设计的高效工具,它主要用于查找和分析游戏中的内存地址。在游戏编程和调试中,了解内存基址是至关重要的,因为这些地址存储着游戏状态、角色数据、物品信息等关键元素...
《Netgame游戏基址快捷搜索器》是一款专为网络游戏爱好者设计的小型实用工具,它极大地简化了玩家在使用游戏辅助时对游戏内存地址的搜索过程。这款软件与经典的内存调试工具 Cheat Engine(CE)相结合,可以形成强大...
"图文解说用CE寻找游戏指针的2种方法" 在游戏修改领域中,寻找游戏指针是非常重要的一步,游戏指针是游戏中各种数据的存储地址,而寻找游戏指针的方法有多种,本文将介绍两种使用CE寻找游戏指针的方法。 方法一:...
下面是使用CE寻找内存基址的步骤: 1. **打开CE**:首先,下载并安装Cheat Engine,然后启动游戏。在CE中,选择要调试的游戏进程。 2. **数值扫描**:确定你想要追踪的游戏状态,比如角色的生命值。在游戏中改变这...
1. 使用CE寻找游戏基址:CE 是一款强大的内存调试工具,能帮助我们查找游戏中变量的内存地址。首先,你需要同时运行游戏和CE。在CE中,选择要扫描的游戏进程。 2. 首次未知数值扫描:在游戏运行过程中,选择一个可...
当我们在游戏中寻找某个变量时,这个变量在内存中的位置可能并不是固定的,因为它可能受到其他因素的影响,如动态分配的内存或虚拟地址空间的映射。此时,我们可以通过基址加上偏移量的方式来确定变量的准确位置。 ...
一旦找到基址,下一步是深入分析该地址及其周边的内存空间,寻找与人物属性相关的其他数据。教程中提到的“绿色”地址通常表示这些位置是游戏直接读取的,因此是重点分析的对象。通过搜索基址附近的数据,可能会发现...
在游戏基址的原理方面,每个在游戏中运行的对象或变量都有一个内存地址,这个地址就是游戏基址。游戏程序在内存中分配空间存储各种数据,如角色状态、游戏得分等。当玩家在游戏中进行操作时,这些数据会实时更新,...
同时,它也揭示了游戏开发者与玩家之间的猫鼠游戏,即游戏开发者不断升级反作弊措施,而玩家则寻找破解之道。最后,教程作者还提供了交流平台,欢迎更多高手分享经验和技巧,共同提升对CE的掌握。
它并非源代码,而是通过读取程序运行时的内存数据,帮助用户寻找并修改游戏中的数值,从而实现各种自定义效果。本文将详细探讨CE内存工具的原理、使用方法及其在游戏修改中的应用。 一、CE内存工具的工作原理 CE...
《使用CE和OD寻找游戏背包数组的教程》 在计算机游戏中,玩家的背包系统通常包含一个数组,存储了各种道具的数量和信息。本教程将教你如何利用 Cheat Engine(CE)和 OllyDbg(OD)这两个逆向工程工具,来找到游戏...