Paul Krill
Editor at Large

C/C++ decompiler translates programs, no source code needed

news analysis
Oct 14, 20142 mins

An LLVM for decompilation, Snowman's source code will be released soon

With a new decompiler for C/C++, developers can gain insight into the workings of a program without looking at source code. That’s the plan for Snowman, which the project’s lead developer hopes to make akin to an LLVM for decompilation.

Snowman decompiles from machine code to C with minor support for C++, and the source code should be released within several months, said head developer Yegor Derevenets, a university student in Germany, in an emailed response to questions.

The technology is “highly modular,” Derevenets said. “It is based on a decompilation library that can be easily integrated into other systems. As an example, we provide three applications using it: a command-line decompiler, a GUI decompiler, and an IDA disassembler plug-in. Hopefully, after its source code is released, Snowman will eventually become the LLVM for decompilation.

“The purpose of a decompiler is to translate programs in a low-level representation, like machine code or bytecode, to programs in a high-level programming language, like C, C++ or Java and C#,” Derevenets said. “Such a translation may be useful for people that try to understand how a low-level program works without having access to its source code: security engineers, viral analysts, maintainers of old systems whose code is lost.”

Snowman’s current 0.0.5 release features C/C++ code editing, refactoring, code navigation, and GUI performance improvements. Six point releases have been published since June, including a mid-October release with a plug-in for the IDA disassembler.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author