首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
iOS安全
发新帖
13
7
[原创]某火热的区块链游戏(mir4)的一次通信协议分析
发表于: 2021-12-22 14:23
91271
[原创]某火热的区块链游戏(mir4)的一次通信协议分析
kbb
2021-12-22 14:23
91271
## 前言: 最近区块链游戏不是挺火的嘛,本着研究的态度,对整个游戏网络框架进行了一次分析. > 本文不会直接告诉你怎么样去做才是正确的,而是基于一次一次的分析尝试得出正确的结果. 可以视为一次逆向笔记吧. 本文不涉及脱壳反检测方面姿势. 游戏名:Mir4(传奇4) --- ## 准备工作: 1. 平台: iOS 14.3越狱环境 2. 工具: hopper,ida,frida 3. 知识: 需要对c++虚表有一定的了解,UE4dump和ProtoDump需要. --- ## 正文: 1. 思路 既然是网络层分析,那么第一步肯定是抓包分析一下啦.逆向基础的wirashark,charles这些就不做介绍了. 这一块就不贴图了. 抓包分析后得知: 1. 网络交互是走的tcp连接; 2. 协议是基于protobuf; 3. 通信过程加密了,前几个包是明文包,后续加密了,看了一下位数,不像是非对称加密,因为长度不符合,还是需要验证一下. > protoc --decode_raw < 二级制文件 //可以直接解析proto协议 1. 切入点寻找 首先我们是要对游戏网络交互进行分析,那么需要对UE4虚幻引擎有一定的了解. 通过查阅相关资料得知虚幻引擎是通过'UNetDriver'进行网络交互的,而'UNetDriver'是在'UWorld'下,那么我们就需要对游戏先进行sdk dump拿到实例化对象. 然后拿到`UNetDriver`后,可以在ida里面跟到相应的网络流程,加密等. let's go 那么ue4dump是怎么做的呢?首先安卓平台有一个开源的ue4dumper,我们可以参阅一下:<a href="elink@423K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6C8M7o6M7%4y4o6u0Q4x3V1k6g2c8e0c8p5N6h3#2H3k6i4u0Q4x3V1k6@1M7X3g2W2i4K6u0r3L8h3q4K6N6r3g2J5i4K6u0r3K9X3&6A6">UE4Dumper</a> 核心原理就是找到`GNamesArray`,`GObjectsArray`,`GWorld`这三个内存位置,然后进行遍历读取. 现有的资料基本都是基于ue4.23版本的,4.25有一点改动 1. `GNamesArray` > `FNamePool` 2. `GObjectsArray` > `TUObjectArray` 关于GWrold的寻找,论坛已经又相关帖子了,不再说明,主要说一下自己摸索的剩下两个关键字的寻找. ### FNamePool 我们首先在源码里找到FNamePool的初始化函数,在附近看看有没有相关关键字可以定位的. > /UnrealEngine/Engine/Source/Runtime/Core/Private/UObject/UnrealNames.cpp > FNamePool::FNamePool(); 运气比较好,可以看到有字符串^ ^  也就是说,我们在hopper中找到字符串并查找相关引用,就可以得到`FNamePool`啦:  找到函数顶部,按`X`查找引用:  然后随便找一个进入,看看调用是什么:  这里解释一下, 在C++面向对象中,一般的X0就是this指针,那么这个函数调用了我们的`FNamePool::FNamePool()`,传入的x0对象就是fnamepool的地址,也就是: `0x1065c2000+0x1c0 = 0x1065c21c0` 剩下`TUObjectArray`基本也一样. 然后自己改一改UE4Dumper就可以拿到完整的sdk了:  ## 验证想法 后续补充...午休时间结束了,有时间摸鱼的话我再补充. 包括怎么寻找切入点,算法还原,包括怎么样dump出proto文件等,一时半会写不完 有空我慢慢写,大家可以加Q群交流:`418993549` dump出的proto文件类似下面的. 
登录后可查看完整内容
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
最后于
2021-12-22 14:51 被kbb编辑 ,原因:
#逆向分析
收藏
・
13
点赞
・
7
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
铭信
你的帖子非常有用,感谢分享!
2026-9-7 21:55
wx_晨梦
非常支持你的观点!
2026-7-16 09:51
zhongdong
为你点赞!
2026-6-19 08:14
一路南寻
为你点赞!
2025-3-13 01:18
心游尘世外
为你点赞!
2025-3-5 05:24
伟叔叔
为你点赞~
2023-3-18 04:49
PLEBFE
为你点赞~
2022-7-30 05:59
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
9
)
wx_小清新
雪 币:
62
活跃值:
(54)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
3
粉丝
0
关注
私信
wx_小清新
2
楼
大哥方便留个微信吗
2022-1-14 09:27
0
尐进
雪 币:
5724
活跃值:
(3847)
能力值:
( LV5,RANK:60 )
在线值:
发帖
10
回帖
187
粉丝
163
关注
私信
尐进
3
楼
mark学习
2022-1-15 22:29
0
suuuuu
雪 币:
879
活跃值:
(5144)
能力值:
( LV2,RANK:10 )
在线值:
发帖
22
回帖
298
粉丝
8
关注
私信
suuuuu
4
楼
靠协议挖矿可以日进斗金了
2022-4-27 10:21
0
可以撩你吗
雪 币:
174
活跃值:
(319)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
1
粉丝
0
关注
私信
可以撩你吗
5
楼
mark学习 期待更新
2022-5-4 18:04
0
xigema
雪 币:
205
活跃值:
(155)
能力值:
( LV2,RANK:10 )
在线值:
发帖
5
回帖
38
粉丝
0
关注
私信
xigema
6
楼
qq群加不上啊,想学习如何dump出proto文件,请赐教
2022-5-15 20:42
0
mb_drqcwugq
雪 币:
41
活跃值:
(120)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
37
粉丝
1
关注
私信
mb_drqcwugq
7
楼
66666
2025-3-26 19:03
0
Ahzn
雪 币:
131
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
54
粉丝
0
关注
私信
Ahzn
8
楼
摸摸哒
2025-9-29 02:19
0
大聪明
雪 币:
220
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
1
粉丝
0
关注
私信
大聪明
9
楼
厉害了老哥儿
2025-10-7 13:34
0
ATrueMan
雪 币:
1050
活跃值:
(1635)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
86
粉丝
14
关注
私信
ATrueMan
10
楼
study
2025-10-15 13:32
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
kbb
1
发帖
3
回帖
10
RANK
关注
私信
他的文章
[原创]某火热的区块链游戏(mir4)的一次通信协议分析
91271
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部