公开文集
0x01 SRC 资产管理系统
0x02 Web 漏洞案例库
0x03 小程序漏洞案例库
第一章:小程序渗透基础
1.1 微信小程序反编译与动态调试
1.2 微信小程序强制开启开发者模式
-
+
首页
1.1 微信小程序反编译与动态调试
常规小程序渗透就是抓包测试,这种方法挖掘漏洞并不全面,测试也不够深入,就需要学习小程序反编译逆向,更深入的渗透挖掘出别人挖不到的漏洞。 ## 一、反编译获取代码 ### 获取 wxapkg 包 第一步需要对小程序进行反编译,这里以某小程序进行演示。 点击进入小程序后,我们要尽量多点击各种模块功能,获取更多的 wxapkg 模块包,如该小程序的意见反馈功能,首页,数据查询功能等。 ### 反编译 wxapkg 包 我们需要找到小程序缓存路径,点击微信文件管理,打开文件夹  打开后返回上一级目录:点击 applet 文件夹(注意,这一级的 applet 与刚才上一级文件夹的 applet 内容是不一样的,不要搞混了)  根据修改时间判断哪个是刚才点击的小程序,然后点击进去。里面都是刚才获取到的wxapkg包  然后使用 unveilr 工具,对该文件夹进行反编译。 下载地址: > https://github.com/r3x5ur/unveilr 使用命令:unveilr.exe "小程序 wxapkg 文件夹路径" 反编译后的代码就在对应小程序wxapkg文件夹里面。 ## 二、小程序运行 使用微信开发者工具(可在官网自行下载),导入刚才反编译后的代码,appid 使用测试号就可以了(需要在官网注册)  点击信任就可以了  然后点击编译,就可成功运行。 ## 三、小程序动态调试 ### 常规断点调试 小程序下方有开发者工具,和谷歌差不多,断点调式方法也类似。  找到想要断点的地方,点击功能触发对应函数方法即可,具体js断点调试方法以后有机会可以单独出一篇文章。 例如登录框断点调试。  ### 异常问题解决 (1)将反编译后的源码导入微信开发者工具后,报错 “app.js 错误: `TypeError: _typeof3 is not a function”`,按错误提示找到文件 `@babel/runtime/helpers/typeof.js` 将所有内容删除,并替换成 ``` function _typeof2(o) { "@babel/helpers - typeof"; return (_typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) { return typeof o; } : function(o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; })(o); } function _typeof(o) { return "function" == typeof Symbol && "symbol" === _typeof2(Symbol.iterator) ? module.exports = _typeof = function(o) { return _typeof2(o); } : module.exports = _typeof = function(o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : _typeof2(o); }, _typeof(o); } module.exports = _typeof; ``` (2)如果小程序反编译出现页面访问异常,空白页面等,也可以使用真机调试  手机扫描二维码即可进入真机调试 ## 总结 小程序反编译动态调式可以测试更深入,挖掘出别人挖掘不出来的漏洞。 尽量多点击各种模块功能,获取更多的 wxapkg 块包。 反编译后的代码可以利用微信开发者助手进行 js 断点动态调式等,非常方便。
myh0st
2026年3月30日 08:20
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码