环境: Windows ,化妆品监管APP2.0.5
查壳使用梆梆加固
打开APP 发现使用了Root 检测 frida-dexdump 没有使用
使用BlackDex32 在未Root的手机上,成功的把APP 的Dex 文件dump 下来
放到jadx 中看dex 文件
也可以看到这个逻辑就是检测Root 后创建的su 文件存不存在
只需要把这个函数hook 掉返回false 就可以过掉Root 检测的弹窗了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
function hook_su3() { var utils = Java.use("c.a.a.b.t"); if (utils) { console.log("find utils") utils.p.overload().implementation = function () { return false; } }
}
function main() { Java.perform(function () { hook_su3()
}); }
setImmediate(main, 0);
|
1
| frida -l hook_su.js -F -U
|
显示找不到类
使用Objection 启动的时候注入命令
1
| objection -g com.nmpaic.hzp explore --startup-command "android hooking list classes"
|
然后看到几个经过混淆的类
1 2 3 4 5 6 7 8 9 10
| c.d.a.f.a c.d.a.f.b c.d.a.f.b$b c.d.a.f.c c.d.a.h.h.a c.d.a.h.h.b c.d.a.h.h.d char cn.jpush.android.service.DownloadProvider com.android.i18n.phonenumbers.AlternateFormatsCountryCodeSet
|
程序最终运行时的类名和反编译得到的类名不一致
尝试使用 objection 来hook
1 2 3 4 5 6
| objection -g com.nmpaic.hzp explore --startup-command "android hooking watch class_method c.d.a.h.h.d --dump-args --dump-backtrace --dump-return"
objection -g com.nmpaic.hzp explore --startup-command "android hooking watch class c.d.a.h.h.d --dump-args --dump-backtrace --dump-return"
|
这个APP 只用修改这个APP 里一个函数的返回值就可以过掉SU检测
这里尝试使用APP 中搜索到的方法结合Objection 的设置函数返回值的方式
1
| objection -g com.nmpaic.hzp explore --startup-command "android hooking set return_value c.d.a.h.h.d.p false"
|
把几个混淆后的类都尝试了一下 发现没有一个能用的