【干货】《绝地求生》外挂开发教程09:动态分析手持武器结构

文摘   社会   2025-01-01 18:02   广西  

本期教程我们将带领大家了解一下武器库的情况。这里是一个基础的训练场,其中包含着各种枪支。我已经提前进入了这个地方。在人物对象下面,有一个武器库,再加上900的偏移,就是当前装备的武器。

同样,在处理器里面也有这个武器库的信息。因为我是继承于这个对象的,所以直接在这个下面加了12301来表示一把武器。我们现在来便利一下这些武器。首先,你需要找到自己的对象。然后,在自己对象加900的地方,再加上UF8,就是当前装备的武器。我们可以看到身上有两把枪,实际上可以装四把。但当前只装备了两把。

我们可以丢掉一把来测试一下。看起来只能装两把枪,那么有办法装三把吗?可能这个处理方式并不是动态的,我们需要进一步分析。这两个就是两个对象,如果我变了,你总得变吧?如果我把你丢了,你看它变成零了,对不对?但是你这个东西为什么不变,我不知道。但是里面这两个枪的对象是变了,对吧?那我是不是能证明这是两把不同的枪的对象呢?那这个对象,如果我们想获得它的一个名字,我们要怎么办呢?

实际上,它的名字应该在加八的偏移处,对吧?虽然目前是加密的,我们看不出来,但是它是一把枪的对象。我们后面写代码给大家看,大家就会明白了。好,现在我们得回到原点,重新检查一下。至少那两个偏移我们已经确定是正确的,因为当我们把枪丢掉时,它们会变成零。

现在我们要重新开始,因为我们还需要动态地查看。我们现在已经找到了武器处理器和武器装备,现在我们来看看索引,以及我们最终想要实现的目标。我们要实现的目标是将敌人手持的武器名字绘制到头顶上,展示到他们的头顶上面。

我们先进入然后获取这个。好,我们已经进来了。我还得走一下。现在我们已经获取到了,我有两把枪对吧?但是,比如说,你身上有两把枪,但是我不知道我当前手持的是哪一把。因为那里是一个数组,现在我们可以开始比较了,它是一个数组,我可以遍历出所有的枪的对象,但是我得确定一下哪一个是我们当前手持的。

但是到这里了,但是没有打印,也就是说没进去,应该断在这里才对。是不是因为我这里没关麦,那就是它了,我们附加一下。要先把这个改一下,不然等会要最小化了。首先是加900,然后呢加UF8。

你看我现在只拿了一把,但是他却是一对,只有他也有两个对象,为什么会有两个对象啊?我不是只拿了一个吗?如果把这跟这些东西应该没关系吧,没关系的啊。

好,现在两把了啊。变了变了啊,那可能是历史的数据,我们不管它,现在变成二了连吧。那我们现在要找当前的索引,对吧?当前的索引在哪呢?我们之前看了是在301对吧?我们到300的地方,从300开始,我把它搞成这个字节的形式啊,我添加一下吧,301字节啊,302也添加一下吧。

我们来观察一下有没有什么变化啊。我怎么才能把三搞出个东西呀?手雷是五吧,什么东西能装到三上面?我真不知道这种游戏呢,我玩得太少了。最好能找个手榴弹看一下。手指头还在里面,算了,不管他了,不管他什么手不手榴弹了,我估计手榴弹应该也是在里面的对吧?

你看啊,现在是零啊,也就是我们当前的索引是零。换一把枪之后呢,他就到一了对吧?如果还有四五的话,它的索引会跟着涨的。我换回来啊,零一啊,也就是说,这个索引是用来区分的啊。你看这里不是好在EF8EF8这里啊,零的话用的是这一把啊,一的话用的是这一把啊。

到时候呢,我们用这个地址给他加一下啊,给他加一下就可以了。所以就知道它当前的手指是哪一把了啊,就是这样实现的。那我知道哪一把呢,我就能知道用的是EF8里面哪个对象,然后把他的对象得到了。解密一下就可以了,然后我就可以把这个名字绘制在头顶啊。好,那本期教程就到这里啊。


暮色的狐
这是一只高强度上网冲浪、高质量输出内容的狐狸。主打ACGN杂谈、技术干货分享、第九艺术鉴赏、网梗百科解析、情感树洞鸡汤、正能量价值观~
 最新文章