# APP
选用 com.hoge.android.app.hljapp_3.8.7_20220615.apk 这一版本的 app
# root 检测
打开发现有 root 检测
直接采用 objection 在启动阶段过掉检测
objection -g appname explore --startup-command "android root disable" |
这里主要是将 root 后端文件特征抹掉
注入后就可以正常进入 app 了
# app 抓包
使用 postern 抓包后,获取如下接口内容,发现主要的加密参数可能为如下两个:
# 静态分析
# 脱壳
直接用 jadx 打开,发现应该是 360 的壳
直接用 frida_dexdump 脱壳.
pip3 install frida-dexdump | |
# 脱壳 | |
frida-dexdump -FU |
本质上应该是直接把 dex 文件导出来
# jadx 分析
然后把 dex 文件拖到 jadx 中搜索参数,很明显这里估计就是对应的参数加密的位置
很明显,这里的 account 应该是个随机数,接下来跟进 getSign 中看
跟到最里面发现它其实是一个 interface 的实现,直接搜索,发现它是 native 方法
# ida 分析
直接打开对应的 wtf.so,然后搜索 java 进到对应的 get_Sign 方法中
然后直接 hook so 即可
console.log("so start:") | |
var address = Module.findBaseAddress("libnativeappdemo.so").add(0x154+1); | |
console.log("func address:", address) | |
Interceptor.attach(address, { | |
onEnter: function (args) { | |
console.log("params1", Memory.readCString(args[2])); | |
}, | |
onLeave: function (retval) { | |
console.log("here???", retval) | |
} | |
}) |