js遇到的wasm的加密

前提:最近看到一些网站进行了wasm加密,但是开始没有接触过这个wasm。就花了一点时间来了解wasm

1.了解wasm

这里放个网站 https://www.cntofu.com/book/150/zh/ch1-quick-guide/ch1-02-helloworld.md这个网站我觉得讲的蛮好的。wasm是啥?按照我个人理解哈

就是将c/c++的程序编译成二进制格式.wasm,使之可以在网页中调用。这样速度会更快,毕竟是c语言写的嘛。

专业解释

WebAssembly是新一代的Web虚拟机标准,C/C程序可以通过Emscripten工具链编译为WebAssembly二进制格式.wasm,进而导入网页中供JavaScript调用——这意味着使用C/C编写的程序将可以直接运行在网页中。

好了,我们大概知道wasm是个啥玩意了,就是运行在浏览器的c/c++代码嘛。那么我们先上手做个小demo。

这里我进行了编译,形成了两个文件

这里我在网页了调用hello.js看看.

可以看到,这里输出了你好,世界,当然,你用nodejs直接运行hello.js也可以得到输出。

2.wasm转c

既然c可以转wasm,那么wasm也应该可以转c。

wasm2c hello.wasm -o hello.c

就会生成hello.c和hello.h两个文件

这里我用的吾爱破解大佬的工具,所以他自动加了些文件。这个hello.c很长。有五千六百多条。

这你敢想?我就仅仅输出了一个你好,世界呀!这么多代码,谁能想到这个是这个仅仅是是个printf呀?

这样麻烦的话,有没有办法就是说简单一点,当然有!我们可以将生成的hello.c和hello.h编译成.o文件放到ida进行分析。

3.编译成o文件

这里用的是吾爱大佬逍遥一仙的文件wasm一键转c - 『原创发布区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn。链接放到这里了。https://www.52pojie.cn/thread-1438499-1-1.html

编译成hello.o文件就可以放到ida进行分析了。这里我放到ida是这样的。

这里就简单多了,但是还是有点麻烦。这里和我们的源代码还是有蛮大的差别。还多了很多函数。这里我知道js调用了main函数。我们就能直接反编译的c文件,将c文件编译成exe或者dll。这样的话,就可以给其他语言使用了。

4.python调用wasm

前面我们说可以将wasm反编译成c语言,再编译成exe或者dll来调用。其实python还带了个模块,叫pywasm。

pip install pywasm
import pywasm
# pywasm.on_debug()

runtime = pywasm.load('./examples/fib.wasm')
r = runtime.exec('fib', [10])
print(r) # 55

这里简单调用的例子。这样就可以直接调用wasm。相对来说更加方便。

这里放上两个地址。都是wasm的加密。但是相对来说比较简单。直接调用wasm就行。

https://match.yuanrenxue.com/match/15猿人学15题

https://spa14.scrape.center/崔庆才大大的测试网站的14题

有兴趣可以去试试

兴趣交流群:342096685

猜你喜欢

转载自blog.csdn.net/qq_59848320/article/details/123931183