obfuscator-Installation
You will find here some informations on how to get, build and use our project.
Getting the sources and building
We maintain several branches: the one named
llvm-4.0
is the latest official (i.e., non-dev) version and is based on the latest version 4.0.1 released by the LLVM team. Older branches are also available: llvm-3.3
, llvm-3.4
, llvm-3.5
, llvm-3.6.1
At the moment, all our obfuscation transforms have been ported in all branches.
To get the latest version of the LLVM branch, you can use the following commands:
Older branches can be accordingly be cloned.
When the build is finished, you should have all the binaries in
build/bin
. Note that this source tree contain LLVM and Clang.How to use it
The simplest way to use Obfuscator-LLVM, is to pass a flag to the LLVM backend from Clang. The current available flags are :
-fla
for the control flow flattening pass-sub
for the instruction substitution pass-bcf
for the bogus control flow pass
For annotations, see Functions annotations.
Imagine that you have a code file named
test.c
and that you want to use the substitution pass; just call clang
like that :
Of course, you can call more than one pass at a time (e.g flattening and substitutions) :
If you have a project using the 'autotools' and you want to compile it with obfuscation, you can do that :
If you have questions, don't hesitate to [contact](How to Contribute) us.
Integration into Xcode
This tutorial is based on this one. It was tested with Xcode 8.2.
Change:
Then:
Change:
Then:
Change:
Then:
Now, you can open Xcode and set the new compiler in your project settings:

And you can add your obfuscation flags to the
CXXFLAGS
or CFLAGS
like that:
评论
发表评论