网站首页 > 技术文章 正文
1、小程序反编译
环境准备
1、 node 环境准备
下载链接:https://nodejs.org/en/
2、反编译工具
项目地址来自于:https://github.com/xuedingmiaojun/wxappUnpacker
具体操作
1、微信PC获取小程序
在通过微信PC打开小程序前,我们最好先找到缓存到本地的小程序包路径,一般都是在 微信PC安装目录\WeChat Files\WeChat Files\Applet
比如我的就是安装到D盘根目录的,所以路径为:D:\WeChat\WeChat Files\Applet
上图中每个wx开头的文件夹代表一个小程序,一般最新打开的小程序都是在第一个,如果不确定可以排序一下修改日期
找到路径了我们就可以用微信PC打开小程序了,打开后就会发现当前目录新增了一个文件夹,里面存放的就是加密后的小程序包
2、解密包
刚获取到的包我们还不能进行反编译,必须要通过解密软件修改一下才能反编译
本篇就演示一个主包和一个分包反编译的过程就可以了,先通过解密工具修改一下主包
解密的主包自动到 wxpack 这个包里面来了,同样的步骤解密一个分包,下图是我解密好的
3、反编译
进入 wxpack的同级目录 wxappUnpacker-master,在路径栏输入 cmd 自动打开当前目录的 命令窗口了
先反编译一下主包,把反编译后的文件夹放到wxpack同级目录中
node wuWxapkg.js ..\wxpack\wx464f1fef86a25927.wxapkg
- -s表示分包
- 第一个..\表示输出位置
- ..\wxpack\_pages_app.wxapkg需要反编译的分包位置
然后把我们得到的文件夹导入开发者工具或者notepad++查看代码,这里导入开发者工具
2、找漏洞相关js
全局搜索解密,通过查看代码最终定位到request.js中的代码块
进入request.js的文件夹
3、模块化加载
事先安装好browserify
3.1、Browserify
Browserify 可以让你使用类似于 node 的 require() 的方式来组织浏览器端的 Javascript 代码,通过预编译让前端 Javascript 可以直接使用 Node NPM 安装的一些库。
3.2、安装
管理员打开cmd(普通用户有可能会安装失败)
npm install -g browserify
3.3、打包js文件
browserify request.js > myboundle.js
3.4、修改js代码
var data="WVMNBlsFBgQKWVEPBVgABAFXUFEKVlAGBlRWXVdeWlxRAQcBWQRQUA0GUgcGWwcMAFsBVARRDVkMU1kCBgALWFlfAltQCQIDDFheBV9RB1dXUAMPB1gBAwYHXlZdUA0LVgEDCVlcAF4KCFYAX1ALB1oDBQcAUVQNV1AHUwAAXANYAgwHCABTCVELWg8LAVAFUFAPV19TCQoLWFVdVwpRBAMLDVJYUFFQCQRQXQNbWggDBlADX1UIVg1TBlcKX1AIAg0CUQMFWFcKBlwLUVEHDlBaVF0HCFQDDlULUV0ABQUCXQUNVwg="
var t = JSON.parse(u.decryptSM4(data, u.createGenkey("202300")));
console.log(t)
将以上代码放置在我们定位到的代码块中
在下方找个合适的位置放进去,注意不要插入到其他函数内,否则在访问页面时不会启动
3.5、编写html文件,将js文件导入
3.6、访问页面,查看控制台
4、总结
总的来说,当遇到一些数据泄露或者其他的数据需要加解密的时候,并且无法花时间去查看代码反推的时候,可以借鉴这种方式,可以节省很大一部分时间,简直就是偷懒必备技能,这种方式其实就是类似于把他一整个js文档整合成一个文件,这样不怕混淆,即使是混淆后的代码,也可以参考这种方式,因为把所有的代码都整合进去之后,即使他混淆了,也还是在同个文件里面有记录,所以可以成功加解密。
from https://www.freebuf.com/articles/database/370146.html
猜你喜欢
- 2025-07-07 bitlocker 太恶心了(bitlocker manage)
- 2025-07-07 前后端安全机制(前后端安全机制有哪些)
- 2025-07-07 SpringBoot 接口加解密全过程详解
- 2025-07-07 加密算法的分类与应用(加密算法的种类)
- 2025-07-07 SpringBoot项目快速开发框架JeecgBoot——Web处理!
- 2025-07-07 网页端到端加密聊天系统(网页加密技术)
- 2024-10-10 简述无线网桥的主要加密方式 网桥怎么加密
- 2024-10-10 jsjiami.com.v7加密混淆文件隐藏关键代码的方法
- 2024-10-10 想不到一句”MD5加密“,竟然惨遭大量程序员的嘲笑!
- 2024-10-10 国内首个开源国密前后端分离快速开发平台,追求简洁至上大道至简
你 发表评论:
欢迎- 07-07使用AI开发招聘网站(100天AI编程实验)
- 07-07Tailwindcss 入门(tailwindcss中文文档)
- 07-07CSS 单位指南(css计量单位)
- 07-07CSS 定位详解(css定位属性的运用)
- 07-07程序员可以作为终身职业吗?什么情况下程序员会开始考虑转行?
- 07-07云和学员有话说:国企转行前端开发,斩获13K高薪!
- 07-0791年转行前端开发,是不是不该转,有啥风险?
- 07-07计算机图形学:变换矩阵(图形学 矩阵变换)
- 594℃几个Oracle空值处理函数 oracle处理null值的函数
- 587℃Oracle分析函数之Lag和Lead()使用
- 575℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 572℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 568℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 561℃【数据统计分析】详解Oracle分组函数之CUBE
- 548℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 541℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- 前端获取当前时间 (50)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)