从0开始学模拟挂(二)--找血内存基址方法(二)

基本原理就是:

以下红色部分代表:无论哪次进入游戏都不会变的量


一级基址( )
二级基址( )   =  一级基址的数值()   +    
偏移1()
血内存地址() =  二级基址的数值()   +     偏移2()


更一般点应该是这样:
  1. 其中一级基址和 所有的偏移,对于一个游戏而言是固定的。

  2. 一级基址( )
  3. 二级基址( )   =  一级基址的数值()   +    偏移1()
  4. 三级基址( )   =  二级基址的数值()   +    偏移2()
  5.      .                           。                          。
  6.      .                           。                          。
  7.      .                           。                          。
  8. n级基址( )   =  n-1级基址的数值()   +   偏移n-1()
  9. 血内存地址() =  n级基址的数值()   +     偏移n()
  10. HP=读内存(血内存地址)
复制代码


用教程一的方法,有的人会发现,他不能返回到人物选择画面,导致无法获取一级基址。有的时候用方法(一),其实郁闷点会连二级基址都找不到。就像我最近玩的这个8.12就要公测的网游《蜀门》,用方法(一)出现了如下的问题

发现搜索不到二级基址






这个时候我们就可以改用方法(二)

1、在找到内存地址后,选择扫描此地址的指针(图中P>18272BD0是我已经找到的基址,后面会教大家,如果找到他)

 
2、选择默认


3、快速选不选都可以,但是游戏一定要记得选。。如果时间充裕,"快速"不用选,更精确


7、扫描中,记住扫描的时候,最好让自己掉血,以防最后追踪不到。扫描时间有点久的。。


 8、出来结果了。

 

2009-8-6 15:40 上传
下载附件 (112.47 KB)




9、这个结果其实包含了(二级基址+偏移2)双击其中一个结果的地址


 


10、为了寻找符合我们要求格式的二级基址,我们先尝试一个看看~~



11、输入内存地址,点确定。。



12、漫长的等待。。。。。。。。




13、结果



15、碰RP 的时候又到了。。。。两个随便蒙一个。。一般都是蒙第一个。。记下地址,这个地址就是符合我们格式要求的二级基址

 

16、双击刚刚我们扫描的哪个可能的(二级基址+偏移2)


 


17、看图。这里这个(二级基址+偏移2),从图上可以看到他是动态的指向血的内存地址,而具体指到什么位置,是由二级基址内的数字决定的。 二级基址内数字变了,血的内存地址也变了(这个还不懂,看教程一,这个原理是一定要懂的。。。)所以说这个指针已经动态指向血的内存地址了。

 






18、关闭游戏重新启动,CE载入进程,看看再次启动游戏后,刚刚改的二级基址+偏移量2,能否正确显示出正确的血量,如果不可以,可以重复上面的方法找(一级基址+偏移,但是注意下,后面找一级基址扫描时候让你填写要指向的地址时候,应该写的是二级基址了,不是血的内存位置。)。如果可以正确显示血量,就说明不用再找一级基址了。一般来说要找两次的,这里我是由于已经做过一次,知道找一次就行了。





 

2009-8-6 16:49 上传

下载附件 (159.51 KB)

 





19、OK,说明正确了。哪么基址+偏移量就是(0118AAB0+3C0)
检验的代码不发了,自己去教程(一)里找

 



顺带补充句,这个游戏支持GDI,所以可以后台找色。。。。。

 

 

转自:http://bbs.vrbrothers.com/viewthread.php?tid=94578&extra=page%3D1

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程安排,暂定,有可能会实时修改 编程语言,VC++6.0 工具主要为(OD1.1,CE5.4) 预计平均3天左右更新一课 大家好,我是郁金香老师:QQ150330575 欢迎大家参加梅州技术 VC++外编程VIP培训班。 在接下来的一段时间将由我和大家一起习游戏外的分析,制作。 课程分四个大章节 初级篇,中级篇,进阶篇,高级篇 初级篇内容:编写一个完整的,简单的外 C++的数据类型:Byte,Word,DWORD,int,float API函数的调mouse_event,GetWindowRect,SetCursorPos,FindWindow,SendMessage) CE5.4工具的使用方法 中级篇内容:调试工具的使用技巧,功能CALL的概念 调试工具OD1.1的使用技巧(如硬件断点,条件断点,内存断点。 常用汇编指令与对应高级语言的转换。 游戏功能CALL概念 找第一个功能CALL 外框架的构建(通用) 进阶篇内容:分析游戏内部数据,分析常用功能CALL 游戏数据实践找各种功能CALL(如打怪,选怪,物品使用,技能栏之类)及相应的代码编写 高级篇内容:编写完整外 完成一个相对完整的外,实现 自动机,打怪,存放物品之类的功能 1 入门篇.以《QQ连连看为例》 1.1、一个最简单的外 1.1.1、游戏数据分析(SPY++) 1.1.1、游戏窗口数据分析(SPY++) a、取得窗口相对坐标 b、读出游戏窗口信息GetWindowRect c、移动鼠标指针SetCursorPos 1.1.2 用VC++写个最简单的外(实现游戏开局) a、鼠拟鼠标单击mouse_event b、鼠标指针移动还原 c、集成到startgame函数里 1.2、用CE查找棋盘数据 1.2.1、数据类型:Bit,Byte,Word,Dword 、用CE查找坐位号; 1.2.2、用CE查出4个棋盘基址; 1.3、用模拟技术编制外 1.3.1 模拟鼠标点击实现 交换棋子 1.3.2 把所有功能集成封装到 函数里 1.3.3 利用棋盘数据 ,模拟实现下棋功能 1.3.4 编写完整外,界面美化 1.4、游戏加速.去掉对动画效果.非HOOK 1.4.1:用OD找出 动画延时代码 1.4.2:写代码去掉延时,实现游戏加速 2 中级篇 以热血江湖为例 2.1、分析前的准备..CALL简介: 2.1.1、CALL调用示例分析.远程代码注入器 2.1.2、调试工具OD简介,血值,魔力值,坐标偏移; 2.1.3、游戏基址概念; 2.1.4、常用汇编指令详解 2.1.5、内联汇编编程实例 2.2、游戏分析利器OD(OllyDbg) 2.2.1、分析角色基址 2.2.2、找打坐CALL 2.2.3、读出角色当前血值 2.2.4、远程注入代码,调用打坐CALL; 2.2.5、实例分析:找技能栏对象数组基址+偏移: 2.2.6: 拦截F1-F8功能CALL 2.3、外框架构建 2.3.1、DLL动态链接库构建,与调用 2.3.2、API与回调函数 2.3.3、DLL中构建窗口 2.4、用OD分析游戏功能CALL.《热血江湖》为例:主要是找CALL 2.4.1、选怪CALL 2.4.2、找游戏物品背包的基址+偏移 2.4.3、 吃红药(补血)CALL 2.4.4、 吃蓝(补魔)CALL 2.4.5、 技能CALL1 2.4.6、技能CALL2 2.4.7、所有技能CALL 2.4.8、捡物CALL 2.4.9、所有动作CALL 3、进阶篇 主要讲功能CALL的参数分析 汇编浮点指令/浮点运行/浮点数整数转换/汇编里的指针 3.1、喊话功能 3.2、走路 3.3、 怪物过滤 3.3.1、怪物属性分析 3.3.2、怪物列表关键代码分析 3.3.3、怪物列表基址+大小 3.3.4、怪物列表编写代码 3.3.5、怪物过滤 3.4、 物品过滤 3.4.1、物品属性分析 3.4.2、物品列表关键代码分析 3.4.3、找出物品列表基址+偏移 3.4.4、物品过滤(编程读出物品列表数据) 3.5、 组队相关 3.5.1、 玩家列表 3.5.2、 组队功能 3.5.3、 离队功能 3.6、购物/售物 3.6.1、与NPC对话框 3.6.2、打开购物/售物对话框 3.6.3、购物功能 3.6.4、售物功能 3.7、 摆摊.开店 a、开店CALL参数分析 b、写代码测试 4、高级篇 4.1、编写完整的外 4.2、游戏更新后的外更新 4.3、脚本功能 4.4、游戏多开实现 4.5、盗号的实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值