查看原文
其他

逆向小程序破解js-(环境篇)

来自秃头男孩 爬虫攻城狮 2022-05-24

首先声明: 此次逆向Js只为学习交流使用,切勿用于其他非法用途,关键代码均打码

最近接触的微信小程序较多, 其中有些加密,和遇到的一些问题,和大家交流一下, 本章节主要讲述小程序逆向js的代码一个过程,希望可以帮助的大家。

用到的环境:

  • 微信开发者工具

  • wxappUnpacker

  • node环境

  • adb

编译阶段:

  • 首先找到小程序的安装包,可以找个手机,点开小程序后,找到手机文件目录, 一般是这样的目录。
    /data/data/com.tencent.mm/MicromMsg/c6dxxxxxxxxxxxxx/appbrand/pkg/*.wxapkg

  • 现在把这些包从手机里导出来,进行解析,用adb进行导出, 如果不知道哪个文件可以批量导出(博主这只有两个文件 可以批量导出,如果很多wxapkg建议清理一下,重启目标小程序。)
    adb pull /data/data/com.tencent.mm/MicroMsg/*******/appbrand/pkg/
    有些手机可能会报权限问题: adb root && adb remount 增加权限
    这时候就会在当前目录生成一个pkg文件,里面放的就是wxapkg文件。

  • 使用wxappUnpacker把刚才导出来的两个wxapkg进行解压。
    node wuWxapkg.js ../mryx/pkg/pkg/_1123949441_403.wxapkg但是解压到第一个包的时候包了一个如下错误:
    大概意思是说这是一个pkg的子文件,并不是一个完整的小程序, ok,那不管,接着解析另一个

node wuWxapkg.js ../mryx/pkg/pkg/_656941515_671.wxapkg
现在显示第二个wxapk包编译完成, 如果出现上图,那么就是编译成功,会把解析的包生成一个项目文件,这个项目文件会放在wxapkg同目录下。

现在看到有两个文件,但是_1123949441_403刚才解析的时候不是一个完整项目,那我们直接看_656941515_671这个文件,用vscode打开(用啥都行,喜欢就好。)

而且代码可读性比较强,显然这个小程序是没有经过混淆的(往后也会分享一些怎么处理混淆后的js代码,增加可读性。)

sign加密

目前这个程序的逆向就完成,代码就编译出来了,也可以从代码找到一些加密方法。但是目前还有一个问题,就是不能进行调试,无法向pc端那样动态调试,和函数的输入输出,这样会增加破解难度,也非常耗时间。所以咱们下一篇会分享 使用微信开发者工具 对微信小程序进行动态调试,代码debug, 看函数的输入输出。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存