https://github.com/tsarpaul/llvm-string-obfuscator
LLVM String Obfuscator
https://github.com/tsarpaul/llvm-string-obfuscator
llvm obfuscate-strings obfuscation
Last synced: 2 months ago
JSON representation
LLVM String Obfuscator
- Host: GitHub
- URL: https://github.com/tsarpaul/llvm-string-obfuscator
- Owner: tsarpaul
- Created: 2020-04-14T18:16:20.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-05-11T06:05:16.000Z (almost 5 years ago)
- Last Synced: 2023-11-07T17:32:01.947Z (over 2 years ago)
- Topics: llvm, obfuscate-strings, obfuscation
- Language: C++
- Size: 65.4 KB
- Stars: 223
- Watchers: 9
- Forks: 40
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LLVM String Obfuscator
Hide all your precious strings without touching a single line of your source code, powered by LLVM bytecode manipulation.
Accompanying post: https://medium.com/@polarply/build-your-first-llvm-obfuscator-80d16583392b

## How-To
1. Install llvm
```sudo apt install llvm```
2. Build the StringObfuscator library:
```
mkdir build
cd build
cmake ..
make
```
3. Generate LLVM bytecode from your binary and run the StringObfuscator pass on it:
```
clang -emit-llvm hello.c -c -o hello.bc
opt -load-pass-plugin=./build/StringObfuscator/libLLVMStringObfuscator.so -passes="string-obfuscator-pass" < hello.bc -o out.bc
llc out.bc -o out.s
clang -static out.s -o out
```
For Rust:
```
rustc hello.rs --emit=llvm-bc -o hellor.bc
opt -load-pass-plugin=./build/StringObfuscator/libLLVMStringObfuscator.so -passes="string-obfuscator-pass" < ./examples/hellor.bc -o out.bc
llc out.bc -o out.s
ruststd=$(basename $(ls /usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd*.so) | sed 's/lib//g' | sed 's/\.so//g')
clang out.s -L/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib -l$ruststd -o out
```
4. Leave a like :)