frida动态插桩初探

前言

近期碰到了分析app的需求,就学习了一下 frida的动态插桩技术。frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在我们自己的控制机上。frida上层接口支持js、python、c等。

环境配置

安装frida模块

pip install frida 

安装frida-tools模块

pip install frida-tools 

通过如下命令查看模拟器架构。从 https://github.com/frida/frida/releases 可下载对应架构的 frida-server,并上传到模拟器/手机中。

getprop ro.product.cpu.abi 

frida hook java层 实操

这里拿的是一个别人写的 demo文件进行练手。实现的功能是,按了按钮就会返回一个随机数。

frida动态插桩初探

用jadx反编译apk可以很容易找到如下代码,我们知道如果我们可以控制 Jniint的返回值,便可以控制打印出来的数据。

frida动态插桩初探

通过如下代码便可hook其返回值为 6666。

Java.perform(function () {     // we create a javascript wrapper for MainActivity     var Activity = Java.use('com.erev0s.jniapp.MainActivity');     // replace the Jniint implementation     Activity.Jniint.implementation = function () {         // console.log is used to report information back to us         console.log("[+] Hook Jniint success!");         // return this number of our choice         return 6666     }; }); 

frida动态插桩初探

参考连接

https://xz.aliyun.com/t/8211

https://erev0s.com/blog/how-hook-android-native-methods-frida-noob-friendly/

发表评论

评论已关闭。

相关文章