Показать сообщение отдельно
  #1  
Старый 15.07.2018, 18:07
firewex firewex вне форума
Прохожий
 
Регистрация: 13.02.2018
Сообщения: 8
Версия Delphi: Delphi XE7
Репутация: 10
Вопрос Определить алгоритм контрольной суммы

Всем привет! Есть определенное устройство которое пересылает данные по сети, я перехватил данные пересылаемые между программой и устройством и нашел где хранится нужная мне информация. только вот чтобы устройство реагировало на команды изменения параметров устройства, нужно посчитать контрольную сумму, которая находится в последних двух байтах посылаемой команды. Проблема в том что устройство старое и документации и исходников программы управления не найти, можно ли как то определить как считается контрольная сумма исходя из перехваченных данных?
Вот одна и та же команда с изменением одного параметра:
Код:
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $6F, $42, $3F, $0A, $03, $00, $10, $00, $00, $02, $16, $7F 
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $50, $2B, $67, $0A, $03, $00, $10, $00, $00, $02, $75, $9C 
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $50, $30, $39, $0A, $03, $00, $10, $00, $00, $02, $A8, $C4 
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $60, $00, $00, $0A, $03, $00, $10, $00, $00, $02, $69, $F3
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $60, $00, $01, $0A, $03, $00, $10, $00, $00, $02, $D6, $72
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $60, $00, $02, $0A, $03, $00, $10, $00, $00, $02, $06, $F8
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $60, $00, $09, $0A, $03, $00, $10, $00, $00, $02, $6A, $5F 
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $60, $00, $0F, $0A, $03, $00, $10, $00, $00, $02, $DB, $42
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $60, $00, $FF, $0A, $03, $00, $10, $00, $00, $02, $40, $01
$A5, $00, $00, $00, $2D, $B0, $00, $00, $12, $30, $32, $2E, $30, $34, $2E, $37, $35, $60, $3B, $97, $0A, $03, $00, $10, $00, $00, $02, $9D, $5E

// $00 - байты которые менял командой
// $00 - контрольная сумма (нужно понять какой алгоритм ее считает) 
Ответить с цитированием