简单看了一下代码因为signature比较大众,搜出来的结果比较多,看了几个跟包名相关的类
请求的时候大部分都是用的HashMap
所以直接hook HashMap去寻找真正的调用类
XposedHelpers.findAndHookMethod(HashMap.class, "put", Object.class, Object.class, new XC_MethodHook() {
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
if (param.args[0] instanceof String) {
String str = (String) param.args[0];
if (str.equals("signature")) {
XposedBridge.log("key==="+str+"----value==="+param.args[1]);
Throwable ex = new Throwable();
StackTraceElement[] stackElements = ex.getStackTrace();
if (stackElements != null) {
for (int i = 0; i < stackElements.length; i++) {
XposedBridge.log(i + ": " + stackElements[i].getClassName()
+ "----" + stackElements[i].getFileName()
+ "----" + stackElements[i].getLineNumber()
+ "----" + stackElements[i].getMethodName());
}
}
}
}
}
});
可以看到com.bwton.tjmetro.util.HttpReqUtil类的genReqHeaderMap函数
但是在调用的时候发现有两处,但是两处不同的地方是第二个传入的参数,一个默认是空,一个是传入
那么怎么判断知道是哪个地方调用
在进行抓包的时候,是有个random参数的,我这里抓出来是存在的
直接看这个地方传入
看到他是传入了Map转成Json然后进行了处理
可以看到是这个地方进行了md5加密
然后转成了Hex
直接看encryptByPublicKey函数
str是传入的数据,str2是key
str2先进行Base64解密进行RSA加密上传的数据
那么数据中有什么内容,其实也不用我说了,都在java层了[手动狗头]
· 今 日 推 荐 ·
听歌有惊喜,包邮送书哦!!!欢迎私聊,vx:ivu123ivu
将下面地址复制到浏览器即可欣赏
http://163cn.tv/DdLCYjl
(来自@网易云音乐)
本文内容来自网络,如有侵权请联系删除
原文始发于微信公众号(逆向有你):安卓逆向 -- 某app signature参数分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论