- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 295
- Реакции
- 7
Народ, решил выкатить простую либу для обфускации на Rust. Никакого маркетинга, только суровая практика, которая реально помогает усложнить жизнь реверсерам, когда вы пишите софт под Rust.
Что это такое
rust-native-obf — легковесная библиотека для скрытия строк, интов, управления потоком и вызовов функций. Спасает от автоматизированных инструментов, которые на изи дампят ваши данные.
Функционал:
Пример интеграции:
Технические заметки:
Это не полноценная криптография. Это чисто обфускация, чтобы усложнить реверс, а не сделать его невозможным. Не юзайте это для хранения приватных ключей или серьезных секретов в бинарниках, для этого есть нормальные методы. Использовать в качестве «базы» под пасту — самое то.
Братва, делитесь опытом, кто уже пробовал прогонять через IDA/Ghidra после этой обфускации? Есть мысли, как допилить функционал или лучше закрепить джанк-код?
Что это такое
rust-native-obf — легковесная библиотека для скрытия строк, интов, управления потоком и вызовов функций. Спасает от автоматизированных инструментов, которые на изи дампят ваши данные.
Функционал:
- Скрытие строк: XOR-шифрование в рантайме.
- Мультислойное шифрование: вложенные ключи для данных.
- Compile-time хеширование: FNV1a на этапе компиляции.
- Control Flow: инъекция джанк-кода для запутывания логики.
- Opaque predicates: условия, которые всегда тру, чтобы сбить анализаторы.
- Value encoding: маскировка целочисленных констант.
- Stack strings: хранение строк на стеке, а не в куче.
- Функциональные указатели: вызовы через обфусцированные указатели.
- Integer scrambling: вращение и XOR для чисел.
Пример интеграции:
Код:
use rust_native_obf::*;
fn main() {
let secret = obf_string!("my secret key");
let hash = ct_hash!("compile time hashing");
let result = confuse_flow!({ x * 2 });
let hidden = hide_call!({ sensitive_function(100) });
}
Технические заметки:
Это не полноценная криптография. Это чисто обфускация, чтобы усложнить реверс, а не сделать его невозможным. Не юзайте это для хранения приватных ключей или серьезных секретов в бинарниках, для этого есть нормальные методы. Использовать в качестве «базы» под пасту — самое то.
Ссылка:
Запуск примера:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Запуск примера:
Код:
cargo run --example basic
Братва, делитесь опытом, кто уже пробовал прогонять через IDA/Ghidra после этой обфускации? Есть мысли, как допилить функционал или лучше закрепить джанк-код?