弱鸡娱乐网 · 免费提供绿色软件、活动线报以及其他网络资源,好货不私藏!

【原创教程】LGL详解-异类间的函数调用与字段读写

zhangzhyu 安卓软件

大佬勿喷,经验分享,适用于小白!

做过LGL菜单的朋友应该都知道同类间的函数调用和字段读写,我也就不多说了。

1.这里我直接上例子。

A--通过字段获取其他类对象

如图1我们在dump.cs中找到玩家类和敌人类的一些函数和字段。其中Player类中有private Enemy target; private Enemy nearest两个字段; 前面的Enemy表示这个字段存的是敌人类的对象,target表示目标,也就是我们瞄准的敌人,nearest表示最近的,也就是离我们最近的敌人。

欲实现:当玩家受到致死伤害时随机恢复受一些血量,并使攻击者(最近的敌人)和当前攻击对象死亡(即调用敌人类的Die函数或写敌人类的死亡字段).

具体过程如图二。

B--通过函数参数获取其他类对象

C--通过函数返回值获取类对象

如图3,我们找到了一个关于解锁服装的字段,但该类所处类没有可hook的函数,那看来我们只能通过其他类来获取该类对象,并读写该类字段了。

想一想,该字段决定是否会解锁服装,那服装未解锁和解锁后的图标一定不同,我们看到服装图标状态存在一个初始化过程,用来判断每件服装的解锁状态。

搜索item_equip_modelData看看那些地方出现了该类对象,我找到了如下内容。如图4。

Hook方法如图5

D--异类调用对象获取通法

某个类的函数难免会调用另一个类函数,我们只需看看该类函数如何获取另一个类的对象,并尝试还原即可,这里使用到反汇编工具IDA Pro。

比如在Bullet类获取Enemy类的对象,那么bullet类的函数里难免会调用enemy类的函数,我们只需看看是怎么获取enemy类对象的,并尝试还原获取过程。如图6,7

E--同类间的对象判断及转换

有些类是玩家和敌人公用的,你可能遇到过实现秒杀功能时敌人也秒杀自己,这里我们就需要对对象做出判断,区分敌人和自己(前人已有教程,这里我就不介绍如何判断了)。下面以一个不讲武德的反伤功能为例,介绍转换对象。如图8

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

评论列表
请自觉遵守互联网相关的政策法规,严禁发布广告、色情、暴力、反动的言论。
  • 点击我更换图片
  • 全部评论(0
    还没有评论,快来抢沙发吧!
热门文章
随机推荐