#obfuscation #random #wide #hash #string-format

无std obfstr

编译时字符串常量混淆,适用于Rust

13个版本

0.4.3 2023年3月2日
0.4.1 2022年7月29日
0.3.0 2021年3月31日
0.2.1 2020年10月2日
0.1.0 2019年3月20日

无标准库 中排名 29

Download history 7733/week @ 2024-04-22 5748/week @ 2024-04-29 4883/week @ 2024-05-06 5830/week @ 2024-05-13 5406/week @ 2024-05-20 5509/week @ 2024-05-27 7120/week @ 2024-06-03 5996/week @ 2024-06-10 5786/week @ 2024-06-17 4397/week @ 2024-06-24 4824/week @ 2024-07-01 5333/week @ 2024-07-08 4326/week @ 2024-07-15 6972/week @ 2024-07-22 7181/week @ 2024-07-29 7415/week @ 2024-08-05

每月下载量 26,044
14 个包(13 个直接)中使用

MIT授权 MIT

42KB
854

字符串混淆

MIT License crates.io docs.rs Build status

编译时字符串常量混淆,适用于Rust。

字符串常量本身以混淆形式嵌入,并在本地解混淆。必须在该常量生成的相同语句中使用对该临时值的引用。有关更高级用法的说明,请参阅文档。

如果您正在寻找混淆格式字符串(如 format!println! 等),我还有一个包 fmtools,通过启用可选依赖项 obfstr 可自动将字符串混淆应用于您的格式字符串。

示例

obfstr! 宏返回解混淆的字符串作为临时值

assert_eq!(obfstr::obfstr!("Hello 🌍"), "Hello 🌍");

wide! 宏提供编译时UTF-16字符串常量

let expected = &['W' as u16, 'i' as u16, 'd' as u16, 'e' as u16, 0];
assert_eq!(obfstr::wide!("Wide\0"), expected);

random! 宏提供编译时随机值

const RND: i32 = obfstr::random!(u8) as i32;
assert!(RND >= 0 && RND <= 255);

编译时随机值基于 file!()line!()column!() 和一个固定种子以确保可重复性。此固定种子以文本形式存储在环境变量 OBFSTR_SEED 中,可以按需更改。

授权

根据 MIT 许可证 授权,请参阅 license.txt

贡献

除非您明确声明,否则您提交给工作的任何贡献都应按照上述方式授权,没有任何额外的条款或条件。

无运行时依赖