前几天我在调试时遇到了一些我以前在我正在使用的嵌入式硬件上从未见过的内存和寄存器填充。所以我开始了一个心理目录。例如:
DEADBEEF, BAADF00D, D15EA5ED, DECEA5ED, BAA5H33P...
当您查看记忆查看器时会突出一些东西,并且与它的内容模糊相关(删除的记忆,无人区,外套......)。
这让我开始思考——这些有生成器吗?类似于 l33t 名称生成器的东西,但仅限于十六进制数字(hexits?)。
$ grep -i '^[abcdefols]*$' /usr/share/dict/words | tr ols 015
abaca
abed
abe1e
ab1
ab1e
ab0de
ab0ded
acc
accede
acceded
.
.
.
0ff
0ffa1
0ffed
0ff10ad
0ff10aded
01de
01e0
啊哈!“Hexspeak”是 Google 需要的关键字。
这是一个查找所有 Hexspeak 单词的Python 程序。以及该程序发现的内容的列表。
我今天的大脑很模糊,但这有效。换口味...
#!/usr/local/bin/python
letters = {'A':'A', 'B':'B', 'C':'C', 'D':'D', 'E':'E', 'F':'F', 'I':'1', 'O':'0', 'S':'5'}
f = open('/usr/share/dict/words', 'r')
for line in f:
line = line[:-1]
if len(line) < 4:
continue
word = ""
goodword = True
for c in list(line):
if c.upper() not in letters.keys():
goodword = False
else:
word += letters[c.upper()]
if goodword:
print "%20s\t%s" % (line,word)
f.close()