Frida官方手册

来源:互联网 发布:单片机c语言延时程序 编辑:程序博客网 时间:2024/05/08 05:38

欢迎使用

  • 这篇文章的主要目的是对Frida做一个概要的阐述。主要涵盖如下几个方面:
    1. 命令行模式下,交互式函数跟踪
    2. 基于Frida API编写你自己的实用工具
    3. 关于Frida开发的一些建议

Frida到底是什么?

  • 通俗一点讲,Frida是为Native应用开发出来的一把瑞士军刀。从技术的角度讲,Frida是一个动态代码执行工具包。通过Frida你可以把一段JavaScript注入到一个进程中去,或者把一个动态库加载到另一个进程中去,并且Frida是跨平台的,也就是说,你可以对Windows, macOS, GNU/Linux, iOS, Android以及QNX 系统上的进程进行上述操作。
  • 为了使用方便,Frida工具包在基于自身API的基础上也提供了一些简单的小工具, 你可以根据自己的需求直接拿来使用,或者可以作为你后续进行Frida脚本开发的参考示例。

Frida能干啥呢?

  • 这个问题很实际, 我们来看几个实际的使用场景你就大致明白了:

    • 假如说现在市面上出了很火的App, 目前只有 iOS版本的, 现在假如你对这个App比较感兴趣想了解下大致的实现逻辑。 通过WireShark这样的抓包工具发现, 网络协议是加密的, 看不到有效的信息,这个抓包的办法就不行了。这个时候,你就可以考虑用Frida进行 API 跟踪的方式来达到你的目的。

    • 假如你开发了一个桌面应用并且已经部署到用户那里,现在用户反馈过来一个问题,但是你发现你打的日志信息又不足以定位问题, 那你只能说再加一些日志,然后再给用户单独发一个版本来定位问题,这个是传统的问题定位方式。但是如果考虑用Frida的话,那问题定位就简单多了,使用Frida你可以只需要几行脚本就可以随意加入你想要的问题诊断逻辑,而不需要再给用户单独发一个问题定位版本。

    • 你还可以使用Frida给WireShark快速的做一个经过加密的协议嗅探器,更进一步,为了满足你的实验需求,你甚至可以主动发起函数调用来模拟不同的网络状态。

    • 如果你有一个内部App需要做黑盒测试,如果你用Frida的话,你就可以用完全不侵染原有业务逻辑的基础上进行测试,尤其在进行逻辑异常流程测试的时候,效果很好。

为什么Frida使用Python提供API, 又用JavaScript来调试程序逻辑呢?

  • Frida核心引擎是用C写的, 并且集成了google 的JavaScript引擎V8, 把包含了V8的代码注入到目标进程之后,通过一个专门的信息通道,目标进程就可以和这个注入进来的JavaScript引擎进行通信了, 这样通过JavaScript代码就可以在目标进程中做很多事情了,比如:内存访问、函数Hook甚至调用目标进程中的原生函数都可以。

  • 通过Python和JS代码, 你可以快速的开发出无风险的Frida脚本,因为如果你的JS代码里面错误或者异常的话,Frida都会给你捕获到,不会让目标进程Crash的,所以叫无风险。

  • 如果你非得不想使用Python进行开发, 你也可以直接用C进行开发, 并且Frida还提供了 Node.js、 Swift、.net、Qml等语言的接口封装。

建议、提醒

  • 这里提供了一些建议、提醒的信息链接,抽空可以去看看
  • 具体信息请参考(https://www.frida.re/docs/home/)最下面, 我就不贴图了。
原创粉丝点击