尝试解析 ssl 双向校验, 抓 soul 的包, 使用 frida 来 hook 获取密码 hook 目标
package cn.soulapp.android.net;
public class o extends SSLSocketFactory {
...
public o(android.content.Context r7, java.lang.String r8) {
...
java.lang.String r8 = cn.soulapp.android.soulpower.SoulPowerful.l(r8)
char[] r4 = r8.toCharArray() // Catch:{ Exception -> 0x0049, all -> 0x004d }
java.security.KeyStore r3 = java.security.KeyStore.getInstance(r3) // Catch:{ Exception -> 0x00e9 }
r3.load(r7, r4) // Catch:{ Exception -> 0x0049, all -> 0x004d }
L_0x0049:
r7.close() // Catch:{ Exception -> 0x0055 }
goto L_0x0055
...
}
}
编写 js 脚本如下:
console.log("Script loaded successfully ");
Java.perform(function x() {
console.log("Inside java perform function");
//定位类
var my_class = Java.use("cn.soulapp.android.net.o");
// var my_class = Java.use("cn.soulapp.android.soulpower.SoulPowerful");
console.log("Java.Use.Successfully!");//定位类成功!
//在这里更改类的方法的实现( implementation )
my_class.$init.overload("android.content.Context", "java.lang.String").implementation = function (args, args2) {
console.log("debug");
console.log("args1", args)
console.log("args2", args2)
// 打印替换前的参数
console.log("Ok");
// var aa = Java.use("cn.soulapp.android.soulpower.SoulPowerful.l()");
// console.log(aa.p().a(aa.p().a()))
return this.$init(args, args2);
}
});
目前卡在方法没有被调用上,console.log("debug")没有执行
所用测试 apk 下载地址: https://share.weiyun.com/jltxrcPz
1
0o0O0o0O0o 2021-06-16 08:52:58 +08:00 via iPhone
*oul 没有必要反编译看那么多,hook KeyStore.load 简单些
|
2
MaxLi77 2021-06-16 09:26:36 +08:00
hook 不上主要有两个原因,1. 注入时机不对,脚本要在 app 启动前注入 2. 所在方法的 classloader 不对
不过这个问题最好的解决方案还是按楼上说的,hook KeyStore.load |
3
zer0fire OP @0o0O0o0O0o 已做修改, 但是依旧注入时机不对
修改如下: ``` console.log("Script loaded successfully "); Java.perform(function x() { console.log("Inside java perform function"); //定位类 var my_class = Java.use("java.security.KeyStore"); console.log("Java.Use.Successfully!");//定位类成功! //在这里更改类的方法的实现( implementation ) my_class.load.overload("java.io.InputStream", "[C").implementation = function (args1, args2) { console.log("args1", args1) console.log("args2", args2) } }); ``` |
4
zer0fire OP 后面尝试使用这个 https://gist.github.com/ceres-c/cb3b69e53713d5ad9cf6aac9b8e895d2 也失败, 获取不到
|