x86 相当于一个 WebAssembly 指令
x86 equivalent of a WebAssembly Instruction
我一直在玩 WebAssembly 程序。我想获得 WebAssembly 程序的 x86 等价物。通过谷歌搜索,我发现 objdump 可用于使用命令
对任何目标文件执行此操作
objdump -M intel <file_name>
然而,wasm 文件 wasm-objdump 的反汇编器没有用于反汇编 x86 格式代码的标志 m,原因很明显,它是一个 Web 汇编应用程序。
是否有一种(简单的)方法可以将 WebAssembly 中给出的指令映射到等效的 x86 指令,而无需显式匹配每条指令?
在线 WasmExplorer 使用 SpiderMonkey 编译器将 C 代码编译为 WebAssembly 和 FireFox x86。给定以下简单函数:
int testFunction(int* input, int length) {
int sum = 0;
for (int i = 0; i < length; ++i) {
sum += input[i];
}
return sum;
}
这是 x86 输出:
wasm-function[0]:
sub rsp, 8 ; 0x000000 48 83 ec 08
cmp esi, 1 ; 0x000004 83 fe 01
jge 0x14 ; 0x000007 0f 8d 07 00 00 00
0x00000d:
xor eax, eax ; 0x00000d 33 c0
jmp 0x26 ; 0x00000f e9 12 00 00 00
0x000014:
xor eax, eax ; 0x000014 33 c0
0x000016: ; 0x000016 from: [0x000024]
mov ecx, dword ptr [r15 + rdi] ; 0x000016 41 8b 0c 3f
add eax, ecx ; 0x00001a 03 c1
add edi, 4 ; 0x00001c 83 c7 04
add esi, -1 ; 0x00001f 83 c6 ff
test esi, esi ; 0x000022 85 f6
jne 0x16 ; 0x000024 75 f0
0x000026:
nop ; 0x000026 66 90
add rsp, 8 ; 0x000028 48 83 c4 08
ret
WasmExplorer 通过服务将代码编译成 wasm / x86 - 你可以看到 scripts that are run on Github - 你应该能够使用这些来自己构建命令行工具。
我一直在玩 WebAssembly 程序。我想获得 WebAssembly 程序的 x86 等价物。通过谷歌搜索,我发现 objdump 可用于使用命令
对任何目标文件执行此操作objdump -M intel <file_name>
然而,wasm 文件 wasm-objdump 的反汇编器没有用于反汇编 x86 格式代码的标志 m,原因很明显,它是一个 Web 汇编应用程序。
是否有一种(简单的)方法可以将 WebAssembly 中给出的指令映射到等效的 x86 指令,而无需显式匹配每条指令?
在线 WasmExplorer 使用 SpiderMonkey 编译器将 C 代码编译为 WebAssembly 和 FireFox x86。给定以下简单函数:
int testFunction(int* input, int length) {
int sum = 0;
for (int i = 0; i < length; ++i) {
sum += input[i];
}
return sum;
}
这是 x86 输出:
wasm-function[0]:
sub rsp, 8 ; 0x000000 48 83 ec 08
cmp esi, 1 ; 0x000004 83 fe 01
jge 0x14 ; 0x000007 0f 8d 07 00 00 00
0x00000d:
xor eax, eax ; 0x00000d 33 c0
jmp 0x26 ; 0x00000f e9 12 00 00 00
0x000014:
xor eax, eax ; 0x000014 33 c0
0x000016: ; 0x000016 from: [0x000024]
mov ecx, dword ptr [r15 + rdi] ; 0x000016 41 8b 0c 3f
add eax, ecx ; 0x00001a 03 c1
add edi, 4 ; 0x00001c 83 c7 04
add esi, -1 ; 0x00001f 83 c6 ff
test esi, esi ; 0x000022 85 f6
jne 0x16 ; 0x000024 75 f0
0x000026:
nop ; 0x000026 66 90
add rsp, 8 ; 0x000028 48 83 c4 08
ret
WasmExplorer 通过服务将代码编译成 wasm / x86 - 你可以看到 scripts that are run on Github - 你应该能够使用这些来自己构建命令行工具。