我正在分析大型 Web 程序集。我有编译好的 .wasm 文件,并使用可用的工具将其转换为 .wat 文本表示。目前,我正在执行以下操作以将 wasm 中的每个函数转换为其 jit-ed 汇编代码:
// wasm is the binary; loaded from file
var module = new WebAssembly.Module(wasm);
var code = wasmExtractCode(module);
var regions = code.segments.filter(s => s.kind === 0);
regions.map(function(seg) {
var segmentcode = code.code.subarray(seg.funcBodyBegin, seg.funcBodyEnd);
// segmentcode contains the assembly code
});
有没有办法使用这种方式提取的代码?理想情况下,我想生成一个 PE 或某种类型的文件,我可以放入 Ida 并进行探索和分析。我知道 wasm 和 PE 文件的格式根本不同,所以这是一个很大的问题。如果我将每个函数的代码转储到一个文件中并正确对齐每个函数,我可以在 Ida 中打开文件并手动标记函数的开始和结束,然后我就可以很好地分析它。为超过 27000 个函数执行此操作有点困难,但是......
有任何想法吗?TIA