疑犯追踪 Code Analysis 第 1 期 · S05E03

I. POI-S05E03 解析概要

疑犯追踪(Person of Interest)S05E03 剧集中,The Machine 向 Harold 和 Root 传递了一串由 0 和 1 组成的字符,最终由 Root 破译解析成功,恢复其中包含的信息。剧照如下:

剧照组图 剧照组图 剧照组图 剧照组图

II. 解析过程

2.1 代码分析

分析图中的 01 子串,发现每个子串均由 8 bit 构成,且最高位均为 0,即子串隐含的信息存储在低位的 7 bit 中。据此可猜测子串极有可能为字符 ASCII 码的二进制表示(ASCII 码使用 7 位二进制数来表示 128 个字符,包括数字、字母、标点符号和控制字符。在计算机中,通常使用 8 位二进制数来表示 ASCII 码,其中最高位用于奇偶校验或扩展字符集)。

2.2 解析步骤

Step1. 首先识别图片中包含的所有字符,将 01 串保存到 code.txt

code.txt 文件内容

Step2. 实现代码分析中的猜测,将每 8 bit 子串解析为单个 ASCII 字符。这里使用 Python 实现,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# encoding:utf-8

import os

def main():
file_path = './code.txt'
decipher_result = ''
with open(file_path, 'r') as f:
lines = f.readlines()
for line in lines:
line = line.strip('\n')
for seg in line.split(' '):
# convert binary to decimal
decipher_result = decipher_result + str(chr(int(seg, 2)))
print(decipher_result)

if __name__ == "__main__":
main()

Step3. 运行上述代码,得到解码后的结果如下,与 Root 解析的结果一致:

解析结果 剧照图

不得不说,POI 的细节设计还是很严谨的。