Frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在系统机器上。frida上层接口支持js、python、c等。
APK逆向方式,frida
从APK到JAVA
apktool
1
apktool d D:\Tools\xiaomi.apk -o E:\IoT\camera\reverse
得到如下文件,从文件中可以看有8个smali文件目录,可以猜测到该app的方法数超过了65536的限制,在编译时编译出多个dex文件,在第二步得到dex文件来验证下我们的猜测。
将apk文件后缀该为zip,解压得到dex文件
dex2jar 得到jar文件
1
d2j-dex2jar E:\IoT\camera\reverse\xiaomi\classes.dex

第三个dex报错,应该是和数字签名或者混淆有关系

jd-gui打开该文件,将class文件反编译成java源代码
发现不止classes3.jar有问题,都被混淆了,O00000o,
hook
可以在smali代码的基础上进行修改,不过一般不建议直接修改smali代码,一般都是写好Java代码然后转换成smali代码进行注入。java转smali在Android studuio中有插件(jJava2Smali)