幻觉
幻觉 是一个强大的混淆工具,旨在混淆和幻觉LLM客户端,这些客户端与Ghidra和IDA PRO等反汇编程序的自定义MCP服务器一起使用。
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.
在这里,您可以看到原始测试代码和模糊测试代码之间的区别:
混淆项目
对于大型项目,将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进行构建。按照以下说明设置构建环境。
先决条件
视窗
- 安装 忍者 并确保它在你的路径中。
- 使用C++开发工具安装Visual Studio 2022。
Linux
运行以下命令以安装必备组件:
sudo apt update && sudo apt install -y build-essential cmake ninja-build python3构建说明
视窗
- 打开VS 2022的x64本机工具命令提示符。
- 运行以下命令:
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
ninjaLinux
- 运行以下命令:
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特定问题,请确保以下内容:
- 添加
#include任何报告丢失的文件std::ifstream. - 为了兼容性,请使用最新版本的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重要提示
构建后,使用生成的 clang 二进制位于 build/bin 目录。此版本的 clang 基于LLVM 17,并包括Hallucina提供的模糊特征。
______________________________________________________________________
为Hallucina做出贡献
我们欢迎捐款!看 DEVELOPMENT.md 有关设置开发环境和提交pull请求的详细信息。
______________________________________________________________________
许可证
此项目根据GNU v3许可证获得许可。请参阅 许可证 文件以获取详细信息。
