#jni #mangle #java #i32 #class #package #function-signature

jni-mangle

为JNI使用对Rust函数进行混淆

3个版本

0.1.2 2023年9月7日
0.1.1 2023年9月7日
0.1.0 2023年9月7日

1447Rust模式

GPL-3.0 许可证

20KB
215 代码行

Rust函数混淆器,用于JNI

Crates.io Docs.rs Build Clippy

jni-mangle crate提供处理宏,用于与JNI调用的Rust函数一起工作。

此crate的主要目的是将可能看起来像这样的Rust函数

#[no_mangle]
#[allow(non_snake_case)]
pub extern "system" fn Java_com_example_Example_addTwoNumbers(a: i32, b: i32) -> i32 {
   a + b    
}

转换为更易读的形式

use jni_mangle::mangle;

#[mangle(package="com.example", class="Example", method="addTwoNumbers")]
pub fn add_two_numbers(a: i32, b: i32) -> i32 {
   a + b    
}

依赖项

~2.7–4MB
~78K SLoC