Контрольный байт

 
0
 
Python
ava
myarlekin | 25.07.2011, 16:26


buf = open('g:\config4_74.bin','rb').read()
check=0
for i in buf[:-2:]:
check = check + (ord(i) % 255)
print "%X" % check



результат не тот что в конце файла:
- 583A
а долхно 0х79


файлик прилагается.

Если есть идеи , помогите.
Kommentare (8)
ava
Stolzen | 25.07.2011, 15:36 #
Цитата (myarlekin @ 25.7.2011, 16:26 findReferencedText)
check = check + (ord(i) % 255)


Наверное так?
check = (check + ord(i)) % 255
ava
myarlekin | 25.07.2011, 15:51 #
Цитата (Stolzen @ 25.7.2011, 15:36)
Наверное так?

check = (check + ord(i)) % 255

Не катит

получается

0xFC заместо 0x79
ava
vedun | 25.07.2011, 23:12 #
Цитата (myarlekin @ 25.7.2011, 15:26)


....

результат не тот что в конце файла:

- 583A

а долхно 0х79

....
С чего вы взяли что должно быть именно 0x79, и какая помощь требуется ?
ava
myarlekin | 26.07.2011, 07:42 #
Цитата (vedun @ 25.7.2011, 23:12 findReferencedText)
С чего вы взяли что должно быть именно 0x79, и какая помощь требуется ?


0x79 это и есть контрольный байт, который записан в файле который я прикрепил, вот у меня и не получается его получить единственное что я знаю это то что предпоследний байт - контрольный по которому софт определяет корректность файла. А помощь в том разгадать как его посчитать, я пробовал складывать все байты и делить по модулю, но не вариант. Вот и прошу помощи в этой беде
ava
Backward | 27.07.2011, 02:20 #

import binascii

with open("config4_74.bin", "rb") as f:
crc = binascii.crc_hqx(f.read()[:-2], 0)
print(hex((crc & 0x00ff) ^ ((crc & 0xff00) >> 8)))
ava
myarlekin | 27.07.2011, 09:53 #
Цитата (Backward @ 27.7.2011, 02:20 findReferencedText)


import binascii

with open("config4_74.bin", "rb") as f:

    crc = binascii.crc_hqx(f.read()[:-2], 0)

    print(hex((crc & 0x00ff) ^ ((crc & 0xff00) >> 8)))



За пример спасибо , но это видать я вам подсунул не те конфиги (правленые мной) извиняюсь

вот несколько нормальных слитых

пример рабочий только на тех конфигах которые я выложил в начале а на нормальных не работает
ava
Backward | 28.07.2011, 09:45 #
Может проще поискать описание формата файла, там наверняка должен указываться алгоритм расчета контрольной суммы
ava
myarlekin | 28.07.2011, 13:00 #
Цитата (Backward @ 28.7.2011, 09:45 findReferencedText)
Может проще поискать описание формата файла, там наверняка должен указываться алгоритм расчета контрольной суммы


Под грифом секретно, dlink не хочет рассказывать как
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden