Помогите с шифрованием
От: AdDa  
Дата: 31.01.07 14:25
Оценка:
Помогите узнать алгоритм шифрования.
Все данные получил снифером. На какой ключ не знаю. Алгоритм шифрования симметричный (я так думаю)
Сначала идёт

Логин
Пароль
Затем пакет, который посылается серверу (первые 2 байта — размер пакета, затем ещё 2 байта — тип пакета, затем логин и пароль (каждый по 12 символов максимум))
По идее ключ высылается в пакете, который приходит до этого.

1
1
0x0000 1F 00 15 03 C2 F1 F1 F1-F1 F1 F1 F1 F1 F1 F1 F1
0x0010 F1 C2 F1 F1 F1 F1 F1 F1-F1 F1 F1 F1 F1 F1 00

2
2
0x0000 1F 00 15 03 ED DF DF DF-DF DF DF DF DF DF DF DF
0x0010 DF ED DF DF DF DF DF DF-DF DF DF DF DF DF 00

11
11
07 00 15 0D 01 66 01
0
x0000 1F 00 15 03 5A 5A 6B 6B-6B 6B 6B 6B 6B 6B 6B 6B
0x0010 6B 5A 5A 6B 6B 6B 6B 6B-6B 6B 6B 6B 6B 6B 00

22
22
07 00 15 0D 03 D9 01
0x0000 1F 00 15 03 EA EA D8 D8-D8 D8 D8 D8 D8 D8 D8 D8
0x0010 D8 EA EA D8 D8 D8 D8 D8-D8 D8 D8 D8 D8 D8 00

11
11
0x0000 1F 00 15 03 10 10 21 21-21 21 21 21 21 21 21 21
0
x0010 21 10 10 21 21 21 21 21-21 21 21 21 21 21 00

22
22
0x0000 1F 00 15 03 E4 E4 D6 D6-D6 D6 D6 D6 D6 D6 D6 D6
0x0010 D6 E4 E4 D6 D6 D6 D6 D6-D6 D6 D6 D6 D6 D6 00

1234567890ab
111111
0x0000 1F 00 15 03 5A 5B 54 55-56 57 50 51 52 59 0A 0B
0x0010 69 5A 5A 5A 5A 5A 5A 69-69 69 69 69 69 69 00

Затем посмотрел пакет, который присылает сервер.

Вот информация снифера.
Логин — 1
Пароль — 1
Во всех попытках

Первый пакет по идее содержит ключ, на который будет шифроваться пакет. Формат пакета : первый 2 байта — размер, вторые 2 байта — тип пакета, последние 3 байта — (возможно) ключ шифрования

Второй пакет — пакет с логином и паролем (первые 2 байта — размер пакета, затем ещё 2 байта — тип пакета, затем логин и пароль (каждый по 13 символов максимум))

0x0000 07 00 15 0D 04 5F 03

0x0000 1F 00 15 03 54 67 67 67-67 67 67 67 67 67 67 67
0
x0010 67 54 67 67 67 67 67 67-67 67 67 67 67 67 00


0x0000 07 00 15 0D 04 E7 02

0x0000 1F 00 15 03 DC EF EF EF-EF EF EF EF EF EF EF EF
0x0010 EF DC EF EF EF EF EF EF-EF EF EF EF EF EF 00


0x0000 07 00 15 0D 00 59 02

0x0000 1F 00 15 03 6E 5D 5D 5D-5D 5D 5D 5D 5D 5D 5D 5D
0x0010 5D 6E 5D 5D 5D 5D 5D 5D-5D 5D 5D 5D 5D 5D 00


0x0000 07 00 15 0D 03 09 01

0x0000 1F 00 15 03 39 08 08 08-08 08 08 08 08 08 08 08
0
x0010 08 39 08 08 08 08 08 08-08 08 08 08 08 08 00


0x0000 07 00 15 0D 00 D9 01

0x0000 1F 00 15 03 EE DD DD DD-DD DD DD DD DD DD DD DD
0x0010 DD EE DD DD DD DD DD DD-DD DD DD DD DD DD 00
Re: Помогите с шифрованием
От: Аноним  
Дата: 01.02.07 15:50
Оценка:
UP.........
Re: Помогите с шифрованием
От: Аноним  
Дата: 01.02.07 17:01
Оценка: 2 (1)
Здравствуйте, AdDa, Вы писали:

AD>Помогите узнать алгоритм шифрования.


Явно используется XOR.

AD>1

AD>1
AD>0x0000 1F 00 15 03 C2 F1 F1 F1-F1 F1 F1 F1 F1 F1 F1 F1
AD>0x0010 F1 C2 F1 F1 F1 F1 F1 F1-F1 F1 F1 F1 F1 F1 00

Пакет отправляемый серверу расшифровать не сложно:

ключ находится в предпоследнем байте пакета (выделен жирным). Собственно читаем этот байт (в данном случае — F1 который перед 00), и делаем для всех байтов в пакете (пропустив длину и тип, т.е. 4 байта) получим расшифрованный пакет

0x0000 1F 00 15 03 33 00 00 00-00 00 00 00 00 00 00 00
0
x0010 00 33 00 00 00 00 00 00-00 00 00 00 00 00 00

т.е. логин и пароль 0x33, т.е. 1


AD>Затем посмотрел пакет, который присылает сервер.


AD>0x0000 07 00 15 0D 04 5F 03


Вот тут пока я не разобрался... нам надо найти алгоритм по происходят преобразования:

04 5F 03 -> 67
04 E7 02 -> EF
00 59 02 -> 5D
03 09 01 -> 08
00 D9 01 -> DD

явно за основу берётся 2й байт и модифицируется в зависимости от 1го и 3го, но как — пока
Re[2]: Помогите с шифрованием
От: Аноним  
Дата: 05.02.07 17:53
Оценка:
Спасибо за помощь. Пытаюсь свять эти 4 байта.
Вот ещё пару примеров. Может, что-нить интересное кто-нить увидит.

00 AE 02 -> B0
01 90 03 -> 91
01 70 02 -> 71
03 DA 00 -> D9
01 5A 00 -> 5F
01 A1 01 -> A6
00 AB 00 -> AF
00 4B 00 -> 4F
03 94 03 -> 93
03 EE 00 -> F5
04 E9 02 -> E9
04 5F 03 -> 67
04 E7 02 -> EF
00 59 02 -> 5D
03 09 01 -> 08
00 D9 01 -> DD
Re[3]: Помогите с шифрованием
От: Аноним  
Дата: 06.02.07 16:39
Оценка:
Никак не могу найти между ними связь. Вот ещё пару примеров.

00 AB 00 -> AF
00 4B 00 -> 4F
00 17 00 -> 1B
00 D9 01 -> DD
00 73 01 -> 77
00 AE 02 -> B0
00 59 02 -> 5D
00 C2 03 -> C4
00 47 03 -> 4B
01 5A 00 -> 5F
01 A1 01 -> A6
01 87 01 -> 88
01 05 01 -> 0A
01 45 01 -> 4A
01 70 02 -> 71
01 20 02 -> 21
01 90 03 -> 91
02 72 00 -> 76
02 D2 01 -> D6
02 6E 02 -> 72
02 73 02 -> 75
02 42 03 -> 46
03 DA 00 -> D9
03 EE 00 -> F5
03 E8 00 -> EF
03 09 01 -> 08
03 17 01 -> 1E
03 CB 02 -> CA
03 94 03 -> 93
03 AD 03 -> B4
04 4A 00 -> 48
04 82 01 -> 80
04 E7 02 -> EF
04 E9 02 -> E9
04 78 02 -> 7E
04 5F 03 -> 67
04 4E 03 -> 54
Re[4]: Помогите с шифрованием
От: AdDa  
Дата: 06.02.07 17:55
Оценка:
Походу используется только 2 цифра в числе .
Т.е. например 01 17 01 -> 18
1 — трогается, работают с 7-ой (получают 8).
Возможно задействована какая-нить математическая функция. Заметил, что есть 1 и 3 параметры = 00, то ко 2 числу прибавляется 4.
Если первый параметр 00 — а второй другое число — то или +2 +4 ко второму числу.
Если первый параметр 01 — то или +1 или +5 к числу.
Правда для 02, 03, 04 не получается. Функция усложняется .

Вот список, наиболее полный

00 AB 00 -> AF
00 4B 00 -> 4F
00 17 00 -> 1B
00 01 00 -> 05
00 EF 00 -> F3
00 F3 00 -> F7
00 D9 01 -> DD
00 73 01 -> 77
00 8A 01 -> 8C
00 06 01 -> 08
00 5E 01 -> 60
00 AE 02 -> B0
00 59 02 -> 5D
00 81 02 -> 85
00 78 02 -> 7A
00 34 02 -> 36
00 C2 03 -> C4
00 47 03 -> 4B
00 39 03 -> 3D
00 7B 03 -> 7F
00 28 03 -> 2A
01 5A 00 -> 5F
01 A1 01 -> A6
01 87 01 -> 88
01 05 01 -> 0A
01 45 01 -> 4A
01 56 01 -> 5B
01 7C 01 -> 7D
01 44 01 -> 45
01 70 01 -> 71
01 B7 01 -> B8
01 17 01 -> 18
01 70 02 -> 71
01 20 02 -> 21
01 7F 02 -> 80
01 C4 02 -> C5
01 EC 02 -> ED
01 B9 02 -> BE
01 90 03 -> 91
01 2D 03 -> 32
02 72 00 -> 76
02 FB 00 -> FD
02 3A 00 -> 3E
02 D6 00 -> DA
02 D2 01 -> D6
02 6E 02 -> 72
02 73 02 -> 75
02 9B 02 -> 9D
02 42 03 -> 46
02 30 03 -> 30
03 DA 00 -> D9
03 EE 00 -> F5
03 E8 00 -> EF
03 7C 00 -> 7B
03 4A 00 -> 49
03 2E 00 -> 35
03 09 01 -> 08
03 17 01 -> 1E
03 CB 02 -> CA
03 3E 02 -> 45
03 94 03 -> 93
03 AD 03 -> B4
03 CD 03 -> D4
04 4A 00 -> 48
04 B4 00 -> B2
04 8C 00 -> 8A
04 82 01 -> 80
04 06 01 -> 0C
04 FF 01 -> 07
04 E7 02 -> EF
04 E9 02 -> E9
04 78 02 -> 7E
04 26 02 -> 2C
04 23 02 -> 23
04 5F 03 -> 67
04 4E 03 -> 54
04 0B 03 -> 0B
04 49 03 -> 49
Re[5]: Помогите с шифрованием
От: Аноним  
Дата: 11.02.07 16:28
Оценка:
Здравствуйте, AdDa, Вы писали:

AD>Правда для 02, 03, 04 не получается. Функция усложняется .


Похоже проще посмотреть на функцию, например в дизассемблированном виде, исходников как я понимаю нет .
Если нету и exe'шника сервера, то ломать голову можно долго.
Re[2]: Помогите с шифрованием
От: AdDa  
Дата: 14.02.07 09:08
Оценка:
Пакет который отправляется серверу шифруется не простым XOR.
Байт на который XOR'ится я нашёл как получить (из прошлого пакета, с помощью небольших преобразований). Но для пакета с логином и пассом используют наверное XOR со сдвигом.

Вот несколько примеров,

abcde12345
abcde12345


0x0000 07 00 15 0D 04 88 03

0x0000 1F 00 15 03 ED EC E3 E2-E1 BD BC B3 B2 B1 8E 8E
0x0010 8E ED EC E3 E2 E1 BD BC-B3 B2 B1 8E 8E 8E 00

addaadda
addaadda


0x0000 07 00 15 0D 04 41 03

0x0000 1F 00 15 03 22 2D 2D 22-22 2D 2D 22 41 41 41 41
0
x0010 41 22 2D 2D 22 22 2D 2D-22 41 41 41 41 41 00


abcde12345
abcde12345


0x0000 07 00 15 0D 04 DD 01

0x0000 1F 00 15 03 86 87 88 89-8A D6 D7 D8 D9 DA E5 E5
0x0010 E5 86 87 88 89 8A D6 D7-D8 D9 DA E5 E5 E5 00


xyabmn
xyabmn


0x0000 07 00 15 0D 03 E5 02

Packet #28
0x0000 1F 00 15 03 94 95 8D 8E-99 9A EC EC EC EC EC EC
0x0010 EC 94 95 8D 8E 99 9A EC-EC EC EC EC EC EC 00

bbbaaabbb
bbbaaabbb

0x0000 07 00 15 0D 04 B1 03

0x0000 1F 00 15 03 D3 D3 D3 D2-D2 D2 D3 D3 D3 B1 B1 B1
0x0010 B1 D3 D3 D3 D2 D2 D2 D3-D3 D3 B1 B1 B1 B1 00

bbbaaabbb1
bbbaaabbb1

0x0000 07 00 15 0D 00 CB 00

0x0000 1F 00 15 03 AD AD AD AC-AC AC AD AD AD FC CF CF
0x0010 CF AD AD AD AC AC AC AD-AD AD FC CF CF CF 00
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.