JS逆向-一个案例告诉你遇到wasm加密如何解决?

📝 主旨内容

网址信息

目标网站:aHR0cHM6Ly93d3cud2FpbWFveGlhLm5ldC9sb2dpbg==
分析登录的sign加密参数

定位分析

我们先填写信息,点击登录,然后可以看到抓到一个数据包如下

在这里插入图片描述

这里的sign就是我们今天的目标,我们主要是找到sign如何实现的,并且如何在我们本地进行运算得到正确的结果。

首先我们还是老样子找堆栈。

在这里插入图片描述

我们其实可以看到,这里的堆栈不是有很多,根据我们经验和这些方法名分析,我们觉得最有可能得就是post和getUserLoginAction这两个方法实现的,我们先点击post打个断点尝试一下。

在这里插入图片描述

这里我们其实是可以看到,sign已经计算出来了,所有我们向上查找,看看是否有可疑的地方。

我们找了几个发现这个地方比较可疑,方法都是用sign命名的。

在这里插入图片描述

我们跟上去看到代码是如下这个样子的。

在这里插入图片描述

在这里插入图片描述

我们在点击的时候就看到他文件是wasm_xxx这个样子,所以这里我们就知道他是wasm文件去调用的js文件,并且我们在js文件也看到很多异步操作,所以这里我们更加确定是wasm运行。

我们再看一下我们网络请求哪里有没有wasm文件返回。

在这里插入图片描述

我们看到其实是有wasm的网络请求。到这里我们就已经基本了解了情况,我们接下来就是需要用nodejs来实现这整一个流程。

wasm逆向流程

首先我们先要了解要完整实现wasm的调用运行,我们需要什么东西。

这里如果你有学习过正向开发wasm的知识那你就会知道,如果没有,哪也没有关系,我这里简单的说一下。

在这里插入图片描述

一般情况下,所有wasm文件调用都会使用到这些参数才能得到正确的结果,并且他可能会是异常区执行的。那么接下来,我们就继续回归主题继续操作。

本地运行

在这里插入图片描述

把这些代码全部复制到本地,

在这里插入图片描述

我们重点要关注这个地方,这里其实读取wasm文件并且还要把所需要的env环境一起加载到内存中,然后通过run进行初始化。所以我们需要找到所有的env环境,他已经帮我们定义好了。

在这里插入图片描述

就是这里的importobject这个对象,这里就是他所需要的env环境。

这里我对他这个文件进行改造,使其可以正常的读取和初始化。

在这里插入图片描述

接下来我们点击对应的sign函数。

在这里插入图片描述

我们可以看到这里就是最终获取结果的地方。

在这里插入图片描述

如上参数其实就是计算所需要的参数。

在这里插入图片描述

通过先调用函数,得到函数内的函数,然后再继续调用得到正确的结果。

运行结果

通过,把环境补充网站然后在执行我们的代码,得到sign加密结果。

在这里插入图片描述

我们在根据网站进行对比一番验证结果是否正确。

在这里插入图片描述

我们可以看到结果是没有问题,也可以正确的得到我们的完整结果,说明我们整个流程运算的结果是没有错误的。

🤗 总结归纳

这篇文章主要是讲解如何解决有这种wasm文件的逆向,怎么从0到1的解决问题。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值