Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amimo/goron
Yet another llvm based obfuscator
https://github.com/amimo/goron
compiler obfuscator ollvm
Last synced: 7 days ago
JSON representation
Yet another llvm based obfuscator
- Host: GitHub
- URL: https://github.com/amimo/goron
- Owner: amimo
- License: apache-2.0
- Created: 2019-09-15T09:01:53.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-26T12:58:29.000Z (over 2 years ago)
- Last Synced: 2023-11-07T18:17:44.202Z (12 months ago)
- Topics: compiler, obfuscator, ollvm
- Size: 179 MB
- Stars: 500
- Watchers: 30
- Forks: 154
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# goron
Yet another llvm based obfuscator.当前支持特性:
- 混淆过程间相关
- 间接跳转,并加密跳转目标(-mllvm -irobf-indbr)
- 间接函数调用,并加密目标函数地址(-mllvm -irobf-icall)
- 间接全局变量引用,并加密变量地址(-mllvm -irobf-indgv)
- 字符串(c string)加密功能(-mllvm -irobf-cse)
- 过程相关控制流平坦混淆(-mllvm -irobf-cff)## 混淆效果
- ### 未混淆
![](images/demo.png)
- ### 间接跳转(-mllvm -irobf-indbr)
![](images/demo-indirect-br.png)
- ### 间接函数调用(-mllvm -irobf-icall)
![](images/demo-indirect-call.png)
- ### 间接全局变量引用(-mllvm -irobf-indgv)
![](images/demo-indirect-globals.png)
- ### 字符串(c string)加密功能(-mllvm -irobf-cse)
![](images/demo-string-encryption.png)
- ### 过程相关控制流平坦混淆(-mllvm -irobf-cff)
![](images/demo-control-flow-flatten.png)
- ### [源码及混淆二进制](examples)## 下载
```
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
```## 参考资源
+ [Hikari](https://github.com/HikariObfuscator/Hikari)
+ [ollvm](https://github.com/obfuscator-llvm/obfuscator)