返回市场
幻觉

幻觉

作者:smadi0x863 星标更新:2025-04-20

项目介绍

Hallucina

Hallucina 是一个强大的混淆工具,旨在使用于反汇编器(如 Ghidra 和 IDA PRO)的自定义 MCP 服务器上的 LLM 客户端感到困惑和幻觉。

Hallucina 使得人工驱动的逆向工程成为必要,LLMs 不会为我们进行逆向工程!抱歉小朋友们 :)

使用方法

Hallucina 提供了一个简单的界面来应用混淆技术。以下是一些使用示例:

混淆单个文件

要使用生成的 clang(LLVM 17)混淆单个源文件,请执行以下命令:

path_to_build/bin/clang -mllvm -irobf -mllvm --irobf-indbr test.c -o test_obfuscated

此命令将指定标志 -mllvm -irobf-mllvm --irobf-indbr 的混淆技术应用于 test.c 文件,并生成一个名为 test_obfuscated 的混淆输出文件。

这里可以看到原始测试代码与混淆后代码之间的差异:

Diff

混淆项目

对于较大的项目,将 Hallucina 集成到您的构建系统中:

CC=path_to_build/bin/clang
CFLAGS+="-mllvm -irobf -mllvm --irobf-indbr"
./configure
make

可用的混淆标志

  • 混淆过程之间的关联性。
  • 间接跳转,加密跳转目标(-mllvm -irobf-indbr)。
  • 间接函数调用,加密目标函数地址(-mllvm -irobf-icall)。
  • 间接全局变量引用,加密变量地址(-mllvm -irobf-indgv)。
  • C 字符串加密-mllvm -irobf-cse)。
  • 与过程相关的控制流平坦化混淆-mllvm -irobf-cff)。
  • 全面应用上述所有功能-mllvm -irobf-indbr -mllvm -irobf-icall -mllvm -irobf-indgv -mllvm -irobf-cse -mllvm -irobf-cff)。

构建 Hallucina

Hallucina 支持使用 LLVM 17 进行构建。请按照以下说明设置构建环境。

先决条件

Windows

  1. 安装 Ninja 并确保它在您的 PATH 中。
  2. 安装带有 C++ 开发工具的 Visual Studio 2 2022。

Linux

运行以下命令以安装先决条件:

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

构建说明

Windows

  1. 打开 x64 Native Tools Command Prompt for VS 2022。
  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

常见问题排查

编译错误

如果在编译过程中遇到错误,例如缺少头文件或 GCC 特定的问题,请确保:

  • 在报告缺少 std::ifstream 的任何文件中添加 #include <fstream>
  • 使用最新版本的 GCC 或 Clang 以确保兼容性。

构建过程中的内存问题

如果在构建过程中遇到内存问题,可以通过增加交换内存来解决:

Linux

运行以下命令以临时增加交换内存:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

要使此更改永久生效,请在 /etc/fstab 中添加以下行:

/swapfile none swap sw 0 0

重要提示

构建完成后,请使用位于 build/bin 目录下的生成的 clang 可执行文件。此版本的 clang 基于 LLVM 17,并包含了 Hallucina 提供的混淆功能。


为 Hallucina 贡献

我们欢迎贡献!请参阅 DEVELOPMENT.md,了解如何设置开发环境并提交拉取请求的详细信息。


许可证

本项目根据 GNU v3 许可证发布。详情请参阅 LICENSE 文件。

参考资料