|如何创建自己的Tracker( 二 )
本文插图
这使我们回到了Client类:
本文插图
这应该是我们第一个目标的答案!若要启动连接 , 客户端首先会建立一个SSL流 , 然后可能使用ValidateServerCertificate回调函数和AuthnticateAsClient正在进行某种形式的验证 。 让我们暂时先不管这些 , 因为我们只是在探索代码的工作方式 。 接下来会发生什么?如果我们通过Client基类访问OnClientState , 这将导致我们进入事件处理程序本身 , 那么若要找到触发该事件的函数 , 我们必须转到QuasarClient.cs并通过其查看该函数的实现 。 如我们之前所见 , OnClientState函数触发了client.Send函数:
本文插图
说实话 , 我不懂C# , 但是我在这里通过我的直觉看到唯一有价值的东西是ProcessSendBuffers , 所以让我们查看下 , 看看是否能有所收获:
本文插图
使用与之前相同的策略 , 让我们查看下SafeSendMessage:
本文插图
现在我们暂且不访问OnClientWrite , 因为我担心它不会带我们到我们想要的地方去 。 我们可以查看位于PayloadWriter类中的WriteMessage:
本文插图
该函数会将序列化消息(我稍后会解释什么是序列化)写入SSL数据流!因此 , 让我们通过一张流程图来说明我们的发现:
本文插图
上图是非常浅显且不完整的 , 随着我们进行动态分析 , 我们可以在该图上进行扩充 , 因此让我们在Visual Studio中编译Quasar项目 , 并将编译后文件移至虚拟机并开始研究它 。
0x02 分析Quasar样本
编译Quasar项目并将其移至虚拟机后 , 即可启动Quasar:
本文插图
此时屏幕应该会弹出一消息框 , 该消息用于构建X509证书(非常重要) 。 该证书负责在客户端和服务器之间创建有效的SSL数据流 。 Quasar会生成一个X509证书并将该证书绑定到所有生成的客户端 。 可以在此处了解有关SSL的更多信息 。
生成证书后 , 就可以构建样本了 , 单击Builder然后使用builder菜单进行相关配置 , 其中最重要的部分如下所示:
本文插图
这里有2个IP:一个是本机回送地址 , 另一个是该虚拟机IP 。 我建议将客户端绑定到当前虚拟机IP , 因为这样可以模拟从当前虚拟机与外部主机服务器的连接(主机也是VMWare本地网络中的一员) 。 您可以使用任何您喜欢的端口 , 这里我使用了27015端口 。 生成客户端后 , 您应该可以在当前目录看到它 。 我们将其在dnspy中打开(dnspy是.NET反编译器):
本文插图
但是我们遇到了代码混淆 , 不用担心 , 我们可以使用de4dot , 它是个.NET反混淆工具 , 运行它之后 , 我们可以得到一个去混淆的Quasar客户端:
推荐阅读
- 模型|REVIT技巧!如何创建能量模型,实现能量优化
- 技术编程|如何利用数据库进行世界史研究
- 区块链|欧科云链任煜男做客西安广电电台节目,解读区块链如何赋能实体产业
- 苹果笔记本|如何让macbook合上时工作?解决苹果电脑合盖自动休眠问题-macw
- |如何分析“会员数据”,强化门店的竞争力?
- 拍照摄影|如何拍出赞爆朋友圈的自拍照?网红小姐姐公开拍照神器
- 目标检测|数据民工也能移动办公了:目标检测标注App上线,分分钟创建私人数据集
- IOS系统|苹果免签封装如何实现?苹果免签封装会不会掉签?
- 帧数|帧数提升70% NV黑科技DLSS如何开启
- 拍照摄影|即将进入大学的新生想入手一台相机,该如何选?
