
바이러스 백신 우회를 위한 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 --
하지만, 이 도구는 컴파일러 프론트엔드라는 점을 알아야 합니다. 프로젝트를 빌드하는 데 필요한 모든 include 경로를 제공해야만 제대로 작동합니다. 예를 들어, 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.txt 대신 CMakeLists_archlinux.txt를 사용하면 문제가 해결됩니다.
버그 수정에 기여해주신 @gituser5555님께 감사드립니다.