• Stars
    star
    510
  • Rank 86,627 (Top 2 %)
  • Language
  • License
    Apache License 2.0
  • Created about 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Yet another llvm based obfuscator

goron

Yet another llvm based obfuscator.

当前支持特性:

  • 混淆过程间相关
  • 间接跳转,并加密跳转目标(-mllvm -irobf-indbr)
  • 间接函数调用,并加密目标函数地址(-mllvm -irobf-icall)
  • 间接全局变量引用,并加密变量地址(-mllvm -irobf-indgv)
  • 字符串(c string)加密功能(-mllvm -irobf-cse)
  • 过程相关控制流平坦混淆(-mllvm -irobf-cff)

混淆效果

  • 未混淆

  • 间接跳转(-mllvm -irobf-indbr)

  • 间接函数调用(-mllvm -irobf-icall)

  • 间接全局变量引用(-mllvm -irobf-indgv)

  • 字符串(c string)加密功能(-mllvm -irobf-cse)

  • 过程相关控制流平坦混淆(-mllvm -irobf-cff)

下载

git clone https://github.com/amimo/goron.git -b llvm-7.1.0

编译

cd goron
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm
make -j12

使用

跟ollvm类似,可通过编译选项开启相应混淆. 如启用间接跳转混淆

$ path_to_the/build/bin/clang -mllvm -irobf -mllvm --irobf-indbr test.c

对于使用autotools的工程

$ CC=path_to_the/build/bin/clang or CXX=path_to_the/build/bin/clang
$ CFLAGS+="-mllvm -irobf -mllvm --irobf-indbr" or CXXFLAGS+="-mllvm -irobf -mllvm --irobf-indbr" (or any other obfuscation-related flags)
$ ./configure
$ make

参考资源