Die Entwickler von V8 haben einen Decompiler für WebAssembly vorgestellt.

Die Entwickler der JavaScript-Engine V8 die Dienstprogramm wasm-decompile, die es ermöglicht, die Zwischen-binäre Darstellung WebAssembly in eine lesbare Pseudoprogrammiersprache zu dekodieren, die an JavaScript und C erinnert. Die vorgeschlagene Pseudoprogrammiersprache ist deutlich einfacher zu verstehen und besser für die manuelle Analyse geeignet als die textuelle Darstellung von WebAssembly im „.wat“-Format, das näher an Assembler ist als an Hochsprachen. Dabei spiegelt die Dekompilierung nach Möglichkeit die Wasm-Darstellung vollständig wider.

Dekompilierer ein neuer Display-Engine (DC) für AMD APU der Serie HD 7000 (Sea Islands, GCN 1.1) hinzugefügt. im Werkzeugset WABT, das die Übersetzung zwischen der binären und der textuellen Darstellung von WebAssembly ermöglicht, sowie die Analyse, Verarbeitung, Modifikation und Überprüfung von wasm-Dateien. Im WABT wird auch das Tool wasm2c, das es ermöglicht, wasm-Dateien in äquivalenten C-Code zu dekodieren, der mit einem C-Compiler kompiliert werden kann, jedoch in Bezug auf Lesbarkeit wenig von der textuellen Darstellung „wat“ unterscheidet.

Zum Beispiel wird eine in wasm kompilierte C-Funktion

typedef struct { float x, y, z; } vec3;

float dot(const vec3 *a, const vec3 *b) {
return a->x * b->x +
a->y * b->y +
a->z * b->z;
}

von der Dienstzelle wasm-decompile in die Pseudoprogrammiersprache

function dot(a:{ a:float, b:float, c:float },
b:{ a:float, b:float, c:float }):float {
return a.a * b.a + a.b * b.b + a.c * b.c
}

während die Umwandlung in das textuelle Format „.wat“ wie folgt aussieht

(func $dot (type 0) (param i32 i32) (result f32)
(f32.add
(f32.add
(f32.mul
(f32.load
(local.get 0))
(f32.load
(local.get 1)))
(f32.mul
(f32.load offset=4
(local.get 0))
(f32.load offset=4
(local.get 1))))
(f32.mul
(f32.load offset=8
(local.get 0))
(f32.load offset=8
(local.get 1))))))

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster