реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Алгоритм вычисления контрольной суммы, помогите угадать
ataradov
сообщение Oct 21 2010, 09:50
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 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

Go to the top of the page
 
+Quote Post
Sleepin' Cat...
сообщение Oct 21 2010, 10:01
Сообщение #2


Участник
*

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



Цитата(Taradov Alexander @ Oct 21 2010, 13:50) *
Для нижеприведенного набора данных последний столбец - это некая контрольная сумма. Нужно определить по какому алгоритму она считается. Данные в шестнадцатиричном виде, пробелы в самих данных не имеют значения для суммы, просто разделяют логические группы. Других коротких посылок, а так же посылок произвольной длинны/содержания получить не удается.

Из последних строк видно, что характерной особенностью алгоритма является то, что сумма для посылок из 2-3 байт вычисляется по формуле 0xffff - sum(data).

Помогите определить алгоритм, пожалуйста.


Двоичный файл в студию!
Выложите, пожалуйста, данные в файлике, желательно, в том же виде, в каком эта передача данных идет в канале. Может быть поможет быть...biggrin.gif

Go to the top of the page
 
+Quote Post
ataradov
сообщение Oct 21 2010, 10:07
Сообщение #3


Профессионал
*****

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



QUOTE (Sleepin' Cat Smile @ Oct 21 2010, 14:01) *
Двоичный файл в студию!
Выложите, пожалуйста, данные в файлике, желательно, в том же виде, в каком эта передача данных идет в канале. Может быть поможет быть...biggrin.gif

Это дамп протокола обмена по TCP/IP, каждая строка - отдельный кадр. Это оригинальные данные (за исключением расставленных пробелов), если нужно их как-то сконвертировать в бинрный формат, то скажите в какой именно, я сконвертирую.
Go to the top of the page
 
+Quote Post
Sleepin' Cat...
сообщение Oct 21 2010, 10:49
Сообщение #4


Участник
*

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



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


В самый простой бинарный формат: пусть в файле бит-за-битом кадр-за-кадром будут лежать эти данные (без пробелов, разумеется). Только, обратите внимание на порядок следования бит/байт, а то, если какой-нибудь лишний реверс будет, сами понимаете smile.gif
Go to the top of the page
 
+Quote Post
ataradov
сообщение Oct 21 2010, 13:21
Сообщение #5


Профессионал
*****

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



QUOTE (Sleepin' Cat Smile @ Oct 21 2010, 14:49) *
В самый простой бинарный формат: пусть в файле бит-за-битом кадр-за-кадром будут лежать эти данные (без пробелов, разумеется). Только, обратите внимание на порядок следования бит/байт, а то, если какой-нибудь лишний реверс будет, сами понимаете smile.gif

Не знаю что за чудесный метод Вы планируете использовать, но вот. В архиве 2 файла:
1. out.bin - все данные выше просто слиты потоко без всяких разделителей
2. out_with_len.bin - перед каждым кадром есть байт длинны, таким образом в потоке можно найти где заканчиваются кадры


Прикрепленные файлы
Прикрепленный файл  bins.zip ( 926 байт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 21 2010, 14:07
Сообщение #6





Guests






Считаю реверс-инжиниринг уделом личным, потому отношусь к таким постам предвзято.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Oct 21 2010, 14:15
Сообщение #7


Профессионал
*****

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



QUOTE (TSerg @ Oct 21 2010, 18:07) *
Считаю реверс-инжиниринг уделом личным, потому отношусь к таким постам предвзято.

В данном случае все более или менее честно, это протокол ZigBee сниффера Daintree Networks, софт + железо были куплены официально, но сейчас фирма Daintree вышла из этого бизнеса (фактически обанкротилась) и никакой поддержки больше нет, а протокол развивается тем не менее и поэтому пишется свой софт. Все делается для внутренних нужд никакой коммерции, да и как показывает пример Daintree Networks не сильно-то тут коммерцию разведешь smile.gif
Go to the top of the page
 
+Quote Post
vmp
сообщение Oct 21 2010, 14:42
Сообщение #8


Местный
***

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



Лень считать вручную, но получается похоже на RFC1071.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Oct 21 2010, 16:11
Сообщение #9


Профессионал
*****

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



QUOTE (vmp @ Oct 21 2010, 18:42) *
Лень считать вручную, но получается похоже на RFC1071.

Спасибо большое, это оно, сам про нее не вспомнил smile.gif

Go to the top of the page
 
+Quote Post
vmp
сообщение Oct 21 2010, 16:39
Сообщение #10


Местный
***

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



Цитата(Taradov Alexander @ Oct 21 2010, 20:11) *
Спасибо большое, это оно, сам про нее не вспомнил smile.gif

Большое пожалуйста. smile.gif

В обсуждении была подсказка:
Цитата
Это дамп протокола обмена по TCP/IP

Именно она и похожесть на коротких последовательностях на обычную сумму навела меня на ответ.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Oct 21 2010, 16:45
Сообщение #11


Профессионал
*****

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



QUOTE (vmp @ Oct 21 2010, 20:39) *
Именно она и похожесть на коротких последовательностях на обычную сумму навела меня на ответ.
Дело в том, что эта КС уже в пэйлоаде, похоже они решили не заморачиваться и, раз уж стек все-равно есть и алгоритм в нем уже реализован, то решили его и использовать. Не ясно правда зачем он нужен там, получается двойная проверка, но это уже не важно, есть заначит есть.
Go to the top of the page
 
+Quote Post
Sleepin' Cat...
сообщение Oct 22 2010, 05:57
Сообщение #12


Участник
*

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



Что ж, видимо, вопрос отпал, как яйца от продналога. Поздравляю biggrin.gif
Я-то ждал до конца рабочего дня файлик, раскочегаривал пока свой "чудесный метод"...ну, ладно, хорошо все, что хорошо, кончается)))

Сообщение отредактировал Sleepin' Cat Smile - Oct 22 2010, 06:00
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01438 секунд с 7
ELECTRONIX ©2004-2016