【干货】《GTAOL》外挂开发教程07:喊话封包详解

文摘   时事   2025-01-05 00:00   广西  
本期教程呢,我们要带领大家来分析一下这个封包。我们先从喊话开始分析。之前我们已经完成了对它的hook,把它的包头和包内容提取了出来。我们这样,先喊一个话,比如"六个一",1234566个一对吧。然后我们把前面清掉,再发给它,观察截取到的内容。我们可以看到后面的是我们发送的文字,对吧?那前面这些是什么呢?我们再发一个来对比一下,看看区别。
123456啊,然后我们再放开再发送。好,这是第二个,下面这个不一样啊。我看能不能把它删掉啊,删不掉就算了吧。我们来对比一下,有什么区别?看上去对吧,包长也是一样的,前面这个B2020B也是一样的啊。嗯0B呢,我们是不是可以看出他就是11啊?那他这个零币应该就是他的波长,对吧?然后零六呢,因为我输入了六位,他应该就是他的那个喊话的长度啊。当然,这只是我的猜想,我们再来验证一下。
我们再输一个七个三啊,1234567好,我们再来看一下啊,翻开再发送给它,关掉诶,这里包长变12了,对吧?然后呢,这里0B变成0C了是吧?0B变成0C了。然后呢,这里零六变成零七了,对吧?那这个两个都验证了我们的想法啊。那前面呢,这个B202啊都是固定的,现在等于说我们要的几个需要拼接的都有了,唯一一个东西我们没有啊,我们就差一个东西了对吧,插哪个呢?你看他这里是E6,这里是F3,到了下面这里他好像又没有了,呃,又变成了这个零六了。
我们再发一个六位的看一下啊,我们再发一个六个4123456,我们来看一下是什么样子的啊,我们要多个进行比较才好分析啊,发这一下,发了好几个包,那这个才是对吧,我们从他3434这里就能看出来,这里才是我们的。它又变成了EB啊,看上去好像没有什么规律,但其实呢,我相信大家也能看出来啊,你看这里1B下面1C又到ED啊,看上去好像都是加了个一啊,包括这里,你看F3F4对吧,都是加了个一。上面这个呢,因为隔那隔的时间比较长了,差了好几个包啊。
这个,我们一看,可能是一个计数器一样的东西,当然,我们现在还不能确定对吧。嗯,怎么给的?我就把它敞开了,给他跑看看啊,看看是不是有一个什么能看出点啥呃,33343536373839对吧,3a3b3c3d,这大家是不是就能看出来了,它确确实实是一个计数器啊。其实呢,我之所以能看出来呢,是因为我之前去代码里面翻了去给他找了啊,讲道理,我一开始我也是看不出来的。我不可能就竖着一个一个的去对比对吧。
当然也如果有经验比较丰富的话,其实也能发现啊,也能发现这一点。这可能也就是R星服务器唯一的一个难点了吧,其他的好像都比较简单对吧。大家去找分包的时候,为什么说让大家去把这个hook,那个发包函数给他啊,这样做出来对吧,这做出来的好处就在这里。我们很好对比,你去OD里面,你不可能你这个东西,你肯定就看不出来了对吧,但是你像这样把它全部搞出来,你就很轻松的能发现这些问题啊,包括这个计数器对吧。这个计数器,你这我从上面往下一对比就看出来了对吧,就看出来他是个计数器。
那就算我知道他是个计数器,那我也不能瞎填对吧,我们还是得去追他,我们还是得去找到这个东西,他到底是从哪来的啊,其他东西不用找你看,他只要是发包,他这个包头它都是一样的啊,然后呢这个长度,这两个长度我们自己都能算出来对吧,这最后面的填的是内容,我们唯一需要追的就是这个东西了啊,就是这个计数器了,好,那我们我们再到D里面来看一下,它到底是一个什么样的东西对吧,我们重新喊一个话,随便喊几个呢,下段立马断下,我们来看一下啊,他这个内容呢,我们再发一个看看6263对吧,那我们能看出来它是这个字母对吧,是这个字节,也就是加4+5的地方,加五的地方这里对吧,加五的地方是我们的一个想要找到想要找的东西,那我们知道这个游戏它是线程发包,你晚上返肯定是没用的,咱们还得去那个铭文包那里对吧。

我们来挑一下,跳到包那里,端点硬件写入好到了这个包。我们网上翻两层看看,再返这才是刚到这个啊。再返一层吧,我们到这来看吧。下段我们随便走一下,我们应该看哪个呀?数据窗口中跟随,好像没看出来啥是吧。难道是这个数据上的人跟随诶?好像看出好像是这个东西啊,我们看看能不能看出点门道来,也不太容易看出来,因为它的包可能比较乱啊,我们也不太能看得出来嗯,怎么办呢?

我们还是从里面看吧,外面这里有点乱,我们进来看。我们到这来看一看能不能看出点啥。这里这个ECX是给了他新的值,所以我们这个ECX也要看嗯,下面这个对战的这个第一个复式也能看一看,好像看不出来啥。我们到现在就是我们用一个喊话的来看一下哈,下段看一下。嗯,ECX看看能看出啥不。我们到现在是不是连那个我们这么多一都没有找到对吧?我们看看他是不是在附近啊,这也没有。那这里也是没有了。我们再看看他压的参数。

重新下个写入端数据窗口跟随。断点硬件写入为先把这个断点删了啊。我们反两层就到这里。我给他标记一下,刚刚我的标记乱了,再标记一下,我们在这里。下个段看一下啊,喊话首先看一下ECX。A6,这个A6好像有点像A7对吧,那就是这里啊,那就是这里。

那就是说是我们的亚洲的一个参数对吧,他是几个参数,我看一下啊,它是呃加C对吧,也就是三个参数,他应该是从哪来的,应该就是这个DR了对吧,我们要的就是这个DRADR数据窗口中跟随,也就是这个A8对吧,我们要的就是他了。这个EDR从哪来的呢,来自于app加八,来自于BP加八,没问题吧,app加八,确认一下数据窗口中跟随就是你。

然后呢,BP加八是第一个参数,我们那我们就往上反看看吧,看上去怎么和我之前找的不一样呢?我们看一下他在哪里写入,我们,第一个参数在这里已经写入了,那他应该是,我们从这里看吧,从这里看,他就在上面写入的,应该是我们先重新发。重新发,好,我们现在我们之前看到了EDR,它是里面有值了,我们现在看看它有没有值诶?这里是空的对吧,那就是这之间这么几行代码,对它进行写入了。

我们看一下是哪一行对它写入了,哎就是这一行,也就是这个bl对吧,也就是这个bl向这个内存地址写入了这个计数器的对吧,那我们就去追这个DB l bl,来自于ex1BX加四零。EBX呢又等于app减四啊,又来自于ex,那我们CTRL加F9。ECX呢又来源于一个基地址对吧,那也就是说是这个基地址的加四零的地方对吧,基地址加四零的地方,这个最地址的,这个基地址的值,然后加四零,好就是这里啊,就是这里这个值呢它是会,我们可以看到它还在变对吧,只要一发包它就变了,BAC1啊,C3,那我们是不是只要读到这把这个值读出来,然后呢添加到我们的代码当中啊,就可以把这个计数器啊找出来对吧,那我们本期教程呢是把这个喊话的封包,所有的他的字节的拼接啊,都给他分析出来了,那我们本期教程就到这里。


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