We’re very excited to announce that the pre-release of our Ethereum smart contract decompiler is available. We believe it will become a tool of choice for security auditors, vulnerability researchers, and reverse engineers examining opaque smart contracts running on Ethereum platforms.

In a rush? Download the demo build and start reversing contracts. Remember to hit the TAB key on a DecompiledContract node to see its Solidity-like source code.

Keep on reading to learn about the current features of the decompiler; how to use it and understand its output; its current limitations, and planned additions.

Image for post
Image for post
This opaque multisig wallet is holding ~ USD $22 million as of 10/30/2018!

Capabilities

The decompiler modules provide the following specific…


This is an abridged version of http://www.pnfsoftware.com/reversing-wasm.pdf. For additional details, including footnotes, as well as better formatting of code snippets, the thorough reader is recommended to check the original PDF.

This article is an introduction to WebAssembly geared towards reverse-engineers. It focuses on understanding the binary format, virtual machine, execution environment, implementation details and binary interfaces, in order for the reader to acquire the skills to analyze wasm binary modules. The annex details the representation of WebAssembly in JEB and how to use it to analyze wasm binary modules.

Introduction

WebAssembly (wasm) is a binary instruction format for a virtual machine (VM) whose primary goal is to run in-browser application code. It is meant to complement JavaScript, for instance to enhance the performance of CPU intensive components of a web app. Source languages that can currently be compiled to WebAssembly bytecode include common strongly typed languages such as C, C++, Java, or even TypeScript. A wasm binary file defines an application module, and its code can be loaded and executed by external components, including regular JavaScript files. All major browsers are shipping with WebAssembly support, and its prime backers include Mozilla and Google. Assuming the promised performance gains hold, the future of WebAssembly looks bright. …


We recently released our latest decompiler for MIPS 32-bit binary code. It is the first interactive decompiler in a series of native code analysis modules that will be released this year with JEB 2.3.

If you haven’t done so: feel free to download the demo, or if you own a Pro or Embedded license, ask for the beta 2.3 build.

The 2.3 branch contains tons of under-the-hood updates, required to power the decompilation modules — as well as the future advanced static and dynamic analysis modules that we have on our roadmap. Changes such as:

  • A generic code parsing framework for interactive disassembly and analysis of code objects. …

About

PNF Software

News from the maker of JEB Decompiler

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store