Skip to content

Beginnings of learning to use LLVM to diversify code mainly for the focus of obfuscating it to make reverse engineering more difficult.

Notifications You must be signed in to change notification settings

cyphina/llvmdiversitypasses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

llvmdiversitypasses

Beginnings of learning to use LLVM to diversify code mainly for the focus of obfuscating it to make reverse engineering more difficult.

Progress possible thanks to these tutorials:

Commands: Get llvm bitcode from C/C++ program so we can run passes on it

clang -O3 -emit-llvm <program-name> -c -o <output-name>

Get native assembly from llvm bytecode

llc <bitcode-file-name> -o <output-name>

Run a pass as a shared object and output some time metrics (specify path-arg-name in InitializezPass macros)

opt -time-passes -load <path-to-pass-so-file> -<pass-arg-name> <pass-bitcode-name> -o <output-name>

Run the python scoring script

python score.py -l list.txt -csv

About

Beginnings of learning to use LLVM to diversify code mainly for the focus of obfuscating it to make reverse engineering more difficult.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published