Snowman is a native code to C/C++ decompiler, see the examples of generated code.

Standalone Version

  • Supports ARM, x86, and x86-64 architectures.

  • Reads ELF, Mach-O, and PE file formats.

  • Reconstructs functions, their names and arguments, local and global variables, expressions, integer, pointer and structural types, all types of control-flow structures, including switch.

  • Has a nice graphical user interface with one-click navigation between assembler code and reconstructed program.

  • Has a command-line interface for batch processing.

Plug-in for IDA

  • Enjoys all executable file formats supported by the disassembler.

  • Benefits from IDA’s signature search, parsers of debug information, and demanglers.

  • Decompiles a chosen function or the whole program by push of a button.

  • Allows easy jumping between the disassembler and the decompiled code.

  • Fully integrated into IDA’s GUI.


Installation Instructions

Standalone version you can just unpack and run.

Plug-in for IDA is installed by copying .plw, .p64, .plx files to IDA’s plugins directory.

Usage Instructions

  1. Do not try to decompile large programs at once. Select a necessary part in the assembly listing and push Ctrl-E instead. Or better use the Snowman Plug-in for IDA.

  2. When using the IDA plug-in, press F3 (F4 in v0.0.5 and earlier) to decompile the function under cursor.

  3. Ask on the mailing list if you have questions.