Snowman is a native code to C/C++ decompiler, see the examples of generated code. This talk gives a brief explanation of how it works.

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 the assembler code and the reconstructed program.

  • Has a command-line interface for batch processing.

IDA Plug-in

  • 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 integrates into IDA’s GUI.


Installation Instructions

  • Standalone version you can just unpack and run.

  • IDA plug-in is installed by copying .plw, .p64, .plx, .dll, .so 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 IDA plug-in.

  2. When using the IDA plug-in, press F3 to decompile the function under cursor.


  1. To report a bug or request a feature, please create an issue.

  2. To submit a patch open a pull request.