看雪论坛作者ID:kbb
准备工作:
既然是网络层分析,那么第一步肯定是抓包分析一下。逆向基础的wirashark,charles这些就不做介绍了。
-
网络交互是走的tcp连接;
-
协议是基于protobuf;
-
通信过程加密了,前几个包是明文包,后续加密了,看了一下位数,不像是非对称加密,因为长度不符合,还是需要验证一下。
首先我们是要对游戏网络交互进行分析,那么需要对UE4虚幻引擎有一定的了解。
通过查阅相关资料得知虚幻引擎是通过’UNetDriver’进行网络交互的,而’UNetDriver’是在’UWorld’下,那么我们就需要对游戏先进行sdk dump拿到实例化对象。
然后拿到UNetDriver后,可以在ida里面跟到相应的网络流程,加密等。
-
GNamesArray > FNamePool
-
GObjectsArray > TUObjectArray
FNamePool
/UnrealEngine/Engine/Source/Runtime/Core/Private/UObject/UnrealNames.cpp
FNamePool::FNamePool();
验证想法
E N D
看雪ID:kbb
https://bbs.pediy.com/user-home-585132.htm
# 往期推荐
2.内核漏洞学习-HEVD-NullPointerDereference
原文始发于微信公众号(看雪学苑):某火热区块链游戏(mir4)的一次通信协议分析