В какой кодировке находится эта двоичная строка? - PullRequest
3 голосов
/ 22 декабря 2011

У меня есть файл двоичных данных, и мне нужно извлечь из него некоторые данные. По методам проб и ошибок и помощи шестнадцатеричного редактора я определил области текста, которые мне нужны, но я не уверен, какая кодировка используется.

Каждый символ использует два байта, но в моем примере выборки второй байт всегда пуст.

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

например, слово привет представлено как

16 00 1B 00 12 00 12 00 11 00

Очевидно, странная вещь в том, что 0x41 - это не A, и что алфавит даже не является последовательным. Возможно, использовался какой-то странный шифр, но я сомневаюсь в этом.

Joop Eggen нашел решение ниже - простой xor!

Ответы [ 3 ]

2 голосов
/ 22 декабря 2011

Вы, наверное, уже видели это, но можно увидеть xorring. Это шифрование для бедного человека, каждый символ как int:

code = (plain ^ 0x7e) << 8
0 голосов
/ 22 декабря 2011

Определенно есть шаблон:

    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  
0 голосов
/ 22 декабря 2011

Если вы в linux пытаетесь использовать enca (он определяет набор символов и кодировку текстовых файлов, а также может конвертировать их в другие кодировки).

...