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

obfustring

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

1 个不稳定版本

0.5.0 2023年1月30日

过程宏 中排名第1900

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

每月下载量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