一、指标
明天的指标是 sig 和__NS_sig3,咱们抓个包先
二、步骤
sig 目测像是 MD5
先 jadx 搜寻 sig=,没有找到后果。
再试试 sig,晕倒 6k 多个后果,忽然灵光一闪,这些参数,必然是要退出到 Map 中,那么咱们搜寻 “sig”
应该就是这个 CPU.getClock,Hook 之
var signCls = Java.use('com.yxcorp.xxx.util.CPU');
signCls.getClock.implementation = function(a,b,c){var result = this.getClock(a,b,c);
console.log(bytesToString(b));
console.log(result);
var stack = threadinstance.currentThread().getStackTrace();
console.log("Full call stack:" + Where(stack));
return result;
}
后果还是令人满意的:
入参就是 url 和 post 外面的参数做个排序,而后粘贴在一起。咱们顺接堆栈往上找,sig 呈现了,__NS_sig3 应该不远了。
jeb 要出场了
始终回溯到 p.c0.n.y.v.a 开始不开心了,jadx 罢工了
这下可怎么办?真要回去间接手撕 smali?尽管比 Arm 汇编长得难看一点点,毕竟也是歪瓜裂枣呀。
还好咱们始终奉行敌人多了路好走,来新敌人 Jeb Pro 退场
http://91fans.com.cn/post/jebtool/
Jeb 果然比 jadx 牛 X 一些些,有 IDA 的格调,啃 Apk 就啃了好几分钟。
学生已经说过,饭量越大,能力越大。
在 Jeb 的大胃王的帮忙下,咱们很快定位了 KSecurity.atlasSign(v0_1)
啥也甭说了,大兄弟,Hook 你:
var IKSecurityExCls = Java.use("com.xxx.android.security.KSecurity");
IKSecurityExCls.atlasSign.implementation = function(a){var result = this.atlasSign(a);
console.log(a + ">>> atlasSignB" + result);
return result;
}
后果十分漂亮:
三、总结
开发教训很重要,有些关键字要害函数的的定位须要开发教训的帮忙。而后手头都把握几个工具,jadx 歇了咱们还有 jeb 嘛。