|
一个客户的单子,东西做完发成品过去人跑了。。留着没什么用就发出来吧。。
没什么技术含量,大佬可以直接跳过本帖
正文开始
客户需要做注册登录加好友私聊 本文仅分享注册和登录时要用到的secret算法
先抓包看下 基本上每一步都是需要一个salt和secret 这边就随便找个参数最少的来看
- :method: GET
- :path: /verify/telephone?verifyType=1&telephone=18888888889&areaCode=86&language=zh&salt=1617571107345&secret=NBrkzyecuw%2BpU%2BngzlaXqw%3D%3D
- :authority: imapi8092.michat66.com
- :scheme: https
- user-agent: shiku_im/1.0.6 (Linux; U; Android 6.0.1; MI 4LTE Build/MMB29M)
- accept-encoding: gzip
复制代码
apk丢进jeb(本来是打算动态调试的,结果发现算法并不复杂。。。动态调试都没用上)
Ctrl+F 直接搜verify/telephone
- iput-object v1, p0, AppConfig->VERIFY_TELEPHONE:String
复制代码
这边赋值了一下,后面继续搜verify/telephone也没有其他结果,所以后面应该是直接调用了这个AppConfig中的VERIFY_TELEPHONE 继续搜 VERIFY_TELEPHONE
对比抓包得到的参数 除了salt和secret外 还缺少一个zh 解析一下看看
直接跟进去
这一步可以看到 判断了一下是tw还是zh 然后将language字段加入了get的url中 至此就能确定这确实是对应了我们抓的这个包
build方法传过来的arg4为true 继续跟addMac
继续跟
- LoginSecureHelper.generateHttpParam
复制代码
继续跟 LoginSecureHelper.generateBeforeLoginParam
- String v0 = (String)arg5.remove("salt");
- if(v0 == null) {
- v0 = String.valueOf(System.currentTimeMillis());
- }
复制代码 这一部分是从传过来的arg5中移除掉salt并且将salt的值赋给v0
如果v0为空 就取当前时间戳
没什么用 主要跟一下 MAC.encodeBase64
继续跟MAC.encode
算法就出来了 Hmac-MD5 然后base64 结合上一步 可以获取到加密用的秘钥
用易语言的字节集来表示的话 需要吧0x的十六进制转换为10进制 所以应该是
{ -44, 29, 140, -39, -113, 0, -78, 4, -23, -128, 9, -104, -20, -8, 66, 126 }
"" + Parameter.joinValues(arg5) + v0.getBytes()
这边的v0上面也看到了 是时间戳 下面赋值 arg5.put("salt", v0);
getBytes() 在易语言表示的话 到字节集()
接下来就是跟一下 Parameter.joinValues 看看加密的时候都用到了什么东西
StringBuilder v0 = new StringBuilder();
for(Object v1: arg2.values()) {
v0.append(((String)v1));
}
return v0.toString();
这块可以看到 仅仅获取了一下值 没有用到参数名 所以根据抓包得到的数据来进行加密的话 应该是
86zh1888888888911617571107345
其中
86是 areaCode
zh是 language
18888888889是 telephone
1是verifyType
1617571107345是salt
另外值得一提的是 转换为字节集后 直接使用libeay32.dll中的Hmac计算 得到的结果和Java计算得到的结果是有差异的
解决:https://bbs.125.la/forum.php?mod=viewthread&tid=14071237
附上代码
tel = 到文本 (手机号 )secret = 编码_URL编码 (到文本 (编码_BASE64编码A (CryptoAPI类. Hmac (到字节集 (“86zh” + tel + “11617571107345”), { -44, 29, 140, -39, -113, 0, -78, 4, -23, -128, 9, -104, -20, -8, 66, 126 }, #CALG_MD5 )) ), 真, 真, , )url = “https://imapi8092.michat66.com/v ... fyType=1&telephone=” + tel + “&areaCode=86&language=zh&salt=1617571107345&secret=” + secret
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|