Skip to content

Instantly share code, notes, and snippets.

@mewmew
Created December 20, 2017 07:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mewmew/bf74e6fc0e96ab67576982baacc17937 to your computer and use it in GitHub Desktop.
Save mewmew/bf74e6fc0e96ab67576982baacc17937 to your computer and use it in GitHub Desktop.
digraph {
rankdir=LR
{rank=same; binary unpacker upx}
nodesep=0.5
/* input and output formats */
"Mach-O Universal static library" [fillcolor=limegreen style=filled]
archive [fillcolor=limegreen style=filled]
elf [fillcolor=limegreen style=filled]
pe [fillcolor=limegreen style=filled]
ihex [fillcolor=limegreen style=filled]
macho [fillcolor=limegreen style=filled]
raw [fillcolor=limegreen style=filled]
"config.json" [fillcolor=limegreen style=filled]
"LLVM IR" [fillcolor=limegreen style=filled]
"C" [fillcolor=limegreen style=filled]
"Python" [fillcolor=limegreen style=filled]
/* meta input and output formats */
binary [fillcolor=forestgreen style=filled]
HLL [fillcolor=forestgreen style=filled]
/* tools */
"macho-extractor" [shape=box fillcolor=lightblue style=filled]
"ar-extractor" [shape=box fillcolor=lightblue style=filled]
fileinfo [shape=box fillcolor=lightblue style=filled]
unpacker [shape=box fillcolor=lightblue style=filled]
upx [shape=box fillcolor=lightblue style=filled]
bin2llvmir [shape=box fillcolor=lightblue style=filled]
llvmir2hll [shape=box fillcolor=lightblue style=filled]
/* archive to meta binary */
"Mach-O Universal static library" -> "macho-extractor"
"macho-extractor" -> binary
archive -> "ar-extractor"
"ar-extractor" -> binary
/* binary to meta binary */
elf -> binary
pe -> binary
ihex -> binary
macho -> binary
raw -> binary
/* meta binary to config.json */
binary -> fileinfo
fileinfo -> "config.json"
/* unpack meta binary */
binary -> unpacker
unpacker -> binary
binary -> upx
upx -> binary
/* meta binary to LLVM IR */
"config.json" -> bin2llvmir
binary -> bin2llvmir
bin2llvmir -> "LLVM IR"
/* LLVM IR to meta HLL */
"config.json" -> llvmir2hll
"LLVM IR" -> llvmir2hll
llvmir2hll -> HLL
/* meta HLL to high level language */
HLL -> "C"
HLL -> "Python"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment