[Android]Frida-hook环境配置

准备阶段

  • 反编译工具:Jadx
  • 能够理解Java语言
  • 能编写小型的JavaScript代码
  • 连接工具:adb
  • 设备:Root的安卓机器,或者模拟器

Frida(https://frida.re/)

就像是你计算机或移动设备的妙妙工具。它帮助你查看其他程序或应用内部发生的事情,即使你没有原始代码也能做到。这就像透过窗户去理解事物是如何运作的。Frida还可以钩取程序的功能。这就像给了你修改或观察程序或应用内部工作方式的能力,比如:

  • 拦截函数调用: Frida允许你识别程序或应用中的特定函数或方法,并拦截它们。当这些函数被调用时,Frida可以对它们接收的数据进行更改,或者查看它们的执行情况。

  • 观察和修改: 你可以实时查看程序内部发生的情况。例如,你可以查看变量的值,了解程序的执行流程,甚至在代码被执行时修改数据或代码。

  • 调试和逆向工程: 这种能力对于调试、逆向工程和安全分析非常有价值。开发人员用它来诊断和修复软件中的问题,安全专家用它来发现漏洞和潜在威胁。

  • 动态分析: 与传统的调试工具不同,Frida不需要访问原始源代码。它可以与编译后的代码一起工作,因此非常适用于检查闭源应用程序。

我将介绍一些用于分析Android应用程序的基本Frida使用技巧。

安装

要设置Frida,首先需要使用pip在您的系统上安装frida-tools。您可以通过在终端或命令提示符中运行以下命令来执行此操作:

pip install frida-tools

接下来,您需要从Frida发布页面的GitHub上下载适用于您设备的Frida服务器:

https://github.com/frida/frida/releases

请确保根据您设备的架构选择适当的服务器。
这里我选择使用的是Android Studio中的x86模拟器,所以我将下载的是x86的版本
file
file
如果您使用的是Arm64的机器,请使用Arm64的版本
file
将文件放入模拟器中
file

adb push .\frida-server-16.1.4-android-x86 /data/local/tmp/

file
file
赋予文件权限后运行权限,如果出现权限不足,请使用root
这里处理完毕之后,不用关闭该命令窗口,然后另外使用一个命令窗口输入
file
若出现如上的回显即为配置成功

基本操作

如果您想要获取设备上安装的应用程序包的列表,您可以使用以下命令:

frida-ps -Uai
  • frida-ps:此命令显示关于Android设备上运行进程的信息。
  • -U:此选项用于列出通过USB连接的设备(物理设备或模拟器)上的进程。
  • -a:此选项用于列出所有进程,而不仅仅是当前用户拥有的进程。
  • -i:此选项用于包括有关每个进程的详细信息,例如进程ID(PID)和进程名称。

如果您想要检索特定应用程序的包名称,您可以使用grep命令。

frida-ps -Uai | grep '<应用程序名称>'

要附加Frida到一个应用程序,我们需要应用程序的包名称。因此,在获取了包名称之后,我们可以像这样附加Frida:

frida -U -f <包名称>

相关推荐

  1. PyCharm 环境配置 Python

    2024-02-18 19:02:03       53 阅读
  2. pytorch环境配置

    2024-02-18 19:02:03       64 阅读
  3. 前端开发环境配置

    2024-02-18 19:02:03       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 19:02:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 19:02:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 19:02:03       82 阅读
  4. Python语言-面向对象

    2024-02-18 19:02:03       91 阅读

热门阅读

  1. 学习Android的第十三天

    2024-02-18 19:02:03       54 阅读
  2. 3 处理机调度和死锁(下)

    2024-02-18 19:02:03       51 阅读
  3. Linux的命令简记

    2024-02-18 19:02:03       48 阅读
  4. Rust CallBack的几种写法

    2024-02-18 19:02:03       55 阅读
  5. 11-编写自动化测试

    2024-02-18 19:02:03       47 阅读
  6. 12-输入/输出项目构建命令行程序

    2024-02-18 19:02:03       50 阅读
  7. [蓝桥2022国赛] 费用报销

    2024-02-18 19:02:03       46 阅读
  8. 贪吃蛇小游戏

    2024-02-18 19:02:03       47 阅读
  9. PCIE 4.0 Power Mangement

    2024-02-18 19:02:03       47 阅读
  10. python用socket传输图片

    2024-02-18 19:02:03       43 阅读
  11. Redis常用命令

    2024-02-18 19:02:03       47 阅读
  12. 4 存储器管理(下)

    2024-02-18 19:02:03       45 阅读
  13. 16.3 Spring框架_SpringJDBC与事务管理(❤❤❤❤)

    2024-02-18 19:02:03       54 阅读
  14. Docker-compose容器编排技术

    2024-02-18 19:02:03       40 阅读
  15. CSS的伪类选择器:nth-child()的用法示例

    2024-02-18 19:02:03       49 阅读