Расшифровываем часть протокола Stronghold Kingdoms
	
	
	                
  
  
  
  
		Надеюсь вы знаете ММО стратегию Stronghold Kingdoms от FireFly. К сожалению игра не браузерная, поэтому задача расшифровывания может значительно усложниться.
Сегодня я решил взяться за быстрое получение цен у всех доступных торговцев (дабы ускорить процесс поиска продавца).
Мне понадобился Charlesи аккаунт в SHK (он же Stronghold Kingdoms).
Итак, начинаем.
Посетив 3-4 маркета и остановив чарли, отсеил все пакеты, чей размер не равен 1015 байт.
Отсеив эти пакеты я обнаружил совпадения. Допустим код, полученный при посещение маркета №1:
А маркета 2№:
И так далее…
Вышло, что для ответа можно применить шаблон:
где x- меняющиеся переменные
Далее извлекаем из ответов эти самые x.
Поделив на количество товаров можно сделать вывод что на каждый товар идет 8 знаков (2 последних-разделители).
Тогда можно правильно оформить все товары:
А вот тут начинается все самое интересное.
Выходит, что 63 57 01 это зашифрованное число.
Ну по простому это перевести не получилось, поэтому для начала я выписал все эти «правильные» значения.

Ну и начал колдовать над зашифрованными.
Мое внимание привлекла строка
Так как значение которое они содержат вероятно малое (по сравнению с другими), а из «правильных» значений самое маленькое -5, то я догадался, что это и есть 5. Ну а что же тогда с другими числами? Так там просто перестановки!
Путем перебора вышло, что если число в зашифрованном виде
Вот и все!
Пользуясь моментом также хочу поздравить всех хаброюзеров с наступившим новым годом.
 
				
	  
Сегодня я решил взяться за быстрое получение цен у всех доступных торговцев (дабы ускорить процесс поиска продавца).
Мне понадобился Charlesи аккаунт в SHK (он же Stronghold Kingdoms).
Итак, начинаем.
Посетив 3-4 маркета и остановив чарли, отсеил все пакеты, чей размер не равен 1015 байт.
Отсеив эти пакеты я обнаружил совпадения. Допустим код, полученный при посещение маркета №1:
c8 02 00 00 2a 00 01 00 00 00 ff ff ff ff 01 00
00 00 00 00 00 00 16 11 10 00 00 10 01 00 00 00
01 00 00 00 09 02 00 00 00 0c 03 00 00 00 0b a0
00 06 05 02 00 00 00 2b a0 00 01 2e a4 25 01 5f
af 00 05 1d 00 00 00 09 95 10 01 09 96 00 01 0a
92 03 01 09 88 00 01 0a 8f 03 01 08 80 04 01 0b
80 05 01 0a 81 00 01 09 8c 05 01 0b 82 04 01 08
95 00 01 09 85 00 01 09 81 01 01 0a 8f 04 01 0b
92 07 01 0b 80 06 10 0e 63 61 74 61 70 75 6c 74
73 4c 65 76 65 6c 0e 85 01 01 0c 82 05 01 09 92
04 01 0c 95 01 01 09 92 06 01 0b 92 05 01 0e 8c
06 01 09 96 01 01 1b a0 01 01 2b 8c 00 01 07 8c
01 01 0b 8c 02 01 09 8c 03 39 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 04 00 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
01 02 20 a0 00 01 2e a2 00 01 2b a2 01 75 03 00
00 00 08 03 00 00 00 e8 21 00 00 41 09 02 00 20
87 01 00 90 4c 00 00 50 14 00 00 98 53 00 00 c4
fd 01 00 50 40 01 00 dc f9 01 00 f0 cc 01 00 78
63 01 00 00 00 00 00 00 00 00 00 00 00 00 00 0a
00 00 00 00 00 00 00 00 00 00 00 b0 04 00 00 00
00 00 00 3c 00 00 00 72 06 00 00 8c 00 00 00 14
00 00 00 00 00 00 00 00 00 00 00 01 00 05 04 00
00 00 20 a0 00 01 2e a2 00 01 2b a2 01 1b 01 00
00 00 07 76 61 6c 75 65 5f 5f 00 08 03 00 00 00
00 00 00 00 00 00 00 00 0bА маркета 2№:
c8 02 00 00 2a 00 01 00 00 00 ff ff ff ff 01 00
00 00 00 00 00 00 16 11 10 00 00 10 01 00 00 00
01 00 00 00 09 02 00 00 00 0c 03 00 00 00 0b a0
00 06 05 02 00 00 00 2b a0 00 01 2e a4 25 01 5f
af 00 05 1d 00 00 00 09 95 10 01 09 96 00 01 0a
92 03 01 09 88 00 01 0a 8f 03 01 08 80 04 01 0b
80 05 01 0a 81 00 01 09 8c 05 01 0b 82 04 01 08
95 00 01 09 85 00 01 09 81 01 01 0a 8f 04 01 0b
92 07 01 0b 80 06 10 0e 63 61 74 61 70 75 6c 74
73 4c 65 76 65 6c 0e 85 01 01 0c 82 05 01 09 92
04 01 0c 95 01 01 09 92 06 01 0b 92 05 01 0e 8c
06 01 09 96 01 01 1b a0 01 01 2b 8c 00 01 07 8c
01 01 0b 8c 02 01 09 8c 03 39 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 04 00 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
01 02 20 a0 00 01 2e a2 00 01 2b a2 01 75 03 00
00 00 08 03 00 00 00 21 62 01 00 40 96 01 00 e0
2e 00 00 48 71 00 00 60 54 00 00 68 74 00 00 94
ff 02 00 e4 51 01 00 b4 59 01 00 4c 94 01 00 c8
2c 01 00 10 27 00 00 00 00 00 00 00 00 00 00 00
00 00 00 0a 00 00 00 00 00 00 00 2c 01 00 00 64
00 00 00 8c 05 00 00 e8 03 00 00 74 04 00 00 10
04 00 00 00 00 00 00 dc 00 00 00 01 00 05 04 00
00 00 20 a0 00 01 2e a2 00 01 2b a2 01 1b 01 00
00 00 07 76 61 6c 75 65 5f 5f 00 08 03 00 00 00
00 00 00 00 00 00 00 00 0bИ так далее…
Вышло, что для ответа можно применить шаблон:
c8 02 00 00 2a 00 01 00 00 00 ff ff ff ff 01 00
00 00 00 00 00 00 16 11 10 00 00 10 01 00 00 00
01 00 00 00 09 02 00 00 00 0c 03 00 00 00 0b a0
00 06 05 02 00 00 00 2b a0 00 01 2e a4 25 01 5f
af 00 05 1d 00 00 00 09 95 10 01 09 96 00 01 0a
92 03 01 09 88 00 01 0a 8f 03 01 08 80 04 01 0b
80 05 01 0a 81 00 01 09 8c 05 01 0b 82 04 01 08
95 00 01 09 85 00 01 09 81 01 01 0a 8f 04 01 0b
92 07 01 0b 80 06 10 0e 63 61 74 61 70 75 6c 74
73 4c 65 76 65 6c 0e 85 01 01 0c 82 05 01 09 92
04 01 0c 95 01 01 09 92 06 01 0b 92 05 01 0e 8c
06 01 09 96 01 01 1b a0 01 01 2b 8c 00 01 07 8c
01 01 0b 8c 02 01 09 8c 03 39 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 04 00 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
01 02 20 a0 00 01 2e a2 00 01 2b a2 01 75 03 00
00 00 08 03 00 00 00 xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx 01 00 05 04 00
00 00 20 a0 00 01 2e a2 00 01 2b a2 01 1b 01 00
00 00 07 76 61 6c 75 65 5f 5f 00 08 03 00 00 00
00 00 00 00 00 00 00 00 0bгде x- меняющиеся переменные
Далее извлекаем из ответов эти самые x.
86 63 00 00 63 57 01 00 98 36 00 00 e8 80 00 00 
78 37 00 00 98 53 00 00 58 0f 02 00 e0 28 01 00 
a4 32 01 00 9c 5d 01 00 d0 7e 01 00 d8 d6 00 00
05 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 
00 00 00 00 00 00 00 00 5e 01 00 00 10 04 00 00 
00 00 00 00 14 0a 00 00 c4 09 00 00 c8 00 00 00 
8c 00 00 00Поделив на количество товаров можно сделать вывод что на каждый товар идет 8 знаков (2 последних-разделители).
Тогда можно правильно оформить все товары:
86 63 00 00 
63 57 01 00 
98 36 00 00 
e8 80 00 00 
78 37 00 00 
98 53 00 00 
58 0f 02 00 
e0 28 01 00 
a4 32 01 00 
9c 5d 01 00 
d0 7e 01 00 
d8 d6 00 00
05 00 00 00 
00 00 00 00 
00 00 00 00 
05 00 00 00 
00 00 00 00 
00 00 00 00 
5e 01 00 00
10 04 00 00 
00 00 00 00 
14 0a 00 00 
c4 09 00 00 
c8 00 00 00 
8c 00 00 00А вот тут начинается все самое интересное.
Выходит, что 63 57 01 это зашифрованное число.
Ну по простому это перевести не получилось, поэтому для начала я выписал все эти «правильные» значения.

Ну и начал колдовать над зашифрованными.
Мое внимание привлекла строка
05 00 00 00Так как значение которое они содержат вероятно малое (по сравнению с другими), а из «правильных» значений самое маленькое -5, то я догадался, что это и есть 5. Ну а что же тогда с другими числами? Так там просто перестановки!
Путем перебора вышло, что если число в зашифрованном виде
x1x2 x3x4 x5x6x5x6 x3x4 x1x2Вот и все!
Пользуясь моментом также хочу поздравить всех хаброюзеров с наступившим новым годом.
     
                 
  
		
	
 
    
    
0 комментариев