많은 GitHub 프로젝트를 o-llvm으로 난처하게 만듭니다. 그것은 clang에서 구현 된 컴파일 타임 링커입니다. o-llvm에서는 libtool을 사용하는 GitHub 프로젝트를 컴파일/난독 화하려고 시도하지만 난독 화 변환을 지정하는 데 필요한 플래그가 링커를 엉망으로 만듭니다. 내가 전달하고있어Libtool/clang : 링커가 아닌 컴파일러에 인수를 전달합시다
여분의 플래그 등이있다 :
/path/to/obfuscator/clang -O0 -mllvm -bcf -mllvm -boguscf-loop=1 -mllvm -ann
-bcf 수단이 기본 블록마다 실행 -ann가 표시 횟수 가짜 제어 흐름 변환, -boguscf 루프 제한을 적용 printf 문으로 기본 블록에 주석을 답니다.
은 첫째, 나는 구성한 후 메이크업 단계에서이 일을 시도 :
make CC=/path/to/obfuscator/clang CFLAGS="-O0 -mllvm -bcf -mllvm -boguscf-loop=1 -mllvm -ann
그러나 GCC는 링커이고는 "-mllvm"옵션을 몰랐다 때문에 실패했습니다. Libtool의도 자동으로 구성 할 다시 삭제하고 CC에서 CFLAGS를 지정, 다른 프로젝트에서 "-bcf" "-boguscf 루프 = 1"과 "-ann"옵션
을 제거했다 :
./configure CC="/path/to/obfuscator/clang -O0 -mllvm -bcf -mllvm -boguscf-loop=1 -mllvm -ann"
이를 은 "-mllvm"옵션을 인식 연타 할은 "링커"를 만들지 만, 해당 플래그를 제거 libtool이 여전히 호출 망쳐 놨 :
[...] -O0 -mllvm -mllvm -mllvm -Wl,-z -Wl,defs -Wl,-soname [...]
clang: warning: argument unused during compilation: '-mllvm -bcf'
clang: warning: argument unused during compilation: '-mllvm -boguscf-loop=1'
clang: warning: argument unused during compilation: '-mllvm -ann'
clang: warning: argument unused during compilation: '-mllvm -mllvm'
clang: warning: argument unused during compilation: '-mllvm -Wl,-z'
/usr/bin/ld: error: cannot open defs: No such file or directory
내 컴파일러 전용 -Wc와 인수, 플래그를 붙이는 시도를 또는 -Xcompile bu clang은 그 중 어느 것도 인식하지 못합니다.
Libtool 또는 Clang에게 컴파일을위한 난독 화 인수 만 사용하고 연결하지 않도록 지시하는 다른 방법이 있습니까?
감사합니다.