Android Hook之Frida安装使用

这篇具有很好参考价值的文章主要介绍了Android Hook之Frida安装使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Frida 是一个动态检测框架,允许开发人员在 Windows、macOS、Linux、iOS 和 Android 上的原生应用程序中注入 JavaScript 或 Python 脚本。该框架可用于操纵应用程序的行为、从中提取信息或与其进行通信。Frida 通常被安全研究人员和渗透测试人员用来对应用程序进行动态分析,并执行钩子函数调用、跟踪函数调用和反向代码等任务。对于移动应用开发人员来说,它也很有用,可以用来进行测试或自动化等任务。

使用Frida需要Python 3环境,python环境请大家自行下载安装。我使用的是python3.7版本。

安装Frida

pip install frida -i https://pypi.mirrors.ustc.edu.cn/simple/ 
pip install frida-tools -i https://pypi.mirrors.ustc.edu.cn/simple/

#查看frida版本
frida --version

安装frida-server

安装frida-server前需要先通过adb连接设备,然后进入虚拟机查看模拟器cpu类型

.\nox_adb.exe shell
getprop ro.product.cpu.abi

Android Hook之Frida安装使用
我的是x86,选择x86的frida-server安装包frida-server-16.0.8-android-x86_64.xz。frida-server版本要和上面安装的frida版本对应。
frida-server下载地址:https://github.com/frida/frida/releases

下载后解压文件,然后推送到模拟器上的/data/local/tmp目录

.\nox_adb.exe push frida-server-16.0.8-android-x86 /data/local/tmp/frida-server

frida-server配置和启动

进入adb shell环境

.\nox_adb.exe shell

赋予frida-server权限

chmod 777 frida-server

启动运行

./frida-server

开启端口转发

.\nox_adb.exe forward tcp:27043 tcp:27043 
.\nox_adb.exe forward tcp:27042 tcp:27042

#我用的是模拟器,如果是真机且adb配的有环境变量,用下面的命令
adb.exe forward tcp:27043 tcp:27043 
adb.exe forward tcp:27042 tcp:27042

重新打开一个cmd窗口运行frida-ps -U,查看是否正常运行。注意需要在有python环境的cmd窗口运行。

#列出设备上正在运行的进程
 frida-ps -U

显示已下信息说明运行正常
Android Hook之Frida安装使用

Frida Hook

通过frida-ps -Ua 命令可以查看到所有打开app的包名
这时候就可以试下frida-trace了,比如想看下微信会打开哪些文件,那么执行命令:

frida-trace -U -f com.tencent.mm -i open
实例1:

下面是一个使用 Frida hook Android 应用程序中的方法的实际例子:
假设我们有一个名为 “com.example.app” 的应用程序,其中有一个类 “com.example.app.Secret”,其中有一个名为 “getSecret” 的方法。这个方法会返回一个字符串,我们想要hook它并在每次调用时打印它的返回值。

  1. 在目标设备上运行 Frida Server。
adb push frida-server /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"
  1. 我们在 hook.js文件里面编写钩子的脚本
Java.perform(function () {
    var Secret = Java.use("com.example.app.Secret");
    var secret = Secret.getSecret.implementation = function () {
        console.log("getSecret() called");
        var ret_value = this.getSecret();
        console.log("getSecret() returned: " + ret_value);
        return ret_value;
    };
});
  1. 在本地电脑上,我们可以使用 Frida 来附加到目标进程。
frida -U -f com.example.app -l hook.js

-U 参数表示附加到 USB 设备上的应用程序
-f 参数表示目标进程的包名
-l 参数表示包含 Frida 脚本的文件路径
接着,我们在 hook.js文件里面编写钩子的脚本

最后,在目标应用程序上进行一些操作,并在 Frida 控制台上查看结果,看看钩子是否正常工作。
如果一切顺利,你就可以看到钩子成功地输出了一些信息。

实例2:

使用python脚本来使用frida hook应用程序的例子:

import frida
import sys

def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)

jscode = """
Interceptor.attach(Module.findExportByName("libc.so", "puts"), {
    onEnter: function(args) {
        send(Memory.readCString(args[0]));
    }
});
"""

process = frida.get_usb_device().attach('com.example.app')
script = process.create_script(jscode)
script.on('message', on_message)
script.load()
sys.stdin.read()

其中"com.example.app" 为应用程序的包名, 上述代码将在应用程序的 “libc.so” 中钩住 “puts” 函数,并在回调中打印出信息。
这里,我们使用 frida python API hook应用程序。
frida.get_usb_device().attach('com.example.app')连接到指定包名的应用程序进程。 然后使用script.load()加载 JavaScript 代码并开始监听事件。
这只是一个简单的示例,实际使用中需要根据具体场景来修改代码。文章来源地址https://www.toymoban.com/news/detail-418475.html

Frida 常用命令

  • frida --version - 显示当前 Frida 的版本。
  • frida-ps -U - 显示当前正在运行的 USB 设备上的进程列表。
  • frida-ps -Uai - 列出安装的程序
  • frida-ps -Ua - 列出运行中的程序(查看包名很方便)
  • frida-ps - 显示当前正在运行的进程列表。
  • frida -U -l script.js -f package.name - 通过 USB 连接到设备并在 package.name 应用程序上运行 script.js 脚本。
  • frida-trace -i function_name -U package.name - 在 package.name 应用程序上跟踪函数 function_name 的调用。
  • frida-discover -U - 在 USB 连接的设备上扫描可钩住的函数。
  • frida -U -f package.name --no-pause - 运行 package.name 应用程序并在启动时附加到它,不暂停它。
  • frida-ls-devices - 显示可用的 Frida 设备。
  • frida-kill -U - 结束与 USB 设备上的 Frida 相关进程。
  • frida-trace -U -i "*libc.so*" package.name - 在 package.name 应用程序上跟踪所有 libc.so 中的函数调用。
  • frida -U -l script.js -f package.name -n libexample.so - 在 package.name 应用程序上的 libexample.so 中运行 script.js 脚本。
  • frida-trace -U -I "*sqlite3*" package.name - 在 package.name 应用程序上跟踪所有包含“sqlite3”的函数调用.

  • 📢博客主页:https://blog.csdn.net/qq233325332
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 陌北V1 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

到了这里,关于Android Hook之Frida安装使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jni| unicorn | androidemu | frida_hook

    yang神脚本大全: https://codeooo.blog.csdn.net/article/details/122988215 pip install unicorn pip install androidemu AndroidNativeEmu https://gitee.com/keji8/ExAndroidNativeEmu/ https://github.com/AeonLucid/AndroidNativeEmu h2.js 动态注册魔改: frida -U --no-pause -f package_name -l hook_art.js frida -U --no-pause -f package_name -l hook_artmetho

    2024年02月16日
    浏览(46)
  • Android13 安装最新版 Frida

    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删! Android13 安装最新版 Frida 环境 win10 Pixel4 Android13 Python3.9 Frida16.1.0 Frida-tools12.1.3 PC安装frida和frid

    2024年02月11日
    浏览(52)
  • adb连接安卓模拟器或真机hook参数加密详细过程(frida)

    app逆向时,参数与函数的确定很关键,找到可疑的函数,不确定是否由该函数生成,该怎么解决?hook就应允而生了,首先是要求本地电脑和安卓模拟器(网易mumu模拟器支持多系统,该模拟器作为主流)或真机的连接,无论是网易mumu模拟器还是真机都要取得超级权限(root),

    2024年02月13日
    浏览(66)
  • 【学习笔记】在Android使用Frida进行https抓包

    最近需要在Android进行https抓包,对数据解密,找了很多方法,终于成功了,不过原文一些步骤对于我这个小白还是有点不理解的地方,在此记录一下。 一台root手机 frida环境 该步骤全程参考: [Frida入门教程] 一文搞定Frida环境搭建,基于逍遥模拟器(虚拟设备)和ADB(Android Debug

    2024年02月16日
    浏览(43)
  • Android Spider Frida-Dexdump 脱壳工具下载使用以及相关技术介绍

    本案例使用的App是:引力播.apk,涉及到查壳、脱壳、反编译; 提示:以下是本篇文章正文内容,下面案例可供参考 ApkScan-PKID 查壳工具下载使用:https://blog.csdn.net/EXIxiaozhou/article/details/127196615 JDAX-GUI 反编译工具下载使用:https://blog.csdn.net/EXIxiaozhou/article/details/127207762 Apk下载地

    2024年02月02日
    浏览(58)
  • android frida检测绕过

    Frida检测是一种常见的安卓逆向技术,常用于防止应用程序被反向工程。如果您遇到了Frida检测,您可以尝试以下方法来绕过它: 使用Magisk Hide模块:Magisk是一个强大的安卓root工具,它附带了一个Magisk Hide模块,可以帮助您隐藏root权限。这可以帮助您绕过Frida检测。 使用Xpos

    2024年02月15日
    浏览(49)
  • android frida 逆向 自吐加密算法

    前言: ♛  frida  hook   android   Android  逆向神器 前几天在学习 Android 逆向的时候发现了一个神器:通过  frida hook  我们可以 “劫持”   一些 函数 为我们所用, 今天就和大家上手一个  加密函数的劫持 让打印出: 加密秘钥 密文 效果如下:可以很直观的看出 加密算法以

    2024年02月11日
    浏览(49)
  • Android逆向——过frida检测+so层算法逆向

    frida可以说是逆向里面很受欢迎的工具了,你可以在运行的时候得到几乎你想要的所有东西,函数地址、内存数据、java实例,根据我们的需要去修改程序的运行逻辑等等,但是太流行也不好,迎来了各种检测。 ptrace占坑、进程名检测、端口检测。(这绕过太简单了) D-Bus通信

    2024年01月17日
    浏览(50)
  • 【粉丝福利社】Android应用安全实战:Frida协议分析(文末送书-完结)

    🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。 🏆《近期荣誉》:

    2024年04月09日
    浏览(65)
  • frida安装配置教程

    frida版本和python版本以及Android要对应,python版本过高会导致frida不可用,以下是不严谨的版本对应关系 frida12.3.6 -- python3.7 -- Android5-6 frida12.8.0 --Python3.8–Android7-8 frida14–Python3.8–Android9 查看python版本 python --version 安装指定版本的frida 我用的夜神模拟器安卓9版本,所以安装14版

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包