首页
社区
课程
招聘
3
某非法手游协议分析与测试
发表于: 2021-2-3 22:24 12616

某非法手游协议分析与测试

2021-2-3 22:24
12616

(一)前言

       一个朋友说在某个棋牌app上打麻将输了钱,怀疑是被平台坑了,想让平台付出点代价,这可把我难倒了,我哪里有这本事?但是考虑到闲着不如找点乐子,还是答应帮他看一下。

(二)整体分析

  解压该apk,在lib下面发现libil2cpp.so文件,确定该程序为u3d程序。但是并没有找到global-metadata.dat文件,应该是加密了。u3d程序在il2cpp后,运行时需要解析global-metadata.dat来调用相应的函数指针,如果不拿到这个文件,很难去分析libil2cpp.so内的函数。这里直接在程序内存中搜索内存中搜素AF 1B B1 FA就能将其dump下来。如果程序是边执行边解密,那就需要去分析他的解密逻辑。
  打开程序后的数据包很少,并没有向服务器请求资源文件。
  抓取登录包:
    
  http的包,除了图片中的请求头以外,还有post的参数没有截图。

(三)协议字段分析

  使用Perfare大佬的 Il2CppDumper对该程序的libil2cpp.so进行dump,得到c++头文件和ida脚本,用ida脚本将字符串和结构体等信息进行导入
  这里遇到了一些问题,头文件中部分结构体的字段中出现乱码:
    
  至今还不知道是什么原因,以前也没有遇到过,希望有经验的大佬可以指点一下。 出现乱码的地方很多,导致很多结构体不能正常导入ida,这里我把一些出现乱码的重要的结构体(比如Il2CppClass ),手动删除乱码后导入了ida中。
  对使用不同手机在不同网络下用不同的用户名登录的请求包进行对比,发现cty和client_id 为相同值,简单分析后确定这两个值为固定值。
  QA字段:数据被URLEncode过,因为函数名已经通过ida脚本修改过了,所以直接在ida中搜索URLEncode查找到相关函数,简单分析即可定位关键代函数0xF3BD84,用frida hook该函数得到:

参数:

1
 mobile=15856563669&password=1234567890&version=4.0.18&os=android

返回值:

1
 ptenoj@68=8;8;6;9>)udxv|rwgb47698;:=<5){hwvnrs@91516;+rx@fqiutli

  函数先调用System_String__ToCharArray将字符串转换为字符数组,然后对其进行以下计算:


[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2021-2-3 22:25 被某警官编辑 ,原因:
收藏
免费 3
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2022-7-30 09:00
sud0
为你点赞~
2021-2-6 09:12
鸡小葵
为你点赞~
2021-2-4 20:23
最新回复 (7)
雪    币: 2
活跃值: (450)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
膜拜大佬
2021-2-4 09:38
0
雪    币: 1109
活跃值: (3626)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
样本发一下呗
2021-2-4 11:02
0
雪    币: 3030
活跃值: (2645)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
直接发出网站,然后一堆D
2021-2-4 22:30
0
雪    币: 439
活跃值: (2863)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
中文名乱码可以试试改成UTF8,函数变量名乱码可能是用了混淆。
2021-2-5 15:06
0
雪    币: 136
活跃值: (1212)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持一下
2021-2-16 10:29
0
雪    币: 286
活跃值: (396)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
直接DDos,搞死
2021-2-18 15:08
0
雪    币: 1229
活跃值: (694)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
这种网站 还是不要从协议走,很难。不如找找开发漏洞
2021-2-22 16:48
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册