Barely even featuring as an item on its press room pages, news has filtered out this week of Czech virus deerstalking firm Avast releasing its machine code decompiler RetDec to open source.
The compiler is engineered to convert binary machine code into a form that looks, feels and executes in what should look like original source code.
As explained here on TechTarget, to decompile is to convert executable (ready-to-run) program code (sometimes called object code ) into some form of higher-level programming language so that it can be read by a human.
Decompilation is a type of reverse engineering that does the opposite of what a compiler does.
Decompilation vs disassembly
It’s important to remember that decompilation via a decompiler is not the same as disassembly via a disassemblers.
To explain the difference, disassemblers turn binary into assembly code (low level language with little abstraction, but more readable to humans than hard core machine code). Decompilers go further back, with less abstraction.
Avast’s intentions for RetDec (and the reason for putting it out in the wild and open sourcing it) is to address the suggestion (made by Avast) that existing open source decompilers are not stable enough and fail to provide an appropriate level of code readability.
RetDec is so named because in full, it reads Retargetable Decompiler — and this re-target-ability allows this tools to focus on code from different 32-bit architectures.
Security minded developers can try out decompilation in the browser here.