Android逆向-Frida的Hook之旅

安装python环境

mac 自带不需要安装

安装pip

easy_install pip

安装frida 安装frida-tools

pip install frida
pip install frida-tools
//检测是否安装成功
frida-ps
//能看到系统进程,表示安装成功

下载frida-server

官网下载:https://github.com/frida/frida/releases 对应的版本,
注意:Frida-server的版本必须跟你宿主机的Frida版本一致,比如我宿主机Frida的版本是12.2.28,

getprop ro.product.cpu.abi
armeabi-v7a

Android手机是arm的,那么应该下载:rida-server-12.2.28-android-arm.xz 文件。

推送frida-server到root过的手机

#下载后解压文件,并将文件重命名为: frida-server,然后推送到手机
adb push frida-server /data/local/tmp/
#修改权限并运行frida-server
adb shell
su
cd /data/local/tmp/
chmod 777 frida-server
./frida-server
#如果要启动frida-server作为后台进程、可以使用这个命令./frida-server &

开一个终端,使用frida-ps -U命令检查Frida是否正常运行,如果正常运行则会列出Android设备上当前正在运行的进程


开始Hook

利用命令行工具hook libc.so的open()函数

frida 这个命令行工具,可以通过frida -help 查看

“-U” 参数代表我们连接的是远程USB server,同理你也可以使用其他参数来连接,

"-f " 参数则表示在手机端启动一个你指定的android程序,那个FILE则表示应用的包名,

“-f” 通常这个参数配合 --no-pause 参数来使用,因为可能不让进程恢复的话可能会有奇怪的问题,

“-p” 与**“-n”**命令分别表示attach到进程的名字或者pid,

“-l” 参数则是代表需要注入的javascript脚本,而这个javascript的脚本就是我们所写的hook代码,完成函数的hook,内存的dump等一系列功能,

当我们使用frida这个命令行工具成功attach到目标进程的时候,frida会给我们返回一个Frida CLI,说明白点就是一个交互窗口,下面我们就能看到
test.js

setImmediate(function() {
   
    Interceptor.attach(Module.findExportByName("libc.so" , "open"), {
   
        onEnter: function(args) {
   
            log("open() called!")
        },
        onLeave:function(retval){
   

        
  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值