墨锋
Published on 2025-03-22 / 12 Visits
0
0

[翻译]FRIDA官方文档-入门-操作模式

操作模式

Frida通过其强大的C语言编写的插桩核心Gum提供动态插桩。由于插桩逻辑容易变化,因此通常希望使用脚本语言编写,这样在开发和维护时可以更快得到反馈。这时,GumJS派上用场了。通过少量C代码,你可以在一个运行时环境中运行JavaScript,并完全访问Gum的API,从而可以挂钩函数、枚举已加载的库及其导入导出函数、读写内存、扫描内存等。

目录

  1. 注入模式

  2. 嵌入模式

  3. 预加载模式

注入模式

大多数情况下,你希望启动一个现有程序、附加到一个运行中的程序,或者劫持一个正在启动的程序,然后在其中运行插桩逻辑。这是Frida最常见的使用方式,也是我们文档中重点介绍的部分。此功能由frida-core提供,它是一个后勤层,将GumJS打包成共享库,并注入到现有软件中,必要时提供与脚本的双向通信通道,并在之后卸载它们。除了这些核心功能,frida-core还允许你枚举已安装的应用、正在运行的进程和连接的设备。连接的设备通常是运行frida-server的iOS和Android设备。该组件本质上是一个守护进程,通过TCP暴露frida-core,默认监听localhost:27042

嵌入模式

在某些情况下,无法使用注入模式,例如在被限制的iOS和Android系统上。对于这种情况,我们提供了frida-gadget,一个共享库,你可以将其嵌入到想要插桩的程序中。只需加载该库,它就可以让你使用现有的Frida工具(如frida-trace)远程与程序交互。它还支持完全自主的方式,可以从文件系统运行脚本,而无需外部通信。

了解更多关于Gadget的信息,请点击这里

预加载模式

你可能熟悉LD_PRELOADDYLD_INSERT_LIBRARIES吧?如果有一个类似JS_PRELOAD的功能会不会很酷?这时,前面提到的frida-gadget共享库就非常有用,当它被配置为从文件系统加载脚本并自主运行时,便可以实现这种功能。

了解更多关于Gadget的信息,请点击这里


原文链接:Modes of Operation | Frida • A world-class dynamic instrumentation toolkit

翻译来源:ChatGPT


Comment