Hallucina

Hallucina

site icon
2025.04.20 0
LLVM代码混淆逆向工程安全工具开发效率
Hallucina 是一个强大的混淆工具,旨在混淆和迷惑与自定义 MCP 服务器一起使用的 LLM 客户端,这些客户端通常用于反汇编工具如 Ghidra 和 IDA PRO。Hallucina 使得人工驱动的逆向工程成为必需,LLM 将无法为我们进行逆向工程。
View on GitHub

Overview

基本能力

产品定位

Hallucina 是一个专为逆向工程设计的混淆工具,主要用于保护代码免受自动化逆向工程工具的解析。

核心功能

  • 提供多种混淆技术,包括间接跳转、间接函数调用、间接全局变量引用、C 字符串加密、控制流扁平化等。
  • 支持单文件或整个项目的混淆。
  • 基于 LLVM 17 构建,提供高度集成的混淆功能。

适用场景

  • 保护敏感代码免受逆向工程分析。
  • 增强软件的安全性,防止自动化工具解析代码逻辑。
  • 适用于需要高安全性的软件开发场景。

工具列表

  • clang(LLVM 17):用于编译和混淆代码的主要工具。
  • cmake:用于构建项目。
  • ninja:用于加速构建过程。

常见问题解答

  • 编译错误:确保包含必要的头文件(如 <fstream>)并使用最新版本的 GCC 或 Clang。
  • 内存问题:在 Linux 上可以通过增加交换内存来解决。

使用教程

使用依赖

Windows

  1. 安装 Ninja 并确保其在 PATH 中。
  2. 安装 Visual Studio 2022 及 C++ 开发工具。

Linux

运行以下命令安装依赖:

sudo apt update && sudo apt install -y build-essential cmake ninja-build python3

安装教程

Windows

  1. 打开 VS 2022 的 x64 Native Tools Command Prompt。
  2. 运行以下命令:
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS="/utf-8" -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb" -G "Ninja" ../llvm
ninja

Linux

  1. 运行以下命令:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb" -G "Ninja" ../llvm
ninja

调试方式

  • 使用生成的 clang 二进制文件(位于 build/bin 目录)进行混淆操作。
  • 示例混淆命令:
path_to_build/bin/clang -mllvm -irobf -mllvm --irobf-indbr test.c -o test_obfuscated

许可证

该项目遵循 GPL-3.0 开源许可条款,请参阅 GPL-3.0 了解完整条款。