我有一个二进制数据文件,需要从中检索一些数据。从试验和错误以及十六进制编辑器的帮助,我已经确定了我需要的文本区域,但我不确定使用的是什么编码。
每个字符使用两个字节,但在我的样本集中,第二个字节始终为空。
1F00 : a
1C00 : b
1A00 : d
1B00 : e
1900 : g
1600 : h
1700 : i
1500 : k
1200 : l
1000 : n
1100 : o
0E00 : p
0F00 : q
0C00 : r
0D00 : s
0A00 : t
0B00 : u
0800 : v
0900 : w
5000 : .
5E00 : <- space
3F00 : A
3C00 : B
3D00 : C
3A00 : D
3B00 : E
2D00 : S
例如,单词hello表示为
16 00 1B 00 12 00 12 00 11 00
显然奇怪的是,0x41不是A,而且字母表甚至不是连续的。有可能使用了一些奇怪的密码,但我对此表示怀疑。
Joop Eggen找到了以下解决方案 - 简单的xor!
答案 0 :(得分:2)
你可能已经看过了,但是人们可以看到xorring。 这是一个穷人的加密,每个字符为int:
code = (plain ^ 0x7e) << 8
答案 1 :(得分:0)
如果你在linux上尝试使用enca(它检测文本文件的字符集和编码,也可以将它们转换为其他编码)。
答案 2 :(得分:0)
肯定有一种模式:
04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
a x a
b x b
c x c
d x d
e x e
f x f
g x g
h x h
i x i
j x j
k x k
l x l
m x m
n x n
o x o
p x p
q x q
r x r
s x s
t x t
u x u
v x v
w x w
x x x
y x y
z x z
04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F