
JPEXS Free Flash Decompiler把 SWF 里的图片、声音、文字和 ActionScript 提取出来【免费下载链接】jpexs-decompilerJPEXS Free Flash Decompiler项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompilerJPEXS Free Flash Decompiler下称 FFDec是一个开源的 Flash SWF 反编译器兼编辑器基于 Java 开发支持 Windows、Linux 和 macOS。它做的事情很直接打开一个 SWF 文件把里面的资源提取成独立文件把编译后的 ActionScript 2/3 还原成可读代码还可以修改时间线、替换图像/声音/字体后保存回 SWF 或导出为 FLA。适合需要抢救旧 Flash 内容的人也适合想拿 SWF 当二进制格式练手分析的人。什么人会用得上它想保留旧游戏/动画素材的人手里有一个或一批 SWF需要把贴图、音效、字体、文本单独导出避免随平台关闭而丢失。做迁移的开发者老网站或老系统里还有 Flash 内容需要看清里面的逻辑和资源为 HTML5 重写提供素材和参考。学习二进制格式的人FFDec 的库部分libsrc/ffdec_lib/可以脱离图形界面单独使用用 Java 直接解析和改写 SWF 的 Tag 结构是研究 SWF 格式的现成入口。它能帮你完成的三件事1. 从 SWF 里导出资源图形界面打开文件后左侧树按类型列出 SWF 内的所有元素脚本、形状、文本、声音、字体等选中后通过导出对话框可以批量导出支持的输出格式包括 PNG、GIF、APNG、WEBP、SVG、WAV、MP3、文本、XML 等。也可以把整个文件Export to FLA得到可再编辑的工程文件。2. 阅读反编译出的 ActionScript 代码AS2 和 AS3 都能反编译为接近原始写法的代码。界面同时提供三层视图反编译的源代码、对应的 P-code 汇编、以及流程图方便对照字节码理解逻辑。对于混淆过的 SWF内置的 deobfuscation 工具可以恢复寄存器为可读变量名examples/DeobfuscatorSample.java 给出了用库监听解析过程并挂接反混淆的完整示例。3. 修改内容并写回反编译不是只读的。可以直接编辑时间线、修改文本内容、替换 SWF 内嵌的图片和声音改完另存为新的 SWF。时间线视图里能看到图层、帧和关键帧分布并支持直接调整另外它带有 AS3 调试器设置断点、单步执行、查看变量用于逐步跟踪反编译代码的执行过程。最短上手路径安装 Java 8 及以上版本java -version确认。获取程序从发布页面下载对应系统的安装包或 jar 包没有发布包的话用 git 克隆源码后构建git clone https://gitcode.com/gh_mirrors/jp/jpexs-decompiler源码构建需要 Apache AntNetBeans 也可直接打开项目运行在源码根目录执行ant run启动后 File → Open 选择一个 SWF仓库libsrc/ffdec_lib/testdata/下有大量现成的测试 SWF比如as2.swf、as3.swf拿来练习正合适。在左侧资源树里双击一个脚本看到反编译的代码右键任意资源选择 Export得到第一组导出文件。不想装 Java 的话仓库根目录带了一个 Dockerfile构建后可以直接跑无界面版本docker build -t ffdec .docker run --rm -v ./input:/work/input -v ./output:/work/output ffdec --help入口是 CLI--help会列出可用参数把文件放进挂载的 input 目录、结果写到 output 目录即可。一个完整示例把 SWF 里的贴图全部提取出来以libsrc/ffdec_lib/testdata/as2/as2.swf为例启动 FFDecFile → Open 选中该文件。文件解析后左侧出现 Scripts、Shapes、Text、Sounds、Fonts 等分组。展开 Shapes 分组逐个选中位图和形状File → Export在弹出的导出对话框里勾选要导出的类型选择目标目录。导出完成后目标目录里会出现 PNG 图片和对应的文本/音频文件文件名沿用 SWF 内的原始命名方便对回代码里的引用。如果还想保留工程结构用 Export to FLA 再导出一份 FLA之后可以用支持该版本的 Flash 类工具继续编辑。整个过程中不需要写任何代码全部是界面操作。进阶用库和 Docker 做批量处理命令行/Docker 批处理如上所述Docker 模式下 CLI 是入口点适合把一批 SWF 挂进容器循环处理无需在服务器上装 Java。Java 库调用核心解析逻辑在libsrc/ffdec_lib/LGPL v3与 GUI 解耦。其 README 里给了最小示例用new SWF(fis, true)打开文件遍历swf.getTags()处理每个 Tag修改后调用tag.setModified(true)再swf.saveTo(os)写回。持续集成master分支是稳定版dev分支每次推送会自动产出 nightly 构建正式版本由打versionx.y.z标签触发。跟踪版本变化看 CHANGELOG.md。容易卡住的地方双击启动没反应或闪退几乎都是 Java 缺失或版本过低。先确认java -version是 8内存不足时加大堆如java -Xmx2G -jar ffdec.jar。SWF 打不开或提示无效先确认文件完整大小、魔数是否为 FWS/CWS/ZWS部分受特殊保护的 SWF 不一定能完全解析这类情况去 issue tracker 里搜一下多数已有记录。反编译出来的代码看不懂AS2/AS3 混淆代码建议先跑一次内置 deobfuscation变量名恢复再配合 P-code 视图对照AS3 还可以用调试器下断点单步走。导出的 FLA 无法打开FLA 导出对目标 Flash 版本有对应关系不同 SWF 版本导出的 FLA 对应不同 CS 版本版本不匹配时换一个导出选项。构建源码失败确认装了 Ant 且git可用构建脚本用 git 取版本号用 NetBeans 打开项目可以绕开手动配置 Ant 的过程。去哪里找更多资料使用手册与安装说明项目 WikiREADME 中的链接指向官方 Wiki版本变更记录CHANGELOG.md核心反编译库及 Java 用法libsrc/ffdec_lib/README.md反混淆代码示例examples/贡献规范提 PR、代码风格检查ant checkstyleCONTRIBUTING.md问题反馈README 中指向的 issue tracker下一步建议先用testdata/as3/as3.swf走一遍打开 → 反编译 → 导出资源的流程熟悉界面后再试修改时间线并另存最后看 CHANGELOG 确认你手上的文件对应的 SWF 版本是否在支持范围内。【免费下载链接】jpexs-decompilerJPEXS Free Flash Decompiler项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考