
Hallucina

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
- 安装 Ninja 并确保其在 PATH 中。
- 安装 Visual Studio 2022 及 C++ 开发工具。
Linux
运行以下命令安装依赖:
sudo apt update && sudo apt install -y build-essential cmake ninja-build python3
安装教程
Windows
- 打开 VS 2022 的 x64 Native Tools Command Prompt。
- 运行以下命令:
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
- 运行以下命令:
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