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.3llvm-3.4llvm-3.5llvm-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 :
  1. -fla for the control flow flattening pass
  2. -sub for the instruction substitution pass
  3. -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

To use o-llvm within Xcode, you have to write a Xcode plugin.
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:
Xcode build settings
And you can add your obfuscation flags to the CXXFLAGS or CFLAGS like that:
Xcode build settings

评论

此博客中的热门博文

Android跨平台编译 —— libevent

开源 C++ 库列表

在Mac OS下使用libevent库