All Projects → thebabush → dumb-obfuscator

thebabush / dumb-obfuscator

Licence: MIT license
Tutorial on how to write the dumbest obfuscator I could think of.

Programming Languages

C++
36643 projects - #6 most used programming language
haskell
3896 projects
CMake
9771 projects
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to dumb-obfuscator

Cmake Scripts
A selection of useful scripts for use in CMake projects, include code coverage, sanitizers, and dependency graph generation.
Stars: ✭ 202 (+37.41%)
Mutual labels:  llvm, clang
Yansollvm
Yet Another Not So Obfuscated LLVM
Stars: ✭ 180 (+22.45%)
Mutual labels:  obfuscation, llvm
Checkedc
Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors. Checked C does not address use-after-free errors. This repo has a wiki for Checked C, sample code, the specification, a…
Stars: ✭ 2,692 (+1731.29%)
Mutual labels:  llvm, clang
baby obfuscator
Using LLVM Pass to obfuscate program
Stars: ✭ 66 (-55.1%)
Mutual labels:  obfuscation, llvm-pass
clangbuilder
Building Clang ♡ Utility and Environment
Stars: ✭ 101 (-31.29%)
Mutual labels:  llvm, clang
Constexpr Everything
Rewrite C++ code to automatically apply `constexpr` where possible
Stars: ✭ 178 (+21.09%)
Mutual labels:  llvm, clang
Kylin Llvm Obfuscator
based on llvm 5.0.1 release with ollvm
Stars: ✭ 37 (-74.83%)
Mutual labels:  obfuscation, llvm
Cling
The cling C++ interpreter
Stars: ✭ 2,322 (+1479.59%)
Mutual labels:  llvm, clang
linux
Linux kernel source tree
Stars: ✭ 234 (+59.18%)
Mutual labels:  llvm, clang
TON-Compiler
Clang compiler for Free TON Virtual Machine
Stars: ✭ 56 (-61.9%)
Mutual labels:  llvm, clang
Dstep
A tool for converting C and Objective-C headers to D modules
Stars: ✭ 177 (+20.41%)
Mutual labels:  llvm, clang
EmbedSanitizer
EmbedSantizer is a runtime race detection tool which extends ThreadSanitizer to detect data races in 32-bit ARM applications.
Stars: ✭ 16 (-89.12%)
Mutual labels:  llvm, clang
Webassembly Examples
From Simple To Complex. A complete collection of webassembly examples.
Stars: ✭ 177 (+20.41%)
Mutual labels:  llvm, clang
Clang Expand
🐉 A clang tool for happy refactoring without source-code gymnastics
Stars: ✭ 182 (+23.81%)
Mutual labels:  llvm, clang
Play with llvm
A book about LLVM & Clang(中文开源书:玩转 LLVM)
Stars: ✭ 175 (+19.05%)
Mutual labels:  llvm, clang
LLVM-Obfuscator
LLVM Obfuscator
Stars: ✭ 44 (-70.07%)
Mutual labels:  obfuscation, llvm
Gllvm
Whole Program LLVM: wllvm ported to go
Stars: ✭ 126 (-14.29%)
Mutual labels:  llvm, clang
Clang Llvm Tutorial
clang & llvm examples, e.g. AST Interpreter, Function Pointer Analysis, Value Range Analysis, Data-Flow Analysis, Andersen Pointer Analysis, LLVM Backend...
Stars: ✭ 139 (-5.44%)
Mutual labels:  llvm, clang
codebrowser
Woboq CodeBrowser
Stars: ✭ 985 (+570.07%)
Mutual labels:  llvm, clang
vuo
A realtime visual programming language for interactive media.
Stars: ✭ 103 (-29.93%)
Mutual labels:  llvm, clang

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.

screenshot

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].