|
|
  |
Алгоритм вычисления контрольной суммы, помогите угадать |
|
|
|
Oct 21 2010, 09:50
|

Профессионал
    
Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202

|
Для нижеприведенного набора данных последний столбец - это некая контрольная сумма. Нужно определить по какому алгоритму она считается. Данные в шестнадцатиричном виде, пробелы в самих данных не имеют значения для суммы, просто разделяют логические группы. Других коротких посылок, а так же посылок произвольной длинны/содержания получить не удается. Из последних строк видно, что характерной особенностью алгоритма является то, что сумма для посылок из 2-3 байт вычисляется по формуле 0xffff - sum(data). Помогите определить алгоритм, пожалуйста. CODE 24 0abaf900 0b 030800ffffffff07 f7 eb f625 24 aef9f900 0b 030800ffffffff07 f7 ec 50e6 24 5339fa00 0b 030800ffffffff07 f6 e8 afa7 24 f778fa00 0b 030800ffffffff07 f1 ec 076d 24 b8266101 0b 030800ffffffff07 f7 ea e1b9
24 eb13d50b 12 020025 f1 ec 3ba8 24 9920d50b 12 020026 f0 ec 8e9a 24 4d2dd50b 12 020027 f0 ec da8c 24 f539d50b 12 020028 f1 ec 317f 24 a346d50b 12 020029 f4 ec 8071 24 5253d50b 12 02002a f1 ec d463 24 0160d50b 12 02002b f4 ec 2256 24 b06cd50b 12 02002c f1 ec 7648 24 5f79d50b 12 02002d f1 ec c73a 24 0e86d50b 12 02002e ef eb 1a2e 24 bc92d50b 12 02002f ef ec 6c1f 24 6b9fd50b 12 020030 ef ec bd11 24 38acd50b 12 020031 f1 ec ee03 24 e8b8d50b 12 020032 f0 ec 3ef6 24 97c5d50b 12 020033 f0 ec 8fe8 24 4ad2d50b 12 020034 ef ec ddda 24 f5ded50b 12 020035 f1 ec 30cd 24 a4ebd50b 12 020036 f1 ec 81bf 24 51f8d50b 12 020037 f1 ec d4b1 24 fd04d60b 12 020038 f1 eb 28a5 24 ac11d60b 12 020039 ef ec 7b96 24 5c1ed60b 12 02003a f1 ec c988
4e 006f0000990100812200 43c0 4e 000100f8ff3f ff78 4e 001207322e332e302e38 6dd2
5c 0023 ff80 5c 0024 ff7f 5c 0025 ff7e 5c 0000 ffa3 5c 0051 ff52
27 00 ffd8
|
|
|
|
|
Oct 21 2010, 10:01
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 22-12-09
Из: SPb
Пользователь №: 54 402

|
Цитата(Taradov Alexander @ Oct 21 2010, 13:50)  Для нижеприведенного набора данных последний столбец - это некая контрольная сумма. Нужно определить по какому алгоритму она считается. Данные в шестнадцатиричном виде, пробелы в самих данных не имеют значения для суммы, просто разделяют логические группы. Других коротких посылок, а так же посылок произвольной длинны/содержания получить не удается.
Из последних строк видно, что характерной особенностью алгоритма является то, что сумма для посылок из 2-3 байт вычисляется по формуле 0xffff - sum(data).
Помогите определить алгоритм, пожалуйста. Двоичный файл в студию! Выложите, пожалуйста, данные в файлике, желательно, в том же виде, в каком эта передача данных идет в канале. Может быть поможет быть...
|
|
|
|
|
Oct 21 2010, 10:07
|

Профессионал
    
Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202

|
QUOTE (Sleepin' Cat Smile @ Oct 21 2010, 14:01)  Двоичный файл в студию! Выложите, пожалуйста, данные в файлике, желательно, в том же виде, в каком эта передача данных идет в канале. Может быть поможет быть...  Это дамп протокола обмена по TCP/IP, каждая строка - отдельный кадр. Это оригинальные данные (за исключением расставленных пробелов), если нужно их как-то сконвертировать в бинрный формат, то скажите в какой именно, я сконвертирую.
|
|
|
|
|
Oct 21 2010, 10:49
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 22-12-09
Из: SPb
Пользователь №: 54 402

|
Цитата(Taradov Alexander @ Oct 21 2010, 14:07)  Это дамп протокола обмена по TCP/IP, каждая строка - отдельный кадр. Это оригинальные данные (за исключением расставленных пробелов), если нужно их как-то сконвертировать в бинрный формат, то скажите в какой именно, я сконвертирую. В самый простой бинарный формат: пусть в файле бит-за-битом кадр-за-кадром будут лежать эти данные (без пробелов, разумеется). Только, обратите внимание на порядок следования бит/байт, а то, если какой-нибудь лишний реверс будет, сами понимаете
|
|
|
|
|
Oct 21 2010, 13:21
|

Профессионал
    
Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202

|
QUOTE (Sleepin' Cat Smile @ Oct 21 2010, 14:49)  В самый простой бинарный формат: пусть в файле бит-за-битом кадр-за-кадром будут лежать эти данные (без пробелов, разумеется). Только, обратите внимание на порядок следования бит/байт, а то, если какой-нибудь лишний реверс будет, сами понимаете  Не знаю что за чудесный метод Вы планируете использовать, но вот. В архиве 2 файла: 1. out.bin - все данные выше просто слиты потоко без всяких разделителей 2. out_with_len.bin - перед каждым кадром есть байт длинны, таким образом в потоке можно найти где заканчиваются кадры
Прикрепленные файлы
bins.zip ( 926 байт )
Кол-во скачиваний: 18
|
|
|
|
Guest_TSerg_*
|
Oct 21 2010, 14:07
|
Guests

|
Считаю реверс-инжиниринг уделом личным, потому отношусь к таким постам предвзято.
|
|
|
|
|
Oct 21 2010, 16:39
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070

|
Цитата(Taradov Alexander @ Oct 21 2010, 20:11)  Спасибо большое, это оно, сам про нее не вспомнил  Большое пожалуйста.  В обсуждении была подсказка: Цитата Это дамп протокола обмена по TCP/IP Именно она и похожесть на коротких последовательностях на обычную сумму навела меня на ответ.
|
|
|
|
|
Oct 21 2010, 16:45
|

Профессионал
    
Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202

|
QUOTE (vmp @ Oct 21 2010, 20:39)  Именно она и похожесть на коротких последовательностях на обычную сумму навела меня на ответ. Дело в том, что эта КС уже в пэйлоаде, похоже они решили не заморачиваться и, раз уж стек все-равно есть и алгоритм в нем уже реализован, то решили его и использовать. Не ясно правда зачем он нужен там, получается двойная проверка, но это уже не важно, есть заначит есть.
|
|
|
|
|
Oct 22 2010, 05:57
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 22-12-09
Из: SPb
Пользователь №: 54 402

|
Что ж, видимо, вопрос отпал, как яйца от продналога. Поздравляю  Я-то ждал до конца рабочего дня файлик, раскочегаривал пока свой "чудесный метод"...ну, ладно, хорошо все, что хорошо, кончается)))
Сообщение отредактировал Sleepin' Cat Smile - Oct 22 2010, 06:00
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|