Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Контрольный байт, Расчет контрольного байта 
:(
    Опции темы
myarlekin
Дата 25.7.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Код


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


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

Если есть идеи , помогите.


Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  config.zip 1,26 Kb
PM MAIL   Вверх
Stolzen
Дата 25.7.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48



Цитата(myarlekin @  25.7.2011,  16:26 Найти цитируемый пост)
check = check + (ord(i) % 255)

Наверное так?
check = (check + ord(i)) % 255


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
myarlekin
Дата 25.7.2011, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



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

Не катит

получается 

0xFC заместо 0x79
PM MAIL   Вверх
vedun
Дата 25.7.2011, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 23.12.2010

Репутация: нет
Всего: 2



Цитата(myarlekin @ 25.7.2011,  15:26)

....
результат не тот что в конце файла:
- 583A
а долхно 0х79
....
 С чего вы взяли что должно быть именно 0x79, и какая помощь требуется ?

Это сообщение отредактировал(а) vedun - 25.7.2011, 23:13
PM ICQ Skype Jabber   Вверх
myarlekin
Дата 26.7.2011, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Цитата(vedun @  25.7.2011,  23:12 Найти цитируемый пост)
С чего вы взяли что должно быть именно 0x79, и какая помощь требуется ?


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

PM MAIL   Вверх
Backward
Дата 27.7.2011, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 5.6.2007

Репутация: 2
Всего: 2



Код

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)))

PM MAIL   Вверх
myarlekin
Дата 27.7.2011, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Цитата(Backward @  27.7.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)))


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

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

пример рабочий только на тех конфигах которые я выложил в начале а на нормальных не работает

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  configs.zip 3,69 Kb
PM MAIL   Вверх
Backward
Дата 28.7.2011, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 5.6.2007

Репутация: 2
Всего: 2



Может проще поискать описание формата файла, там наверняка должен указываться алгоритм расчета контрольной суммы
PM MAIL   Вверх
myarlekin
Дата 28.7.2011, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Цитата(Backward @  28.7.2011,  09:45 Найти цитируемый пост)
Может проще поискать описание формата файла, там наверняка должен указываться алгоритм расчета контрольной суммы


Под грифом секретно, dlink не хочет рассказывать как

Это сообщение отредактировал(а) myarlekin - 28.7.2011, 13:01
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0764 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.