nzeemin/bk0011m-dizzy1td-rev

GitHub: nzeemin/bk0011m-dizzy1td-rev

对苏联 BK-0011M 计算机上经典冒险游戏 Dizzy 1 的完整反汇编与逆向工程笔记项目。

Stars: 0 | Forks: 0

# bk0011m-dizzy1td-rev - 逆向 Dizzy 1 游戏 (MBS/TD) BK-0011M ## 游戏 该游戏名为 **Dizzy 1**,但其实是作者对由 Oliver Twins 设计并于 1989 年由 Codemasters 发行的 **Dizzy III** 或 **Fantasy World Dizzy** 的重新制作。 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e222ecf022235327.png) 该移植版本由 **Magic Bytes Software** / **TD Corp** (Тюрев Дмитрий) 于 1994 年制作。 ## 平台 **BK-0011M**(俄语为 **БК-0011М**)是 20 世纪 80 年代由泽列诺格勒设计的一款苏联家用电脑。它是一台秉承了 LSI-11 精神的 PDP-11 兼容计算机。 **主要规格:** - **CPU:** К1801ВМ1 — 一款兼容 PDP-11 的 16 位处理器 - **RAM:** 128 KB,分为八个 16 KB 的页面 - **显示:** 256×256 像素,2bpp(4色),双缓冲 - **声音:** 1-bit 蜂鸣器 - **存储:** 5.25 英寸软盘 - **输入:** 键盘和摇杆 这种不寻常的 bank switching 设计:在一个固定的 16 KB 代码页上使用两个可独立切换的 16 KB 窗口 —— 这是游戏同时管理其 sprite 数据、屏幕缓冲区和关卡地图的核心所在。 ## 仓库内容 | 文件 | 描述 | |------|-------------| | `dizzy.asm` | `DIZZY.DIZ` 的完整反汇编(游戏代码,16 KB),采用 MACRO-11 风格。使用 BKTurbo8 汇编器编译后,可生成与原始二进制文件逐字节相同的文件。 | | `dizzy-font.inc` | 字体字形表(76 个字形,每个 10 字节,8×10 像素)。 | | `dizzy-strings.inc` | 所有游戏内对话字符串以 `.BYTE` 指令形式呈现,并附带解码后的俄文文本。 | | `REVERSE.md` | 详细的逆向工程笔记:数据格式、内存布局、解谜逻辑、sprite 表和房间系统。 | ## 反汇编状态 主游戏文件 `DIZZY.DIZ`(地址 `000300`–`037771`)已**完全反汇编并添加了标签**。其二进制输出与原始文件完全一致。 加载器 `DIZZY1` 未包含在内 —— 它是一个独立的文件,不在此项目的范围内。 ## 构建代码 该汇编代码是为 **BKTurbo8** 汇编器(兼容 BK-0011M 的交叉汇编器)编写的。 运行以下命令以重新汇编: ``` BKTurbo8.exe -ik --raw -s000300 -ldizzy.lst CO dizzy.asm ``` 输出的文件应与原始的 `DIZZY.DIZ` 在二进制上完全一致。 ## 逆向方法 1. 在 GID 的 BK 模拟器中收集**执行轨迹** 2. 在已知位置进行**内存转储**,以确认静态数据和初始变量值 3. 对比编译输出和原始文件进行**二进制比对**,以验证二进制一致性 4. 对代码进行**迭代式注释** ## 参考 - [维基百科上的 Dizzy 系列](https://en.wikipedia.org/wiki/Dizzy_(series)) - [维基百科上的 BK-0011M](https://en.wikipedia.org/wiki/Elektronika_BK) - [BK 软件目录中的 Dizzy 1](https://kalininskiy.github.io/bk-catalog/#game-847)
标签:PDP-11, Wayback Machine, 云资产清单, 反汇编, 复古计算机, 安全报告生成, 快速连接, 汇编语言, 游戏开发, 自动回退, 逆向工程