ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

反编译自动化脚本(用于代码恢复与重构,网页的学习与借鉴)

反编译自动化脚本(用于代码恢复与重构,网页的学习与借鉴) 兄弟们等我做好我会发出来的现在还有点小问题点赞收藏不迷路一、环境准备1.1 必需环境组件版本要求说明Python3.9 ~ 3.13需含 tkinter官方安装包默认包含Node.js任意版本小程序反编译依赖工具会自动探测路径pip随 Python 安装Python 依赖包管理器1.2 Python 依赖包打开终端执行以下命令安装全部依赖pip install pycryptodome requests beautifulsoup4 lxml matplotlib jsbeautifier各包用途说明包名用途哪个功能需要pycryptodomewxapkg 解密小程序反编译requestsHTTP 请求网页反编译beautifulsoup4HTML 解析网页反编译lxmlHTML 解析后端网页反编译matplotlib雷达图绘制全部功能质量评估jsbeautifierJS 代码美化网页反编译、源码恢复1.3 可选工具工具用途获取方式jadxAPK/JAR/CLASS 反编译GitHub Releases需 JRE 11pycdcPython 3.10 字节码反编译GitHub需自行编译ilspycmd.NET DLL/EXE 反编译dotnet tool install ilspycmd -g微信开发者工具预览反编译后的小程序官方下载二、启动方式方式一双击启动推荐双击项目目录中的启动.bat文件。启动脚本会自动搜索系统中带 tkinter 的 Python 解释器Python 3.9 ~ 3.13、miniconda3、anaconda3找到后自动启动程序若未找到回退到系统默认 python 命令方式二命令行启动cd 反编译工具目录 python wxapp_decompiler.py启动后的界面窗口标题反编译工具套件 — 小程序 / 网页 / 源码恢复窗口尺寸960×720最小 880×620三个标签页小程序反编译 | 网页反编译 | 源码恢复(多格式)小程序反编译和源码恢复标签页在启动时会自动执行环境自检三、功能一小程序反编译3.1 获取 wxapkg 文件wxapkg 文件是微信小程序的加密打包文件存放位置新版微信4.x路径C:\Users\用户名\AppData\Roaming\Tencent\xwechat\radium\users\hash\applet\packages\旧版微信3.x路径C:\Users\用户名\Documents\WeChat Files\Applet\提示先在微信中打开过的小程序才会生成缓存文件。主包通常命名为__APP__.wxapkg。3.2 操作步骤步骤 1选择文件有两种方式选择 wxapkg 文件方式 A手动浏览点击「浏览…」按钮在文件对话框中选择.wxapkg文件方式 B扫描缓存推荐点击「扫描缓存」按钮工具自动扫描微信缓存目录结果列表显示 6 列信息AppID、文件名、类型、加密状态、大小、修改时间绿色高亮行为推荐的主包__APP__.wxapkg优先反编译主包双击列表中的任意行即可自动填入文件路径智能选包若选择了分包但同目录存在主包__APP__.wxapkg工具会自动切换到主包步骤 2开始反编译确认文件路径正确点击「▶ 开始反编译」按钮观察日志区域的实时输出步骤 3等待反编译完成反编译共 9 个步骤全程自动执行步骤名称说明[1/9]检测加密状态读取文件头判断是否加密V1MMWX 已加密[2/9]解密若已加密调用解密脚本需输入 AppID[3/9]反编译调用 Node.js 执行 wuWxapkg.js保留中间文件[4/9]后处理修复 app.json分包、非法字段、iconData、pagePath 点号等[5/9]WXML 恢复从 $gwx 函数还原真实页面模板删除占位符后重新生成[6/9]深度校验补全缺失的页面四件套.js/.wxml/.wxss/.json、组件、图标[7/9]结构规范化确保每页独立文件夹、扁平文件移入目录、清理空目录[7.5]清理中间文件删除 page-frame.html 等中间文件[8/9]提取名称从配置文件提取小程序名称作为输出目录名[9/9]整理输出复制到桌面以小程序名称命名步骤 4查看结果反编译完成后自动弹出质量评估雷达图和完成提示框点击「打开输出目录」查看反编译结果点击「用开发者工具打开」直接调用微信开发者工具预览3.3 输出目录结构反编译后的标准项目结构小程序名称/ ├── app.js # 小程序入口 ├── app.json # 全局配置 ├── app.wxss # 全局样式 ├── project.config.json # 项目配置 ├── sitemap.json # 搜索优化配置 ├── pages/ # 页面目录 │ ├── index/ │ │ ├── index.js # 页面逻辑 │ │ ├── index.wxml # 页面模板 │ │ ├── index.wxss # 页面样式 │ │ └── index.json # 页面配置 │ ├── about/ │ │ ├── about.js │ │ ├── about.wxml │ │ ├── about.wxss │ │ └── about.json │ └── ... ├── components/ # 自定义组件 │ └── ... ├── images/ # 图片资源 │ └── ... └── tabBar/ # TabBar 图标 └── ...3.4 使用微信开发者工具预览打开微信开发者工具选择「导入项目」项目目录选择反编译输出目录AppID 填写反编译日志中显示的 AppID或使用测试号点击确定即可预览四、功能二网页反编译4.1 操作步骤步骤 1填写抓取设置设置项说明示例起始网址要抓取的网站入口 URLhttps://example.com深度从起始页出发的爬取层数0-102默认仅同域名勾选后只抓取同域名下的页面勾选默认输出目录抓取结果的保存位置留空则自动设为桌面深度说明深度 0 只抓首页深度 1 首页 首页链接的页面深度 2 再往下一层。步骤 2开始抓取确认设置无误点击「▶ 开始抓取」按钮若输出目录非空会弹出确认对话框观察日志区域的实时输出步骤 3等待抓取完成抓取流程自动执行BFS 爬取广度优先遍历页面最大 800 页资源下载自动下载 HTML 引用的所有 CSS、JS、图片、字体、媒体文件懒加载支持识别>网站_example.com/ ├── index.html # 首页 ├── favicon.ico # 站点图标 ├── about/ │ └── index.html # 子页面 ├── css/ # 样式文件 │ ├── style.css │ └── ... ├── js/ # 脚本文件 │ ├── main.js │ └── ... ├── images/ # 图片资源 │ ├── logo.png │ └── ... ├── fonts/ # 字体文件 │ └── ... └── media/ # 音视频 └── ...4.3 本地预览直接用浏览器打开输出目录中的index.html即可预览。所有资源引用已改为本地相对路径无需网络即可访问。五、总结与建议反编译是一项强大但需谨慎使用的技术。在着手反编译前建议明确目的与合法性确保反编译行为符合相关法律法规和软件许可协议。选择合适的工具根据目标文件类型和具体需求选择最合适的反编译工具。结合多种分析手段反编译结果应结合动态调试、网络抓包、内存分析等其他逆向技术进行综合判断。注重结果的可读性优化对反编译得到的代码进行重命名、结构重构和注释补充提高分析效率。无论是为了技术学习、安全研究还是商业合规理解反编译的用户需求都是有效运用这项技术的第一步。
返回列表