# 桥豆麻衣酱 App 近似源码提取说明 ## 结论 已从安装包 `/Applications/桥豆麻衣酱.app` 的可执行文件中成功提取出前端静态资源。 这不是开发者原始仓库源码,而是: - Tauri 桌面壳里的前端打包产物 - 可直接检索的 JS/CSS/worker/wasm 资源 - 足够用于做接口、权限、业务逻辑、模型支持范围的审计 当前共提取出 `29` 个资源,清单见: - `manifest.json` ## 目录 - `app.arm64` - 从通用 Mach-O 中切出来的 arm64 可执行文件 - `extract_tauri_assets.js` - 本次用于提取内嵌资源的脚本 - `manifest.json` - 每个资源的偏移、压缩大小、解压大小、输出路径 - `extracted/assets/` - 解压出的前端资源 ## 最重要的文件 - `extracted/assets/index-m-NWkaV-.js` - 主前端 bundle,约 `4.0 MB` - React + Vite 风格打包产物 - 绝大多数业务逻辑都在这里 - `extracted/assets/index-CgHmA0qR.css` - 主样式文件,约 `182 KB` - `extracted/assets/thumbnailWorker-Iu1AjlwR.js` - 缩略图 worker,负责图片缩放和 JPEG 缩略图生成 - `extracted/assets/ort.bundle.min-OfoG_cy9.mjs` - ONNX Runtime Web bundle - `extracted/assets/ort.webgpu.bundle.min-CEayb2S6.mjs` - ONNX Runtime WebGPU bundle - `extracted/assets/ort-wasm-simd-threaded.jsep-D5Jk56-t.wasm` - ONNX Runtime wasm 二进制,约 `23.9 MB` ## 从 bundle 中确认到的内容 ### 1. 这确实是 Tauri 桌面应用 在主 bundle 中能直接看到 Tauri 调用痕迹和桌面特有命令,比如: - `download_file_bypass_cors` - `proxy_fetch` - `start_local_server` 可在主文件里直接搜这些关键字。 ### 2. 它不是纯聊天壳,而是带图像/视频工作流能力 主 bundle 中能搜到很多工作流节点和媒体能力相关关键词,例如: - `gen-image` - `gen-video` - `storyboard-node` - `inpaint-crop` - `motion-control` - `custom-agent` - `local-save` 这说明它有比较完整的图像、视频、分镜、局部重绘、本地保存等功能。 ### 3. 默认端点和多供应商能力都在前端 bundle 里 主 bundle 中可见默认端点配置: - `https://ai.comfly.chat` - `https://ai.t8star.cn` - `https://api.midjourney.com` 还可以看到对多个供应商和模型系的支持痕迹,例如: - `openai` - `gemini` - `deepseek` - `doubao` - `jimeng` - `kling` - `vidu` - `zhipu` - `moonshot` - `qwen` - `minimax` - `midjourney` - `suno` ### 4. 图片审核地址的默认值写在前端状态初始化里 主 bundle 内能直接看到默认审核地址: - `http://118.196.112.236:3428/api/moderation/image` 同时它还读取这几个本地存储键: - `qiaodoumayi_seedance_moderation_url` - `qiaodoumayi_seedance_moderation_user_id` - `qiaodoumayi_seedance_moderation_key_hex` 这说明图片审核地址并不是仅服务端下发,也可能由本地配置覆盖。 ### 5. 本地保存能力通过本地服务和文件落地配合实现 主 bundle 中可见: - `start_local_server` - `qiaodoumayi_download_directory` 这说明它支持启动本地接收器/本地服务,再结合用户设置的下载目录做文件保存。 ## 建议优先看的位置 ### 主 bundle 文件: - `extracted/assets/index-m-NWkaV-.js` 建议优先搜索这些词: - `qiaodoumayi_` - `seedance` - `moderation` - `download_file_bypass_cors` - `proxy_fetch` - `start_local_server` - `runninghub` - `api.openai.com` - `generativelanguage.googleapis.com` - `dashscope.aliyuncs.com` ### 缩略图 worker 文件: - `extracted/assets/thumbnailWorker-Iu1AjlwR.js` 这个文件很短,适合先看,能快速确认: - 它会 `fetch` 图片 - 用 `createImageBitmap` 和 `OffscreenCanvas` 做缩放 - 最终转成 JPEG data URL 返回给主线程 ## 已确认的几个关键定位点 以下行号来自提取后的 bundle,可作为检索起点: - `index-m-NWkaV-.js:924` - `qiaodoumayi_seedance_moderation_url` - `index-m-NWkaV-.js:1673` - `download_file_bypass_cors` - `index-m-NWkaV-.js:2068` - `start_local_server` 注意: - 这是打包文件,很多行非常长 - 行号只能作为“进入附近区域”的参考,不等于原始源码位置 ## 局限 - 没找到 sourcemap - 没恢复出原始 React/TypeScript 目录结构 - 变量名、模块边界、注释都已经过打包压缩处理 - 目前恢复的是“近似源码”,不是开发者仓库 ## 怎么继续深挖 如果要继续做更细的审计,下一步建议按下面顺序: 1. 以 `index-m-NWkaV-.js` 为主,按 `qiaodoumayi_`、`seedance`、`proxy`、`download` 搜配置和命令入口 2. 把出现的外连域名、接口路径、Tauri 命令整理成一张表 3. 继续从本地存储和日志交叉验证哪些配置在这台机器上真正被启用 4. 对最敏感的几条链路单独追踪:图片审核、本地代理、本地保存、文件下载绕过 CORS