反编译使用安卓模拟器挂微信找小程序包脱出来解包

2024-05-24
来源:网络整理

反编译

使用模拟器连接微信找到小程序包并解压太麻烦。 这里推荐两种方法

MAC电脑 微信

采用第一种提到的使用现有工具的解密方法()

首先你需要安装

更新点

-m 点 --pip

安装

点3

安装-

点3-

检查是否安装成功

然后就可以按照步骤开始解密小程序包了。 小程序包的根路径

//你的用户// /..///

首先删除原来的小程序包文件夹,然后在mac pc上使用微信打开小程序。 将重新生成包文件夹以便于识别。

这时用PC打开需要反编译的小程序,就会看到该目录下生成了小程序包文件夹,顺着它找到包的绝对路径。

//用户// /..////打开小程序生成的文件夹/////4.

复制绝对路径并修改.js中的两个路径

然后开始解密,挂上小程序就可以看到进程中对应的pid

任何一个都可以。 运行后,会在.js自定义文件中生成解密后的小程序包。 接下来就是正常的拆包操作了。

电脑版微信

有高手已经写了一个解密小程序包的工具()找到微信小程序包的根路径

C:\WeChat Files\Applet\

这里我修改了虚拟机微信的文件路径。 您应该可以在设置中检查微信文件路径。

删除wx字符串开头的文件夹,方便后续定位需要反编译的小程序包路径。 然后打开小程序文件夹,生成小程序文件夹。

按照文件夹获取加密小程序包(APP.),复制绝对路径,使用工具解密。 wxid 是上一个小程序文件夹的名称。 解密成功后,会在工具同级目录下生成dec。

最后使用正常拆包

调试和解决错误

大师反编译后,得到了这样一个压缩包。 可以看到微信小程序的完整结构在

微信开发者工具打断点_断点运行程序_微信小程序开发者工具加断点

下载安装后,选择导入项目

到目前为止,一切都非常简单。 然后我看到有错误消息,所以我就修复了它们。

让我们看一下几个错误: 'e' has been 。 说明变量已经创建了,反编译时可能出现问题。

打开对应的js文件,ctrl+g输入行号快速跳转

这部分与我们需要调试的代码没有直接关系,注释掉即可。

我们再看一下下面的错误报告。 可以看到is not错误报告在es6-.js中? [sm]:196,表明该变量没有定义。

找到并查看该函数。 应该是VM2的错误信息。 我们也直接注释掉。

修改后保存点击编译

排除错误后,小程序可以正常打开请求。 基本上,如果遇到错误注释或者引入对应的库,改个名字就可以了。

调试签名

这次要解决的问题是

通过搜索代码,可以找到疑似计算签名的一段。

我们在调试器中找到代码位置,选择并单击

点击行号设置断点,再尝试一下是否会在此处暂停。

可以看到正常的断点已经到了这个位置。

第一个按钮(F8):断点间调试 第二个按钮(F10):单步调试 第三个按钮(F11):进入函数 第四个按钮(+F11):退出函数 第五个按钮(ctrl+F8) :取消所有断点

我们选择进入该函数,看看它调用了什么

当断点到达相应位置时,可以输入方法信息进行查看。 将鼠标移动到对应的变量上,就可以看到对应的值。 从这段代码的调试可以看到,等待信息是通过添加变量名和值然后拼接而成的。 ,最后添加一些其他参数md5。 这时就可以根据具体功能编写脚本进行调试。 建议直接使用js。 复制粘贴代码直接自动运行。 比如这个复杂的js场景,使用直接调用js代码分析

结合起来,还可以写相应的算法脚本,运行一下爆炸,放个js调用案例

import execjs ctx = execjs.compile(""" function add(x, y) { return x + y; } """\) print(ctx.call("add", 1, 2))

分享