自己半路学编程,主要是 iOS 开发,但毕竟没有系统学过计算机,有很多科班人士的基本专业知识自己认知都很浅。有时候多了解一下也是好事。Paul 大神开发的 Hacktivate 这个 mac 版游戏,希望用游戏的方式教给玩家一点计算机和网络安全的知识,这个方向真是非常小众。我试玩了一下,总之如果是让我去看这类的书,估计是没什么兴趣,但通过这种游戏的方式,还挺有不断挑战的好奇心。

ASCII 字符
ASCII 字符是计算机中最基础、最经典的字符编码标准。ASCII 全称是 American Standard Code for Information Interchange(美国信息交换标准代码)。它用 7 位二进制数(实际常用 8 位,最高位为 0)来表示 128 个字符(0~127),包括:
- 控制字符(0~31):如换行、回车、制表符等
- 可打印字符(32~126):空格、数字、大小写字母、标点符号
- 删除符(127)
后来扩展出的 扩展 ASCII(0~255)可以表示更多符号,但标准 ASCII 只定义到 127。在 ASCII 表中,同一个字符通常会同时用三种进制:十进制 DEC 、十六进制 HEX、八进制 OCT 表示它的编号。
常见的数据识别经验
- 数据以一个或两个等号 “=” 结尾的,一般都是 Base64 的数据
- 数据用 Base64 解码后,是以 png 开头,就代表图像
- 数据以 pk 开头的一般为 zip 压缩包
- PNG 图片数据是包含一些固定的 chunk ,其中 IEND 就是一个标准的 chunk 名称,它表示图片数据到此就正式结束了。所以如果发现它后面还有数据,那可能就是额外藏的信息。如果图片数据是用十六进制表示的,那就要留意 49 45 4E 44 ,因为它们对应 ASCII:49 = I、45 = E、4E = N、44 = D
- 图像有时候看不出有什么异样的,很可能是设置了肉眼无法分辨的相似像素颜色,这个时候用像素颜色随机化处理,就能看出图像里面的信息
- 在浏览网页时,可以直接在 console 调试台,输入网页已有的定义好的 JS 方法,直接运行。都不需要依赖界面操作
- 表面看起来是一个文件的,里面可能是将多个文件压缩成一个了
常见的密码 / 编码思路
| 方法 | 核心思路 | 是否需要密钥 | 例子 |
|---|---|---|---|
| Base64 | 把二进制转成文本,是编码,不是加密 | – | 以 = / == 结尾 |
| NATO 北约音标字母表 | 这个不是加密,是固定的字母 – 单词的对应 | – | B 对应 Bravo |
| Caesar Cipher 凯撒加密 | 所有字母统一移动固定位置 | 是,一个数字 | ABC +3 → DEF |
| Vigenère Cipher 维吉尼亚 | 每个字母按循环密钥使用不同位移 | 是,字符串 | Key=KEY |
| ROT13 | Caesar 的特殊版,固定移动 13 位 | 否,规则固定 | HELLO → URYYB |
| Atbash | 字母表首尾互换 | – | A↔Z, B↔Y |
| Substitution Cipher | 每个字母固定替换成另一个字母 | 是,替换表 | A→Q, B→M |
| Transposition Cipher | 字母不变,只改变排列顺序 | 通常需要 | HELLO → 重排 |
| XOR | 数据与密钥逐位异或 | 是 | 二进制数据常见 |

Hacktivate 通关 Flag 清单
- challenge 01: FIRST BASE
- challenge 02: WILD GOOSE CHASE(两次通过 Base64 解码)
- challenge 03: BACKWARDS(将音频反转,并提高速度播放)
- challenge 04: MUSIC(将音频视觉化)
- challenge 05: COMMAND LINE COMMANDO (熟悉命令行 ls -a、cat)
- challenge 06: LOST AND FOUND(熟悉命令行)
- challenge 07: SHARK IN THE DARK (像素颜色随机映射)
- challenge 08: Belfast (像素颜色随机映射,再 base64 解码)
- challenge 09: YOU BEAT ME (在 console 直接调用 JS 方法)
- challenge 10: SPARKLE (在 console 输入提示的方法名调用)
- Cipher Salad: SPIN TO WIN (Caesar 凯撒加密 rotate text)
- Patience Need: TIMEWASTER (查看网页源代码)
- Tango Hotel Echo: WOOT (NATO 字母表)
- Raseac Cipher: cryptoquest (将字符翻转,再用凯撒加密)
- Pretty QR Patterns: SUPERFLUOUS (二维码 – 摩斯密码 – 二进制 – 文字)
- Ghost Extraction: COMBO (extract files 从单个文件中检出多个文件)
- Radio Silence: STATIC (听长短音,用摩斯密码解码)
- Truth Table: IT’S ONLY LOGICAL (逻辑门)
- Log Jam: UNCLOG (查看 console 调试台输出的每行首字母)
- Family Reunion 2: SKIRLING (toHex 找到 PNG 的 IEND,然后 From Hex 转成 ASCII,再 Base64 解码成坐标)
- Devious Ddoggos: persistence pays off (From Hex — 以==开头的字符串 — 翻转字符串 — from base64 — identify file type 为 jpg 图片 — 渲染图片)
- Vision of a complex cipher: FUZZYWUZZY (Vigenère Cipher Decode 暴力解码)
- Hide and seek: badminton(base64 解码后仔细在里面观察)
- Magnify: SUPERSIZE (调试台运行 document.querySelector(‘p.text-center img’).style.width = ‘300px’; 可直接修改样式)
- The 64 times table: BOOPLESNOOTLE (以 PK 开头的 ZIP 文件 — 解压得到 file.txt — 再 base64 — HEX十六进制 – Binary二进制 — Text)
- Pixel reco: SLICED AND DICED(将图像中间空白去掉,拼起来看)
- Hack: NO HACKS HERE (看懂题目意思后逐步调整即可)
- A curious ASCII: ASCII TO THE MAX (ASCII 字符混合了三种进制表示,表里没有的字符代表空格)
- You have got fail: Nemesis Biotech (从邮箱备份文件获取账号密码)
- Checkmate: HACKALOT(有棋子的格子记作 1,空格记作 0,每行从左往右读取得到 8 位二进制数,再把每行转换成对应的 ASCII 字母)
后续 $14.99 美金解锁所有关卡,暂时就不付费了… 在破解这个游戏迷题的过程中,自己没少问 AI 大模型,一方面大模型的确挺强,推理破解这种简单的“黑客”任务轻而易举;另一方面当我问了几次后,Claude 和 GPT 都出现了中断和警告的情况,原因是识别到我使用 AI 完成一些网络安全的任务,需要验证身份或直接拒绝,于是我也不敢再问了。
可见 AI 大模型的能力在信息战中日益重要,在那个我们接触不到的领域,应该早已暗流涌动。大国之间互相提防自然也是顺理成章。