1、申 请 I D:小沫子
2、个人邮箱:xiaomozi@mail.com
初来乍到,喜好JS逆向,就分享一下小程序逆向 我自己使用的解决方案吧~
1. 小程序抓包
抓包工具用 mitmproxy 那一套,(很好写python脚本)
但是还需要配合 https://github.com/Fndroid/clash_for_windows_pkg 才能抓到包
具体配置
创建一个yml配置文件
[XML] 纯文本查看 复制代码 proxies:
- name: MitmProxy
type: http
server: 127.0.0.1
port: 8080
proxy-groups:
- name: Proxy
proxies:
- MitmProxy
type: select
rules:
- PROCESS-NAME,mitmweb.exe,DIRECT
- PROCESS-NAME,WeChatAppEx.exe,MitmWeb
- PROCESS-NAME,WeChat.exe,MitmProxy
- PROCESS-NAME,WechatBrowser.exe,MitmProxy
- MATCH,DIRECT
然后导入(打开 clash for windows > profile > import)到 clash for windows 中
然后安装 TUN Mode 需要的组件后就能开启 TUN Mode了
就能抓到包了
其他抓包软件同理,主要是这个clash 的 TUN Mode, 对上端口就行了
2. 小程序反编译
反编译之前使用 unveilr, 后面下载不到了,听说是收费了,几经周折找到一个 飞机群,没有科学上网的直接访问备用网址
我这下载的最新版2.3.2,每次使用买一天,才几块钱也还能接受
使用体验:
找到对应小程序的目录,(这个不用多说吧)
一条命令搞定
unveiler@2.3.2-win-x64.exe wx "D:\WeChat Files\WeChat Files\Applet\wxxxxxa1\1355"
我发现所有子包全部合并了,然后还没加载的子包也给了占位,这样直接扔进开发者工具就不会报错了
不过我看还有挺多参数能用的,什么自动格式化代码, 自动收集敏感信息啊啥的,也就是一个参数的事儿
最离谱的是这个还竟然还能重新打包,什么概念~,也就是说可以修改完代码在打包回去
那什么云函数不是直接秒杀了吗
现在来试试重新打包
随便找个跳一跳试试
先使用 --no-parse -f 参数解开包
然后我们打开game.js文件
翻到最下面这应该就是程序的入口
加入一句弹窗测试
[JavaScript] 纯文本查看 复制代码 wx.showModal({content:'我是小沫子'});
然后使用 -p 参数重新打包,但是得注意这里参数填得是解出来得那个文件夹路径,
可以看到修改时间变了
现在我们重新打开跳一跳
确实改动成功了哈,
不过后来我发现 有的小程序改动后会显示加载失败
这时候就得绕过hash检测了,这个东西我还在研究中... |