Decompiler plugin for JEB
JEB WebAssembly Decompiler is a plugin for JEB, a reverse-engineering platform that performs disassembly, decompilation, debugging, and analysis of codes and document files. This development & IT tool helps users to reverse engineer WebAssembly binary modules (wasm). It uses JEB’s decompilation pipeline to produce pseudo C code to make it easier to analyze and decompile wasm.
Interactive decompiler
WebAssembly or wasm is a new and an open standard that defines a portable binary code format for executable programs. Its main goal is to enable high-performance applications on web pages, but the format can also be executed and integrated with other environments. Alongside HTML, CSS, and Javascript, it is the fourth language to run natively in browsers.
Developers generally don’t write WebAssembly directly. Instead, they compile programs to wasms. And when paired with WebGL, they can create amazing things. However, increasing the complication in a binary code can decrease its readability. More, matters are different when it comes to binary code. Reverse engineering endeavors are practically more complicated. Hence, people involved in WebAssembly development published tools that can examine compiled wasm modules.
JEB WebAssembly Decompiler is one such tool. It is a plugin for JEB, which helps developers decompile wasm binary codes. It provides various features, including augmented disassembly and parsing of binary modules, as well as decompilation of bytecode to pseudo-C source code. As such, the plugin consists of a wasm-to-IR converter and an additional analyzer extension.
The plugin also offers advanced optimization passes to help impede protected or obfuscated codes. JEB WebAssembly Decompiler lets developers do all these in an interactive disassembly window. Speaking of, the app also comes with an interactive layer that allows typing, renaming, commenting, and cross-referencing. It also has full API access for scripting and plugins.
The JEB WebAssembly Decompiler plugin can also be used to decompile Smart Contracts compiled to wasm, including Parity and EOS contracts.
Some limitations
While the JEB WebAssembly Decompiler plugin gives developers a tool for analyzing wasm binary code, there are still some tasks that the app cannot do. For one, it does not provide support for floating-point operation conversion. More so, the memory stack frames are not accessible due to their dynamic –and optional—nature in WebAssembly. They are also not customizable because of this.
Additionally, the global and advanced analysis that the decompiler provides is disabled. This advanced analysis is of great help as it is responsible for discovering register values and call site targets during a fast-static analysis phase. It also subsequently annotates the assembly listing. To address these limitations, the decompiler plugin needs to mature.
A helpful tool for developers
All in all, JEB WebAssembly Decompiler is a handy tool for developers who want to reverse engineer wasm binary modules. The plugin provides helpful features that allow users to efficiently disassemble and analyze compiled programs. There are a few limitations in its functionality, but as it is, it can be a great help in ensuring that your application will run in its optimal performance.