游戏内存基址找怪物基址问题

游戏内存基址问题_百度知道
游戏内存基址问题
要找基址?这两个方法得到的写一内存数据是不同的 还有些网络游戏,应该选访问该内存的代码还是写入内存的代码,再复活的时候几秒内是无敌的,我通过0,1反复搜索到内存地址修改锁定1为什么无效。 本地的内存地址有时直接修改为什么会没有作用我查找到的游戏血的内存地址
我有更好的答案
基址的概念比较大,用好几层。就你的问题而已在拿到具体数据的地址后,用哪个都一样,因为代码访问的都是对象中的一个变量,对象中的变量是通过它相对于对象首地址的偏移量来实现的,在汇编代码中应该是“[xxx+wwwwh]”其中xxx为某个寄存器,它存放的就是对象的首地址,就是你要的基址(最底层的基址,先说成基址1)wwww和后面的h表示一个16进制数,是血量的偏移地址。这个对象的基址一般没用,每次允许几乎是必然会变,还要在找它的基址(基址2)。但是基址2也很可能每次都变,还要找它的基址(基址3),如此下去,一般要找5层左右。
其实你完全没有必要去这么做,因为现在的网游没有一个是把数据放在客户端上运算的,你的机子只是不断地从服务器上读你的血量而已,你自己改了也就是你自己机子上看着好像多了...
这个很正常,网络游戏的采用的是动态基址意思就是说会变的我建议你去下载个外挂来研究研究
血量是存在服务器上的,在本地修改无效。其它地址就按楼上两位说的
其他类似问题
3人觉得有用
为您推荐:
基址的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁今日下载排行
本类周下载排行
本类月下载排行
QQ交流1群:(满) &&|& 2群:
本站所有软件来自于互联网,版权属原著所有,如有侵权,敬请.我们立刻删除.
Copyright& 2008 7xdown.com 苏ICP备号-3 上传我的文档
 下载
 收藏
免责声明: 本站资料多数来自网络,如有侵权,敬请告知,将立即删除!本人对由道客引起的侵权问题不承担法律责任,转发下载资料请于24小时内删除,谢谢!下载过程中有问题请联系客服:qq:
 下载此文档
正在努力加载中...
游戏天龙八部,版本0160108,系统windows xp,工具ce52 od110 c#2005目标查找到内存中怪.
下载积分:800
内容提示:游戏天龙八部,版本0160108,系统windows xp,工具ce52 od110 c#2005目标查找到内存中怪数据的数组格式和位置首先更正笔记1中的人物基址的
文档格式:DOC|
浏览次数:6|
上传日期: 07:54:09|
文档星级:
该用户还上传了这些文档
游戏天龙八部,版本0160108,系统windows xp,工具ce52 od110 c#2005目标.DOC
官方公共微信内存偏移量
&|&&|&&|&&|&&|&
内存偏移量
玩编程久点的人都知道,并且也会常常的自已对一组有相一定关系的数据进行组织起来,用自定义数据类型进行维护.通过定义一个数据类型,操作,组织,维护一组相关的数据变得简单.
例如,我们要做一个成绩管理,其中难免会用到很多种类的数据,如学生名字,学号,班次,性别等等,若不通过定义成一个数据类型的话,那这些数据就会是一盘散沙般的难以管理.
游戏中,也常常会把一组数据,按一定的格式定义出一种数据类型来,比如游戏帐号,人物名称,血量,魔法量,当前所在地图的代号,所在的坐标位等等,还有为怪物,及地面上的物品等也定义出一些数据类型,包括如怪物的血称,血量,攻击力等等.
下面来看一个程序,本节例子压缩包里的 测试程序.exe
测试程序.exe
这个程序在运行过程中,会每120毫秒改变一次坐标,生命值,魔法值中的数据.
当然这些数据是按照一定的格式组织在一个自定义数据类型里的
自定义数据类型
我们来想像一下,游戏为了方便管理人物的一些数据,于是乎便有了这么的一个数据类型,见上面的 人物结构.
上面的这个结构是模拟游戏中,帐号与人物名都是文本型,坐标横纵加起来是8字,生命是4字节,魔法4字节,用来存放这些数据.
注.上面的只是一个假设,你可不要当真哟!!!不过没准还真的有可能会有某个游戏是这样的^_^!
本节要练习一下如果搜一些数据来找出这个结构在内存里的基址.有了基址以后只要加以一定的偏移量就能得到所有数据了.
下面是用CE找基址的方式.运行CE,打开这个 测试程序.exe 的进程,然后查找上面的游戏帐号 "万挂作坊" 这个文本型数据
启动CE的全部,然后查找 万挂作坊 这个文本,找到了三个地址
把这三个地址都添加到下面,然后试着修改这三个地址中的值,会发现,只有第一个地址 0014CD40 修改会立即反应出来,说明该地址有效.
然后我们按照上节所学的方式,来 查找 0014CD40 的父址,再找基址.
找到了两个父级地址,不过这两个父级地址都不是绿色的,说明这两个地址也是动态,需要再找更上层的父级地址.
但是问题出来了,当我试着再查找
与 00145D8C 这两个父址的更上级地址时,居然啥也找不到.即然找不出更上级的地址,那就说明,当前这个父址是存在于某个自定义数据类型里,或者是在某个数组里...
对于这种情况,就必需得使用CE中的查找对该地址读写的代码功能了.这项功能可是CE中的重要功能,对处理动态内存有奇效,屡试屡爽哇!
选择一个找不出其父级地址的内存地址,右键菜单,可以选择查找该地址有关操作代码的功能
出来截取到读写该内存地址时的那条汇编指令所处的指令地址窗口.
上,等了好一会,还是什么都没有显示出来.看来这里没前途了.
只能选第二个父址 00145D8C 上进行查找读写内存的代码了.很快就出来了结果.
在第二个父址上得到了读该内存数据的汇编代码.可以双击这条代码,查看当时的CPU各寄存器值
CE给了我们简单的介绍,这条 push [ebx] 是数据压栈.还提示了要查找的基址可能是 00145D8C
可是,可是刚才我们就是在这个第二父址 00145D8C 上来进行查找代码的,现在找到了代码,居然却提供我们基址可能就是这个 00145D5C ,这不是瞎扯嘛.
事实上,很多情况下,这个提示都是很有用的,只是这个测试程序是用易语言做的,有些特殊.
当出现这种 提示的基址 与你之前点右键菜单时的那个地址一样的情况时,只能转到反汇编里用肉眼来分析了. 关闭这个 附加信息 的窗口, 点找出代码的那个窗的 显示反汇编程序 进入反汇编窗口.
反汇编代码窗口,向上滚动几行,上面的注释里的 00145D88 就是这个自定义数据结构所在的内存地址了
- mov ebx,[009a0d50] : 00145D880040462C - add ebx,040040462F - mov [ebp-04],ebx - push 00 - mov ebx,[ebp-04] - push [ebx]这段反汇编代码,我面从最下面这条反方向到最上面的那条来分析.
- push [ebx]
这条指令时的& [ebx] 里的值就是第二个父址.现在我们要弄清楚,这个父址是怎么计算出来的
- mov ebx,[ebp-04]
这条指令告诉我们, 原来父址是在 [ebp-04] 处来的
0040462F - mov [ebp-04],ebx
这条指令又告诉我们 父址是来自更上面的计算结果时保存在 ebx 里的
0040462C - add ebx,04
父址是ebx中原先的一个数值+4计算出来的,即 父址=?+4 这里的?是什么呢
- mov ebx,[009a0d50] : 00145D88
这里告诉我们那个未知的?的值是来自内存 009A0D50 处 而009A0D50里所保存的数据正是反汇编里注释显示的那个 00145D88 这个.
好了,现在我们把整个思路理顺.
第二个父址 = 009A0D50 内存里的值 + 4
现在可以肯定 009A0D50 处保存的 00145D88 正是这个自定义数据类型的内存地址,4 是偏移量,正是该数据类型下面的第二个成员 游戏帐号 .
但是这个 009A0D50 不是静态的地址,所以我们需要对这个 009A0D50 再搜下他的更上级的父址.
结果查找出来了很多个可以用的基址,选择最上面的那个
现在再来总结一下整个内存指针与偏移
保存着自定义数据结构地址父址 009A0D50
自定义结构父址009A0D50 里保存着自定义数据类型的地址 00145D88
而自定义结构的第二个成员游戏帐号地址就是 自定义结构地址 + 偏移量4 也就是之前找到的那个 第二个父址
第二个父址指向了帐号文本内容数据
上面的分析,好像很绕口哇,也不知道大家能不能明白.
下面在CE手动添加地址的方式
手动添加地址游戏帐号的方式
上面只讲解了对游戏帐号这个文本型进行查找与基址的分析,其它几个数据如从血魔值起找基址没有讲,大家可以根据这个思路自已找找看.
搞清楚了基址与这些地址的指针偏移后,就可以编写读写内存的代码了.
读内存的代码,需要注意对 偏移 这个数组变量的成员数重定义与各值的设置.
有关写内存的代码,只需要用 内存_写整数型() 即可.
〖万挂作坊原创 〗
上一篇教程: 下一篇教程:
客服QQ: 技术QQ:
加入万挂作坊永久会员,请和客服联系
Copyright &

我要回帖

更多关于 内存基址找人物坐标 的文章

 

随机推荐