用于绕过杀毒软件的 C/C++ 源码混淆器

该实现相当复杂,软件开发中的这一领域很少以通俗易懂的方式记录。因此,有博客文章详细介绍了每一个设计选择,并讨论了使用 LLVM API 的独特之处。
docker build . -t avcleaner
docker run -v ~/dev/scrt/avcleaner:/home/toto -it avcleaner bash #adapt ~/dev/scrt/avcleaner to the path where you cloned avcleaner
sudo pacman -Syu
mkdir CMakeBuild && cd CMakeBuild
cmake ..
make -j 2
./avcleaner.bin --help
对于简单程序,操作如下:
avcleaner.bin test/strings_simplest.c --strings=true --
但请注意,你使用的是编译器前端,只有提供构建项目所需的所有包含路径时,它才能正常工作。例如,test/string_simplest.c 包含了 WinSDK 的头文件,脚本 run_example.sh 演示了如何处理此类情况。
CommandLine Error: Option 'non-global-value-max-name-size' registered more than once! LLVM ERROR: inconsistency in registered CommandLine options
如果遇到此错误,请使用 CMakeLists_archlinux.txt 替代 CMakeLists.txt,问题应该会消失。
感谢 @gituser5555 提供的 bug 修复。