找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6|回复: 2

寻微渐近-拆解韩服55端-4

  [复制链接]

5743

主题

4万

回帖

17万

积分

神功绝世

积分
171425
发表于 9 小时前 | 显示全部楼层 |阅读模式
这篇是这个系列的最后一个篇章,本来客户端还有一处要处理,处理后分析各种协议id有事半功倍的效果,但是现在用不上,后面用上了我们再补。
回到正题,我们来聊找脑子的事情。一般来说,正常打靶一定是官服跟客户端同步的情况下手的,因为协议同步,来回滚几次基本能做到八九不离十。我们这个比较特殊,现有的情况没有对应的服务端,有句话说得好,没有条件,就要想办法创造条件
都知道服务端流出来过,大家手里也有,要想找到脑子,需要从它下手,做过正常软件迭代的都知道一个东西,接口要尽可能兼容老版本,从这个思路来说,那么这个服务端必然存在一部分借鉴的东西,哪怕我们知道现在对不上,毕竟每次迭代,或多或少都会存在部分功能的改动,但对我们来说足够了,因为我们只要能得到如何驱动客户端基本运转的逻辑就够了。
接下来我说的只是我的思路,这不是一言堂,思路不一定你要用,但是你可以借鉴。我的思路很简单,找到服务端,让它跑起来,在比较理想的位置挂好钩子,把协议包抽出来,记录流程。看看吐包流程,看看交互,根据它的吐包流程,反向推导客户端初始化逻辑。为什么选择在服务端处理呢,因为这个是通用的,如果你处理客户端,就比如像我们前面帖子这样处理的话会比较麻烦,因为不同的端你又要重新找位置挂钩,服务端就不一样了,处理一次就行了。通过分析虚拟机服务端的配置文件,没什么好说的,直接把df_game_r拖出来丢进ida。
注意,下面的代码不在客户端里面,是我们从虚拟机中拖出来的服务端反编译的代码
先处理接收部分,我选取的方法是
int __cdecl CUser:arsing(CUser *this, char *recv_size)大概代码的位置如下

为什么是这个地方呢,两个原因
1.它离我们接收的tcp包的地方近,漏包概率小
2.这个方法里面有个逻辑,就是包出现异常会打印出来ENUM_***协议名称,这个对我们分析很有帮助
为了看起来比较直观我命名了一下伪代码

看我鼠标选取的行,这里我们可以很明显看出来逻辑,如果包crc不对,也就是说这个包是客户端伪造过来的,服务端直接打印相关信息,输出协议名称,方便开发者查看日记敏捷处理,最后不让这个包进行路由到业务层。那我们选择挂钩的位置是哪里呢
Cipher:ecrypt(cipher_obj, dec_pkt_id, enc_body_ptr, enc_body_len, decrypted_buf, (int *)&decrypted_len);
汇编代码大概在这里

我刚开始分析的时候选择偷懒,直接挂接memcpy,后来测试发现经常漏包,原因是某些包没有协议体,只有协议头,真的有毒[表情:狂汗]
如何拆包头包体呢,汇编中在08647B59-08647B80有一个LogManager::logFormat的调用,然后你稍微分析一下,大致就知道组包逻辑了,选择这个地方比较巧妙,刚好既有协议头信息,也有包体信息,还不需要你自己去找解密方法,简直完美的打工函数了
记住 08647C25 这个地址,后面要考
然后就是发送部分,我选取的方法地址是 086485BA 伪代码如下

这个位置也是差不多的逻辑,刚好卡在业务层拼好协议,还未到达加密之前的位置,但是这里又有点特殊,部分包包体比较大,服务端采用的是压缩,也就是如果拦截这个地方,可能出现部分包是压缩过的,不是真正的明文。需要费点手脚额外处理一下
思路有了,接下来我们需要干什么?
我建议写一个工具,把包转储出来,看流程,看包体,方便分析。当然你也可以直接选择输出到控制台上,但是这么做不灵活,需要一直挂着虚拟机。钩子的话我采用的是frida,省事和方便,最重要的是有人放好了,我不用再去安装了,偷个懒我相信没人介意。
我贴出来frida关键部分





看不懂,喂给ai吧!最后别忘记了

启动服务端,启动登陆器登录游戏看效果

大概做到这种程度就ok了。
好了,到了这里,我们这个篇章就收尾了,应该没什么难度吧!又不是要你去摘天上的星星,对这个篇章哪里比较迷的自己发帖问。平常要上班,一般我没事休息会更新一下,有什么问题我也会回答,但不一定百分百准确。逆向嘛!职业病就是不要相信任何你所见到的东西,不要相信任何你所看到的结果,它们可能都是假的,可能都是别人想让你看到的[表情:微微一笑][表情:微微一笑][表情:微微一笑]
阿荣社区欢迎你(bbs.vul7.com)
回复

使用道具 举报

发表于 9 小时前 | 显示全部楼层
没……没什么难度……吗[表情:惊哭]
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

发表于 9 小时前 | 显示全部楼层
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表