igorlira/dirplayer-rs

GitHub: igorlira/dirplayer-rs

一个用 Rust 编写的 Shockwave Player 模拟器,让现代浏览器能够运行旧时代浏览器游戏并提供调试工具。

Stars: 301 | Forks: 18

![DirPlayer Logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/663f00aefd084820.png) # DirPlayer DirPlayer 是一个用 Rust 编写的 Shockwave Player 模拟器,旨在让现代浏览器能够运行旧的浏览器游戏。 ## 演示 在 http://dirplayer-rs.s3-website-us-west-2.amazonaws.com/ 查看此项目的实时演示。 ## Chrome 扩展 在 https://chromewebstore.google.com/detail/dirplayer-shockwave-emula/gpgalkgegfekkmaknocegonkakahkhbc 下载 Chrome 扩展。 该扩展实现了一个 polyfill,用于替换您访问的网站中所有指向 Shockwave 文件的 `` 元素。 ## 独立应用 除了模拟器之外,DirPlayer 还附带了一个独立应用程序,为 Lingo 脚本和 Shockwave 文件提供完整的调试工具集。 预构建的二进制文件可在 https://github.com/igorlira/dirplayer-rs/releases 找到。 ![./app-screenshot.gif](https://raw.githubusercontent.com/igorlira/dirplayer-rs/main/app-screenshot.gif) ## Polyfill DirPlayer 可以作为独立的 JavaScript polyfill 直接嵌入到任何网页中。该 polyfill 是一个独立的 JS 文件,包含 WASM VM 和所有必需的资源。 ### 用法 自动初始化: ``` ``` 手动初始化: ``` ``` Polyfill 会自动检测并替换引用 Shockwave `.dcr` 文件的 `` 和 `` 元素。 ## 环境要求 - NodeJS - [(LTS 或更新版本)](https://nodejs.org/) - RustLang - [(1.70.0 或更新版本)](https://www.rust-lang.org/) - wasm-pack - https://github.com/rustwasm/wasm-pack/releases ## 构建 ### 🪟 Windows Windows 用户可以使用位于 [`scripts`](https://github.com/igorlira/dirplayer-rs/tree/main/scripts) 文件夹中以 `.bat` 结尾的脚本。 - 使用 [`scripts/build-vm.bat`](https://github.com/igorlira/dirplayer-rs/blob/main/scripts/build-vm.bat) 构建 Rust VM - 使用 [`scripts/build-extension.bat`](https://github.com/igorlira/dirplayer-rs/blob/main/scripts/build-extension.bat) 构建扩展 - [可以在此处找到更多信息](https://github.com/igorlira/dirplayer-rs?tab=readme-ov-file#building-extension) - 使用 [`scripts/run.bat`](https://github.com/igorlira/dirplayer-rs/blob/main/scripts/run.bat) 本地运行 ### 🐧 其他平台 #### 构建 Rust VM ``` npm run build-vm ``` #### 构建扩展 ``` npm run build-extension ``` 请务必先构建 VM。打包后的扩展将位于 `./dist-extension`。 您可以通过访问 `chrome://extensions`,启用开发者模式,然后点击“加载已解压的扩展程序”按钮来安装本地构建版本。 请注意,该扩展目前仅适用于 Chrome。 #### 构建独立应用 在构建独立应用之前,请确保已构建 VM。构建结果将位于 `./dist`。 ``` npm run electron-pack ``` #### 构建 polyfill 同上,在运行此命令之前请确保已构建 VM。输出将是一个位于 `./dist-polyfill/dirplayer-polyfill.js` 的文件。 ``` npm run build-polyfill ``` #### 本地运行 ``` npm run start ``` #### 本地运行独立应用 ``` npm run electron-dev ``` ## 加入我们的 Discord! 如果您有任何问题或有兴趣参与此项目的讨论,请加入我们的 Discord! https://discord.gg/8yKDk9nJH2 ## 致谢 如果没有 Shockwave 逆向工程社区的大量工作,这个项目是不可能实现的。 许多代码复现自以下项目: https://github.com/Earthquake-Project/Format-Documentation/ https://github.com/Brian151/OpenShockwave/ https://gist.github.com/MrBrax/1f3ae06c9320863f1d7b79b988c03e60 https://www.scummvm.org/ https://github.com/csnover/earthquake-rust/ https://github.com/ProjectorRays/ProjectorRays
标签:AI工具, DCR文件, Lingo调试, MITM代理, Polyfill, Rust, Shockwave播放器, Shockwave模拟器, WASM, WebAssembly, 云资产清单, 可视化界面, 复古游戏, 多媒体播放器, 旧游戏兼容, 桌面应用, 浏览器插件, 游戏模拟器, 网络流量审计, 逆向工程, 通知系统