Сейчас на форуме: UniSoft, _MBK_, laslo (+8 невидимых)

 eXeL@B —› Программирование —› Помогите распознать алгоритм подсчёта CRC
Посл.ответ Сообщение


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 08 июня 2011 20:16
· Личное сообщение · #1

Вот лог отправки команд, последний байт это CRC. По идее должна была быть сумма всех предыдущих байтов, ибо это ccTalk протокол...
Code:
  1. 2800019F38
  2. 280001FED9
  3. 28008FE6B2
  4. 2800B6FE21
  5. 2800DDF590
  6. 2800FF91BC
  7. 28002AE3E2
  8. 2800319F5D
  9. 28003AF2E0
  10. 2801699D03DB
  11. 2801869D0C2A
  12. 28018E9D04AB
  13. 2801A79D0D3A
  14. 2801AF9D05BB
  15. 2801BC9A0162
  16. 2801C49D0E0A
  17. 2801CBE40059
  18. 2801CC9D068B
  19. 2801029D086A
  20. 2801E59D0F1A
  21. 2801EAE40149
  22. 2801ED9D079B
  23. 2801239D097A
  24. 28012B9D01FB
  25. 28013B9D10F9
  26. 2801409D0A4A
  27. 2801489D02CB
  28. 2801619D0B5A
  29. 28026EE70F00D2
  30. 28027C9B2E2E8F
  31. 2802C09C455512
  32. 2802C7E707005B
  33. 2802EC9C2E2E0A
  34. 28021DE71F00D1
  35. 2802509B455597
  36. 280261E70100F1




Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 08 июня 2011 20:31 · Поправил: SergX
· Личное сообщение · #2

[del]




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 08 июня 2011 21:46 · Поправил: DenCoder
· Личное сообщение · #3

Маловато информации... Если это точно ccTalk, то там 16 бит CRC - 8 в начале одного блока, 8 в конце второго. --> TSP168 DES Encryption for Coin Acceptors and Bill Validators v2.1.pdf <--. Стр. 7

-----
IZ.RU





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 08 июня 2011 22:04
· Личное сообщение · #4

если есть приложение которое его посылает
почему его не разреверсить?




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 09 июня 2011 00:34
· Личное сообщение · #5

DenCoder пишет:
Если это точно ccTalk, то там 16 бит CRC - 8 в начале одного блока, 8 в конце второго.


Точно ccTalk, но 16 битный подсчёт используется только если протокол криптован. В обычном виде простое сложение всех байтов и crc=256-(crc mod 256).
Вот тут на примере с седьмой страницы видно:
TX : [ 28 ] [ 01 ] [ 01 ] [ 70 ] [ 45 ] [ 21 ] как раз у меня 21 и получается.
TX Decode :
Destination address = 40
No. of data bytes = 1
Source address = 1
Command 0x70 = 112 decimal = Read encrypted events
Challenge data = 0x45
8-bit checksum = 0x21

Однако такой подсчёт не годится для девайса... В нём ccTalk не криптованый используется.

reversecode пишет:
если есть приложение которое его посылает почему его не разреверсить?


Да, этот вариант и остается. Просто подумал, что возможно кто то сталкивался и сходу подскажет нужный алгоритм.




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 09 июня 2011 02:03
· Личное сообщение · #6

Всё, разобрался! CRC подсчитывается так же как в мануале, 16-битное, так же добавляется к пакету, однако содержимое при этом не криптуется.

Всем спасибо!


 eXeL@B —› Программирование —› Помогите распознать алгоритм подсчёта CRC
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати