首页
社区
课程
招聘
[原创]记一次基于Soket通信的app的分析
发表于: 2020-4-28 09:13 7997

[原创]记一次基于Soket通信的app的分析

2020-4-28 09:13
7997

该App是一个股票数据查看软件,可以查看股票的交易数据,K线

数据
分时线
K线

由于APP逻辑复杂故只列出有用部分

APP经过加壳,脱壳后使用MT绕过签名效验重打包成功

壳

在自定义的Application的onCreate方法中进行一些数据的初始化

图片.png

读取配置文件中的配置

图片.png

解析assets文件夹中的MbUserMarket.xml文件存入mPBMarketArraymHomeMenuMarkets

图片.png

解析文件pbtransclnt.xml存入CPDDataDecode的静态数组g_vDataPackage设置so库的DesKey

图片.png

读取main.cfghq_addr.ini文件中的服务端地址

图片.png

直接发送handlerMessage

图片.png

对应操作

图片.png

initCodeTable()中尝试从文件中加载数据

图片.png

doLogin()进行登录请求

图片.png

然后将参数编码加密后调用addSendData方法

图片.png

编码方式为:将参数用|分隔然后在转换为字节数组

图片.png
图片.png

加密方式根据参数确定是否DES加密,Zlib压缩,然后将发送的数据的信息存入前12位

图片.png

完成后将数据加入到GlobalNetConnectNetSendThread
如果是mHQPushNet则使用第二个端口

图片.png

然后启动NetSendThread线程(run方法代码较长只列出关键部分)

首先读取在mApp中加载的服务器地址读取后直接尝试连接,删除连接成功外的所有地址然后检查欲发送的数据是否合法

图片.png

上图 连接成功后将成功的地址记录

图片.png

然后将欲发送数据写入SendByteBuffer

图片.png

然后写入Socket

再从Socket中读取回复

图片.png

回复的数据解密(也就是刚才分析的加密的逆过程)
解析完成后如果设置了接受消息的Handler,则会发送消息

图片.png

登录成功后 请求MarketInfo,并根据第一次登录返回,用另一网络线程登录
(请求过程与登录过程类似 故不再诉)

图片.png

请求MarketInfo成功后 解析MarketInfo并请求CodleTable

图片.png

解析成功后记录数据 并保存为文件

图片.png

其它的数据请求与上述过程类似,不再重复

既然已经了解客户端与服务端的通信过程,则可以模拟客户端对服务器收发数据

图片.png

首先模仿App的编码加密过程将预发送的数据编码加密

图片.png

然后开启新线程将数据发送到服务端

image.png

接收返回的数据并解析

image.png

解析返回的数据并打印出来


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
支持
分享
最新回复 (14)
雪    币: 1490
活跃值: (9928)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
2
app样本不放一个咩?
2020-4-28 09:26
0
雪    币: 344
活跃值: (444)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
3
misskings app样本不放一个咩?
来了来了 https://lanzous.com/ic0r9cf
2020-4-28 09:34
0
雪    币: 235
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主 你是真机调试 还是模拟?
2020-4-28 10:30
0
雪    币: 12502
活跃值: (3053)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
牛批,360加固,然后你脱壳重打包,真的强
2020-4-28 11:25
0
雪    币: 344
活跃值: (444)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
6
mb_ywztaxie 楼主 你是真机调试 还是模拟?
真机调的,配合frida,wireshark去分析的
2020-4-28 12:37
0
雪    币: 344
活跃值: (444)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
7
白菜大哥 牛批,360加固,然后你脱壳重打包,真的强
不是我干的 楼主很菜 脱壳还可以 重打包是别人做的
2020-4-28 12:40
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
EASONs 不是我干的 楼主很菜 脱壳还可以 重打包是别人做的[em_10]
厉害厉害
2020-4-28 16:37
0
雪    币: 4883
活跃值: (18890)
能力值: ( LV13,RANK:317 )
在线值:
发帖
回帖
粉丝
9
学习学习,马上学习
2020-4-28 17:49
0
雪    币: 482
活跃值: (1007)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
EASONs 不是我干的 楼主很菜 脱壳还可以 重打包是别人做的[em_10]
大佬,脱壳的过程写写啊
2020-4-28 22:46
0
雪    币: 1841
活跃值: (1290)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
11
学习学习
2020-4-29 00:02
0
雪    币: 344
活跃值: (444)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
12
Lateautumn4 大佬,脱壳的过程写写啊[em_75]
脱壳的话其他大佬写了很多教程 可以去看看哦
2020-4-29 10:53
0
雪    币: 924
活跃值: (100)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
大佬脱壳是dump dex嘛
2020-4-29 16:02
0
雪    币: 344
活跃值: (444)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
14
ghostfevil 大佬脱壳是dump dex嘛
Fdex2可以脱
2020-4-29 16:10
0
雪    币: 235
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
EASONs 真机调的,配合frida,wireshark去分析的
好的 谢谢了 
2020-5-17 23:47
0
游客
登录 | 注册 方可回帖
返回
//