39个版本
0.13.7 | 2024年7月22日 |
---|---|
0.13.4 | 2023年12月27日 |
0.13.2 | 2023年8月15日 |
0.13.1 | 2023年7月30日 |
0.3.2 | 2021年3月21日 |
#89 in 调试
2,584每月下载次数
用于libafl_frida
480KB
4K SLoC
frida-gum
Rust对Frida Gum的绑定。
安装前
- 构建Frida或下载最新支持的包
- 将
frida-gum.h
和libfrida-gum.a
移动到/usr/local/include
和/usr/local/lib
(或Rust可以检测到的更合适的文件夹)
或者:使用auto-download
功能安装Frida。
请参阅文档以获取使用说明。
lib.rs
:
为Rust提供的Gum绑定
Gum为二进制应用程序的仪器化提供了一些实用工具,传统上通过名为GumJS的JavaScript API进行消费。这个crate旨在提供对Gum提供的仪器化API的完整接口,而不是GumJS(即这些绑定不包括Java
和ObjC
模块)。
快速入门
首先,请确保您的平台由Gum支持。您可以在Frida版本发布页面找到开发套件的列表。要开始使用Gum,您需要获取一个全局[Gum
]对象;这是为了确保Gum已正确初始化所必需的。接下来,您可以自由使用任何可用的API,例如stalker::Stalker
use frida_gum::{Gum, stalker::{Stalker, Transformer}};
#[cfg(feature = "event-sink")]
use frida_gum::stalker::NoneEventSink;
use lazy_static::lazy_static;
lazy_static! {
static ref GUM: Gum = unsafe { Gum::obtain() };
}
fn main() {
let mut stalker = Stalker::new(&GUM);
let transformer = Transformer::from_callback(&GUM, |basic_block, _output| {
for instr in basic_block {
instr.keep();
}
});
#[cfg(feature = "event-sink")]
stalker.follow_me::<NoneEventSink>(&transformer, None);
#[cfg(not(feature = "event-sink"))]
stalker.follow_me(&transformer);
stalker.unfollow_me();
}
依赖项
~0.8–4.5MB
~81K SLoC