wsxk / wsxk.github.io

MIT License
5 stars 0 forks source link

wasm逆向 #194

Open wsxk opened 1 month ago

wsxk commented 1 month ago

https://wsxk.github.io/wasm_re/

  1. 概述

    1.1 wasm文件类型

  2. wasm静态分析

  3. wasm动态调试 references

  1. 概述 WebAssembly,俗称wasm 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。 它设计的目的不是为了手写代码而是为诸如 C、C++ 和 Rust 等低级源语**言提供一个高效的编译目标。 只能说跟asm很像,wasm速来就有运行在浏览器的汇编的说法。 它有很多新的特性

    二进制格式: wasm是一种基于栈式虚拟机的二进制指令集(和JVM很像),这使得它更紧凑、更快速地加载和解析。

    跨平台: wasm是一个跨平台的执行格式,可以在不同体系结构和操作系统上运行,而不受特定编程语言或硬件的限制。道理也很简单,毕竟它运行在浏览器上,只能你的系统装了浏览器,它就能跑~

    性能: wasm被设计为在现代硬件上实现高性能,因此它通常比传统的JavaScript执行更快。

    安全:wasm被设计在sandbox里运行,增加了安全性。它通过强制执行严格的类型检查和内存访问限制来减少安全漏洞的风险。

1.1 wasm文件类型 这里不过多分析wasm文件的文件格式是什么,有兴趣的同学可以自行官网搜索~ 总的来说,wasm文件类型设计两种:.wasm和.wat 其中 .wasm就是可以直接在浏览器上运行的程序,而.wat是人类可读的.wasm代码的转换 可以看一下.wat的文件长什么样: (module (type $type0 (func (param i32))) (type $type1 (func)) (func $import0 (import