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 调试

Download history 538/week @ 2024-05-04 1104/week @ 2024-05-11 761/week @ 2024-05-18 629/week @ 2024-05-25 693/week @ 2024-06-01 698/week @ 2024-06-08 1037/week @ 2024-06-15 565/week @ 2024-06-22 674/week @ 2024-06-29 536/week @ 2024-07-06 1619/week @ 2024-07-13 516/week @ 2024-07-20 600/week @ 2024-07-27 567/week @ 2024-08-03 811/week @ 2024-08-10 557/week @ 2024-08-17

2,584每月下载次数
用于libafl_frida

wxWindows

480KB
4K SLoC

frida-gum docs.rs

Rust对Frida Gum的绑定。

安装前

  • 构建Frida或下载最新支持的包
  • frida-gum.hlibfrida-gum.a移动到/usr/local/include/usr/local/lib(或Rust可以检测到的更合适的文件夹)

或者:使用auto-download功能安装Frida。

请参阅文档以获取使用说明。


lib.rs:

为Rust提供的Gum绑定

Gum为二进制应用程序的仪器化提供了一些实用工具,传统上通过名为GumJS的JavaScript API进行消费。这个crate旨在提供对Gum提供的仪器化API的完整接口,而不是GumJS(即这些绑定不包括JavaObjC模块)。

快速入门

首先,请确保您的平台由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