V8 JavaScript 引擎的开发人员
反编译器
例如wasm中编译的原始C函数
typedef 结构体 { float x, y, z; } vec3;
浮点(const vec3 *a,const vec3 *b){
返回 a->x * b->x +
a->y * b->y +
a->z * b->z;
}
将被 wasm-decompile 实用程序反编译为伪语言
函数点(a:{ a:float, b:float, c:float },
b:{ a:float, b:float, c:float }):float {
返回 aa * ba + ab * bb + ac * bc
}
而转换为文本格式“.wat”看起来像这样
(func $dot (类型 0) (参数 i32 i32) (结果 f32)
(f32.添加
(f32.添加
(f32.mul
(f32.负载
(本地.get 0))
(f32.负载
(本地.获取1)))
(f32.mul
(f32.负载偏移=4
(本地.get 0))
(f32.负载偏移=4
(本地.获取1))))
(f32.mul
(f32.负载偏移=8
(本地.get 0))
(f32.负载偏移=8
(本地.get 1))))))
来源: opennet.ru