您的位置:首页 > 其它

比邻通讯协议逆向探究(版本3.7.5.0)

2015-06-09 12:37 369 查看
注:本博文只是作为研究学习用途,请不要用于非法、商业用途。

0x01登录:

首先打开比邻,接入Charles,发一个登录包体,看一下报文构造



可以看到Query String如下:

{
"random": -546376261,//随机数,暂时不知道含义
"clientType": "IPHONE",//手机型号
"version": "3.7.5.0",//软件版本
"netType": "WIFI",//手机网络
"platform": "APPSTORE"//下载渠道
}


postData:

{
"username": "54324324",//账号
"areaCode": "86",//区号,中国为+86
"password": "f76f739b38be1f7c505f5370981fe4b4",//密码,应该就是MD5值
"idfa": "D965A2ED-3598-44C3-8602-3B49C8D77D81",//未知
"mac": "020000000000",//mac码
"setupMark": "2358EA54-5908-4C54-BA55-7C63F034568B"//未知
}


可以看到IDFA和setupMark暂时不知道是什么内容,我们再抓一次包体,看一下是否是固定。



其实验证下是否固定,或者是必要的算法生成的值,我们可以尝试修改一下IDFA和setupMark的值,发送一下看看返回。

我比较偏激的把这两个值直接删除掉发送了

{
"result": "Err-603" //密码错误
}


好吧,确定比邻的服务器并不验证这两个值,那么我们就直接构造登录包登录把

直接登录后返回:

{
"result": "success",
"UserAccount": {
"userId": "1867xxxx",
"username": "1xxxxxxxxx0",
"password": "1xxxxx6",
"accessToken": "d1d0ea7431a43ab1aa134652160938b5",
"refreshToken": "2cca7144d1ebfdb83f03d080f361f96d",
"signature": "U5bs4AdocVH8uxFcVPIhNonEvU4=",
"time": "1433832915",
"isBindMobile": "true"
}
}


0x02个人资料:

登录返回了这么多东西,我们还不知道都是干嘛的,看一下个人资料的包体把



发现有三个参数
accessToken
cnonce
signature


老样子,载入IDA

看到这么一个CLASS



accessToken
signature
是登录的时候返回的,但是
cnonce
不是登录的时候返回的,而这三个值必然每次HTTP访问都会出现,那么我们就全局搜索
cnonce


最后搜索到了
BLHTTPTool::signatureParams
这个函数,看下汇编代码



可以看出调用了
BLCallService::getSignature(Bool b)


跟过去看一下很有料嘛,动态调试看下返回值

调试过程就不写了,挺多的,直接说调试结果:

返回值是
BLAuthenticationSignature
类型:

@interface BLAuthenticationSignature : NSObject
{
unsigned int _reqTimestamp;
unsigned int _keyTimestamp;
NSString *_randNum;
NSString *_signatureStr;
}


调试结果(抓包+动态调试):

{
"signatureStr":"81d6fab49e8b2f15ef6125968eaccf977bee0f6a",
"keyTimestamp":1433832733,
"reqTimestamp":1433836532,
"randNum":"DC37049E74DC4443AEB6C480FFCFD9F8"
}




可以看到

cnonce = randNum
signature = signatureStr
keyTimestamp = keyTimestamp
reqTimestamp = reqTimestamp


确定了加密函数就是
BLCallService::getSignature(Bool b)
,我们就开始分解这个函数把!

未完待续。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: