Decompiler-Plugin für JEB
JEB WebAssembly Decompiler ist ein Plugin für JEB, eine Reverse-Engineering-Plattform, die Disassemblierung, Dekompilierung, Debugging und Analyse von Codes und Dokumentdateien durchführt. Dieses Entwicklungs- und IT-Tool hilft Benutzern beim Reverse Engineering von binären WebAssembly-Modulen (Wasm). Es nutzt die Dekompilierungs-Pipeline von JEB, um Pseudo-C-Code zu erzeugen, um die Analyse und Dekompilierung von Wasm zu erleichtern.
Interaktiver Dekompilierer
WebAssembly oder Wasm ist ein neuer und offener Standard, der ein portables Binärcodeformat für ausführbare Programme definiert. Sein Hauptziel ist es, hochleistungsfähige Anwendungen auf Webseiten zu ermöglichen, aber das Format kann auch ausgeführt und in andere Umgebungen integriert werden. Neben HTML, CSS und Javascript ist es die vierte Sprache, die in Browsern nativ ausgeführt wird.
Entwickler schreiben WebAssembly im Allgemeinen nicht direkt. Stattdessen kompilieren sie Programme zu Würmern. Und wenn sie mit WebGL gepaart sind, können sie erstaunliche Dinge schaffen. Eine Erhöhung der Komplikation in einem Binärcode kann jedoch seine Lesbarkeit verringern. Außerdem sind die Dinge anders, wenn es um den Binärcode geht. Reverse-Engineering-Bemühungen sind praktisch komplizierter. Daher haben Personen, die an der Entwicklung von WebAssemblys beteiligt sind, Tools veröffentlicht, die kompilierte Wasm-Module untersuchen können.
Der JEB WebAssembly-Decompiler ist ein solches Werkzeug. Es handelt sich um ein Plugin für JEB, das Entwicklern bei der Dekompilierung von Wasm-Binärcodes hilft. Es bietet verschiedene Funktionen, darunter die erweiterte Disassemblierung und das Parsen von Binärmodulen sowie die Dekompilierung von Bytecode in Pseudo-C-Quellcode. Als solches besteht das Plugin aus einem Wasm-zu-IR-Konverter und einer zusätzlichen Analysator-Erweiterung.
Das Plugin bietet auch erweiterte Optimierungspässe, um geschützte oder verschleierte Codes zu verhindern. JEB WebAssembly Decompiler lässt Entwickler all dies in einem interaktiven Disassemblierungsfenster tun. Apropos, die App verfügt auch über eine interaktive Ebene, die das Eintippen, Umbenennen, Kommentieren und Querverweisen ermöglicht. Es hat auch vollen API-Zugang für Skripting und Plugins.
Das JEB WebAssembly-Decompiler-Plugin kann auch zum Dekompilieren von zu Wasm kompilierten Smart Contracts, einschließlich Parity- und EOS-Verträgen, verwendet werden.
Einige Einschränkungen
Während das JEB WebAssembly-Decompiler-Plugin Entwicklern ein Werkzeug zur Analyse von Wasm-Binärcode zur Verfügung stellt, gibt es immer noch einige Aufgaben, die die Anwendung nicht erfüllen kann. Zum einen bietet es keine Unterstützung für die Konvertierung von Fließkommaoperationen. Mehr noch, die Memory-Stack-Frames sind aufgrund ihrer dynamischen - und optionalen - Natur in WebAssembly nicht zugänglich. Sie sind deshalb auch nicht anpassbar.
Zusätzlich ist die globale und erweiterte Analyse, die der Decompiler bietet, deaktiviert. Diese fortgeschrittene Analyse ist eine große Hilfe, da sie für die Entdeckung von Registerwerten und Aufrufstellenzielen während einer schnellen statischen Analysephase verantwortlich ist. Außerdem wird die Auflistung der Versammlung anschließend kommentiert. Um diese Einschränkungen zu beheben, muss das Decompiler-Plugin reifen.
Ein hilfreiches Werkzeug für Entwickler
Alles in allem ist der JEB WebAssembly Decompiler ein praktisches Werkzeug für Entwickler, die binäre Wasm-Module rückwärts entwickeln wollen. Das Plugin bietet hilfreiche Funktionen, die es dem Benutzer ermöglichen, kompilierte Programme effizient zu disassemblieren und zu analysieren. Es gibt ein paar Einschränkungen in der Funktionalität, aber so wie sie ist, kann sie eine große Hilfe sein, um sicherzustellen, dass Ihre Anwendung in ihrer optimalen Performance läuft.