原贴:https://bbs.125.la/thread-14524336-1-1.html
1.首先抓包分析,只有ncode被加密了
2.反编译app,这里以(jadx)为例,查找字符串"ncode"
3.点击进入,看到REQ_NCODE,继续搜索 REQ_NCODE,直接定位加密的地方。
getNcodeString(ApiParamsConst.getKey() + reqImei + "1" + reqTime) ApiParamsConst.getKey() 是个固定值,调试输出就行,reqImei 是设置信息,reqTime时间搓
4.分析调用方法
String s = Util.MD5(key);
String start = s.substring(0, 10);
return Util.MD5(start + s.substring(22));
查看java代码得知 先将ApiParamsConst.getKey() + reqImei + "1" + reqTime 进行md5加密(大写),然后取前10位和后10位,再次进行md5加密。
代入易语言计算验证结果
变量名 | 类 型 | 静态 | 数组 | 备 注 | imei | 文本型 | | | reqtime | 文本型 | | | key | 文本型 | | | temp | 文本型 | | | start | 文本型 | | |
key = “ADF2WIU0D8838-6GHGNLFAF”imei = “865166020291327”reqtime = “1578496677239”temp = 校验_取md5 (到字节集 (key + imei + “1” + reqtime ), 真)输出调试文本 (校验_取md5 (到字节集 (取文本左边 (temp, 10 ) + 取文本右边 (temp, 10 )), 真))
和抓包结果一样,分析完毕。
|