| 参考链接:https://www.52pojie.cn/thread-962068-1-1.html?tdsourcetag=s_pctim_aiomsg 
 WebAssembly 或者 wasm 是一个可移植、体积小、加载快并且兼容 Web 的全新格式。
 我自己认为的wasm 是将c代码进行转换而得出的,它不是作为开发人员进行一行一行进行开发的,更多的是调用,以弥补JS自身存在的不足。当然,wasm本身的不易解读的特性,也对与网站的安全起到的好的促进的作用(个人见解,如有错误,欢迎指导)
 
 
 
 现在wasm 越来越流行,以至于在CTF比赛中也出现了类似的题目(虽然我没怎么做过),所以今天我来介绍一下如何优雅的逆向wasm 文件
 
 1、开始前的准备
 *安装CMake:https://cmake.org/
 *安装MinGW:https://osdn.net/projects/mingw/releases/
 
 2、从github 上克隆下来wabt:https://github.com/WebAssembly/wabt
 
 git clone https://github.com/WebAssembly/wabt.git
 [吐槽]:图片贴不上去,只能使用markDown插件
 
 
 3、使用Cmake编译
 
 
 注:如果出现类似报错,使用以下命令,然后重新编译
 
 CMake Error at CMakeLists.txt:446 (message):
  Can't find third_party/gtest.  Run git submodule update --init, or disable
  with CMake -DBUILD_TESTS=OFF.
 命令:
 git submodule update --init
 
 
 相关命令:
 
 > mkdir build
> cd build
> cmake .. -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_INSTALL_PREFIX=..\ -G "Visual Studio 14 2015"
> cmake --build . --config DEBUG --target install
 完成以上操作,会发现在路劲下出现了一个bin文件,我们所使用的工具都在里面
 
 
 4、使用wasm2c将wasm文件转换成c文件并保存为.c
 
 wasm2c C:\Users\JJR\Desktop\a.wasm -o wasm.c
然后会得到两个文件,分别是wasm.c和wasm.h
 
 我们可以尝试打开文件,发现里面的c语言可读性非常高,但是局限就是如果文件太大,代码量太大,也不利于我们分析,所以有一种优雅的方式就是使用MinGW将c文件编译成.o文件,使用IDA进行逆向,查看伪代码
 
 5、使用MinWG
 将wasm-rt.h、wasm-rt-impl.c、wasm-rt-impl.h与我们得到的两个文件放置在同一个文件夹内
 
 使用IDA进行逆向
 
 
 
 以上就是我找到的如何优雅的进行wasm文件的逆向的方式
 重新梳理以下思路,就是将wasm变的可读性更高
 .wasm文件 ----> .c文件 ----> .o文件 ----> 使用IDA进行静态分析
 
 |