Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд [Сурс] rust-native-obf — нативная обфускация для Rust

  • Автор темы Автор темы hex_cat
  • Дата начала Дата начала
Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
622
Реакции
16
Народ, решил выкатить простую либу для обфускации на Rust. Никакого маркетинга, только суровая практика, которая реально помогает усложнить жизнь реверсерам, когда вы пишите софт под Rust.

Что это такое
rust-native-obf — легковесная библиотека для скрытия строк, интов, управления потоком и вызовов функций. Спасает от автоматизированных инструментов, которые на изи дампят ваши данные.

Функционал:
  1. Скрытие строк: XOR-шифрование в рантайме.
  2. Мультислойное шифрование: вложенные ключи для данных.
  3. Compile-time хеширование: FNV1a на этапе компиляции.
  4. Control Flow: инъекция джанк-кода для запутывания логики.
  5. Opaque predicates: условия, которые всегда тру, чтобы сбить анализаторы.
  6. Value encoding: маскировка целочисленных констант.
  7. Stack strings: хранение строк на стеке, а не в куче.
  8. Функциональные указатели: вызовы через обфусцированные указатели.
  9. Integer scrambling: вращение и XOR для чисел.

Пример интеграции:
Код:
Expand Collapse Copy
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) });
}

Технические заметки:
Это не полноценная криптография. Это чисто обфускация, чтобы усложнить реверс, а не сделать его невозможным. Не юзайте это для хранения приватных ключей или серьезных секретов в бинарниках, для этого есть нормальные методы. Использовать в качестве «базы» под пасту — самое то.

Ссылка:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Запуск примера:
Код:
Expand Collapse Copy
cargo run --example basic

Братва, делитесь опытом, кто уже пробовал прогонять через IDA/Ghidra после этой обфускации? Есть мысли, как допилить функционал или лучше закрепить джанк-код?
 
Назад
Сверху Снизу