#string-literal #literals #string #hide #proc-macro #obfuscate #obfuscation

obfustring

编译时使用随机数生成器对字符串字面量进行混淆的过程宏

1 个不稳定版本

0.5.0 2023年1月30日

过程宏 中排名第1900

Download history 3/week @ 2024-03-13 10/week @ 2024-03-27 22/week @ 2024-04-03 4/week @ 2024-04-10 27/week @ 2024-05-01 58/week @ 2024-05-08 15/week @ 2024-05-15 23/week @ 2024-05-22 67/week @ 2024-05-29 58/week @ 2024-06-05 78/week @ 2024-06-12 426/week @ 2024-06-19 79/week @ 2024-06-26

每月下载量674

MIT许可协议MIT

9KB

Obfustring

github crates.io docs.rs license

此crate提供了一个用于字符串字面量的混淆宏。这使得它们容易受到保护,免受常见的逆向工程攻击,如调试器或十六进制编辑器中的字符串引用查找。

字符串字面量 "" 作为输入给出,并转换为 [u8; str_size*2] 数组字面量,然后存储在二进制文件中。每个字符都偏移了随机量。此偏移量与原始数据一起存储,以便可以重建。

安装

[dependencies]
obfustring = "0.5.0"



语法与用法

该crate提供了一个 obfustring!() 宏,它接受一个字符串字面量。

use obfustring::obfustring;

let obfuscated_string = obfustring!("Hello obfustring!"); // <-- Won't show up in binaries or hex editors
let generic_string = String::from("Hello regular string!"); // <-- Will show up in binaries or hex editors

println!("obfuscated_string: {}", obfuscated_string);
println!("generic_string: {}", generic_string);

免责声明

请注意,您绝对不应该将任何加密/API密钥或敏感数据硬编码到您的程序中。虽然这个宏会使它更难,但它绝对不能隐藏给那些足够努力的人。请坚持使用环境变量。



许可协议

本项目采用 MIT许可协议

依赖关系

~1.5MB
~40K SLoC