Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thebabush/dumb-obfuscator

Tutorial on how to write the dumbest obfuscator I could think of.
https://github.com/thebabush/dumb-obfuscator

clang encryption llvm llvm-pass llvm-tutorial obfuscation security tutorial

Last synced: 3 months ago
JSON representation

Tutorial on how to write the dumbest obfuscator I could think of.

Awesome Lists containing this project

README

        

# Dumb Obfuscator

The answer to "why shouldn't people put RSA computations everywhere in their programs?".

If you want to read the step-by-step tutorial you can read the
[post on my blog](https://thebabush.github.io/dumbo-llvm-based-dumb-obfuscator.html).

[![screenshot](https://thebabush.github.io/images/20190223_final_ida.png)](https://thebabush.github.io/dumbo-llvm-based-dumb-obfuscator.html)

## Setup ##

You should really read my blog post if you want this to work out of the box.
Basically though, you just need to add LLVM's official apt repositories to your
Ubuntu machine and install `clang-9`.

Anyway, you can pretty much change LLVM version by changing every reference to
`clang-9` to whatever clang you want to use.
You need to change `llvm-config-9` references too.

## Building the Pass ##

Run `./build.sh`.

This will basically create `./build/` and run cmake on it.

## Testing the Pass ##

Run `./test.sh`.

This will compile `./test/test.c` into human-readable LLVM IR, run the pass on
it, show the final IR and run the obfuscated program.