精华内容
下载资源
问答
  • CE寻找游戏基址

    千次阅读 2018-08-02 08:32:31
    什么是游戏基址?  游戏基址是保持恒定的两部分内存地址的一部分并提供一个基准点,从这里可以计算一个字节数据的位置。基址伴随着一个加到基上的偏移值来确定信息准确的位置(绝对地址)。   全局基址 一级...

    什么是游戏基址?

      游戏基址是保持恒定的两部分内存地址的一部分并提供一个基准点,从这里可以计算一个字节数据的位置。基址伴随着一个加到基上的偏移值来确定信息准确的位置(绝对地址)。

     

    全局基址 一级基址 二级基址 三级基址的关系:

      第一步、计算机内存一般分为四级存储。(印象里好像是四级)。

      第二步、在最底下的,往往是游戏的全局基址(决定用户界面以及一些细节等)和一些响应用户操作而对应实施的命令。

      第三步、该是传递基址了。现在网游的基址往往是动态的。这个是因为底层的基址不会直接传递给上一级内存。它会加上一个偏移量,然后再传递。这个传递就是指针了。

      第四步、当传递到第四层的时候,就会表现在游戏的用户界面。

     

    "----->"表示"指针指向"

    基址(存放的内容是一级基址起始地址)——>一级基址(存放的内容是二级基址的起始地址:假定为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

    展开全文
  • unity中在代码中寻找某一游戏物体,这是非常常见的操作。这里将几种不同的方式对比一下。 1:GameObject.Find(“A”) 遍历所有在场景中的物体,根据名字找到对应的游戏物体。这种方式比较耗费性能,不建议在update...

    unity中在代码中寻找某一游戏物体,这是非常常见的操作。这里将几种不同的方式对比一下。
    1:GameObject.Find(“A”) 遍历所有在场景中的物体,根据名字找到对应的游戏物体。这种方式比较耗费性能,不建议在update中使用。也可以通过路径查找GameObject.Find(“A/B”),但是此方法不能找到隐藏的游戏物体。
    2:transform.Find(“A”) transform.Find(B)找到此脚本附加的物体或者其子物体。并且在根节点物体没有被隐藏的情况下,可以找到被隐藏的子物体。
    以上两种方式在找不到对应的物体之时,都会报错。程序运行到报错的代码那就会停下来,不会再往下运行。
    3:GameObject.FindGameObjectWithTag(“Player”) 通过标签寻找物体,找不到的情况下返回null;

    展开全文
  • CE寻找游戏基址+偏移

    千次阅读 2019-09-21 20:54:39
    首先打开CE,找游戏进程,搜索当前的金钱数量 进游戏改变一下金钱数量再次搜索 搜索出一个...
     
    首先打开CE,找游戏进程,搜索当前的金钱数量
    进游戏改变一下金钱数量再次搜索
    搜索出一个值,双击放到下面,右键找操作这个地址的代码,如果没有显示的话,可以再次进游戏改变金钱数量
    记下ECX的值和偏移
    用16进制的方式搜索ECX的
    和前边的一样,只有一个是偏移10,其他都是偏移34,那么我们就找偏移34的。记录各值
    搜索EDI的值,依次给他们偏移后,我们可以小退下游戏,找到不变的值。
    再次以同样方式搜索,找到基址。那么这个游戏的钱的地址就是[[005e3e28+34]+7468]
    ------------------------------------END--------------------------------------
    关于游戏动态内存基址的查找方法
    老早就想讨论一下关于游戏动态内存基址的查找方法了,只不过没什么时间。还好今天比较闲,就以完美国际为列子吧!
    首先是要下载并安装ce,然后打开
    选择好进程以后,填入要查找的数据。这里是以HP值1857为查找对象,一下查到了那么多地址
    恩,想办法改变一下HP的值,我是脱下了一件+HP的装备,现在是1807了。
    OK,填入1807,按继续查找,现在只有两个地址了。(以后会发现,下面的那个是HP的上限)如图3:
    用鼠标双击第一个地址,加入到跟踪栏并选择“Find out what writes to this address"项
    这个时候会弹出一个对话窗口
    选择“是”就可以了,然后会弹出跟踪窗口,想办法再改变一下HP的值,会发现跟踪窗口里有数据了
    双击数据察看详细内容
    在这里可以看到,偏移量位450,并记下04c9ffd0这个值,我们把它填入查找,注意“HEX”选项要打“勾”。
    按2次“new scan" 查找,能查到很多地址。我们只需要把前面的4个地址放入地址栏,然后游戏小退一下(到选择人物的画面就可以了)
    再进入游戏,重复第2-6步骤,得到"0a716318"这个值,查找后我们会发现,新找到的地址与刚才加入到地址栏的地址有相同。
    就可以确定“032f4660”为血量的二级基址。
    我是根据经验直接确定“032f4660”为血量的二级基址,所以没有以上的重复
    可以看到“032f4660”偏移20后,得到的地址为“032f4640”,那么我们把”032f4640“填入,然后再点搜索,得到“0092764c”,就是我们需要的一级基址了(人物基址)
    我们跟踪一级基址“0092764c”,得到偏移1C后,为基址(游戏总基址),这里不再熬述
    总结:基址+偏移1c=一级基址
          一级基址+偏移20=二级基址
          二级基址+偏移450=血量地址
    我们读取血量地址中的数据,就可以找到人物的HP了
    --------------------END--------------------






















    http://qzone.qq.com/blog/1634790-1223992212

    转载于:https://www.cnblogs.com/sky1982/archive/2009/02/18/1393138.html

    展开全文
  • CE寻找游戏静态基址教程

    万次阅读 2016-07-27 14:16:40
    一、CE是一个内存搜索工具,游戏运行时,大多数的数据都是放在系统为本游戏分配的运行空间中。一般分为指针(4字节)和数值两种搜索,根据变大变小或者清晰的知道变动了多少,来搜索最终的动态地址。这个动态地址...

    一、CE是一个内存搜索工具,游戏运行时,大多数的数据都是放在系统为本游戏分配的运行空间中。一般分为指针(4字节)和数值两种搜索,根据变大变小或者清晰的知道变动了多少,来搜索最终的动态地址。这个动态地址只是临时的,一旦游戏重载后,就改变了。所以我们的目的是找到游戏中的基址。

    二、首先,打开游戏,运行CE附加游戏进程。以金钱为例,金钱的初始值是50,那么在CE中搜索50,这时可能出现很多数据。然后切换到游戏,将金钱变少,比如变为40了,那么再次搜索40,依次类推,一般能搜索到唯一一条数据的动态地址信息。

    三、把此信息加入到列表中,右键选择查看是什么东东改写了这个地址的值,此时是没有数据的,要切回到游戏,改变下金钱,才会有数据。双击这条数据,根据提示得到一个推荐的指针地址。记录它以及它的偏移量,例如:地址为17947788,偏移量为5578.

    四、重新搜索17947788,此时会出现很多数据,随机选中一条加入到列表,一般是开头或者最后一条附近,右键查看是什么访问了此地址,没有数据的就不对,有数据的才是对的。然后寻找第一条mov指令双击查看,获取地址为18F63256,偏移量是768.

    五、重新搜索18F63256,如果出现绿色的地址,例如B5632563,表示已经找到了,如果没有出现,就要根据情况重复3到4步骤。

    六、手动加入地址:勾选指针,添加静态地址B5632563,偏移填768,它是指向18F63256的,要再加一条偏移5578,最终指向了17947788。

    展开全文
  • 寻找游戏外挂写手

    2008-10-29 16:31:00
    朋友想做一些游戏的外挂,寻找高手。有意者请发个人信息到我邮箱:redvalley@163.com谢谢~
  • 现在游戏开发团队合作,包括手机游戏及在线互联网游戏,主要是开发:内容以棋牌类为主。有意向的请发邮件到---li1376@163.com
  • 奥德 前端应用 写在React TS 后端*
  • B站荒岛求生笔记
  • 如果你要做的是一个2D游戏的开发工具,那么去参考一下经典2D游戏所开放的编辑器,例如Starcraft、Heroes of might & magic的地图编辑器,多看多学多思考,你就能成功。如果你要做一个3D的游戏引擎工具集,那么,去...
  • 寻找房祖名小游戏

    2014-11-26 15:34:12
    用jquery js写的一款寻找房祖名的小游戏,代码非常简单,容易理解
  • findPair:寻找配对游戏
  • 寻找你的帽子游戏
  • 寻找幸运数字小游戏

    2020-10-21 20:58:21
    寻找幸运数字小游戏 #include<stdio.h> #include<stdlib.h> //以下游戏灵感来自真人秀节目中的互动游戏,制作人:江乌好困 //使用软件Visual Studio 2019 //(找今日幸运数字)小游戏 int main() { //x=...
  • 寻找徐峥小游戏

    2019-09-18 21:02:37
    开始游戏  var oTime=document.getElementById("time"); var oScore=document.getElementById("score"); var oContent=document.getElementById("content"); var oMenuGame=document.getElementById(...
  • JS寻找宝藏游戏

    千次阅读 2016-06-08 22:13:28
    在地图上随机点一个地方,然后图片下方会出现如下文字: distance是宝藏与点击的地方的距离 if(distance ){ return "Boiling hot!"; } else if(distance ){ return "Really hot";
  • 游戏里的智能 _寻找路径
  • 很不错的一款小游戏,值得下载,可直接运行
  • 很不错的一款小游戏,值得下载,可直接运行
  • JS小游戏寻找房祖名

    2019-09-28 04:26:21
    提示:1:先把两个图片放到重命名并放到相应的路径内.2:本小游戏只为闲事练手,如有小bug自行解决,解决不了的可以留言,我看到后解决. 代码如下: <!DOCTYPE html><html> <head> <meta ...
  • 寻找徐峥的小游戏

    2020-08-08 17:47:44
    ** 封装的一个新建DOM元素 ** //Utils.js var Utils=(function(){ return { ce:function(type,style,parent){//函数的三个参数分别是要创建的元素类型;样式;以及放入哪个元素中 var elem=document.createElement...
  • (图来自Rockstar Games 官网,是即将推出的一款游戏封面)美国知名游戏公司 Rockstar目前正在寻找一名对研究计算机视觉和机器学习感兴趣的动画研发工程师。为角色扮演游戏开...
  • 寻找猴王小游戏php代码

    千次阅读 2020-05-24 14:37:24
    <!... <...寻找猴王——FindMonkeyKing.php</title> </head> <body> <?php // 使用function关键字定义一个函数 function king($n,$m){ $monkey=range(1, $n); for ($i=.
  • 很不错的一款小游戏,值得下载,可直接运行
  • 很不错的一款小游戏,完整源码,值得下载,可直接运行
  • PaxEngine3:游戏引擎专注于寻找表达力强但简单的方式来构建任何游戏
  • RPG游戏寻找NPC流程

    2018-10-30 15:11:43
    Created with Raphaël 2.2.0查找NPC是否在当前场景?是否在访问距离内?与NPC对话是否有任务?任务对话完成NPC功能对话跑到NPC附近是否Vip?跳转至目标场景传送门yesnoyesnoyesnoyesno ...
  • &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &...border: 1p

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,153
精华内容 1,661
关键字:

寻找游戏