| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > CRC-алгоритмы |
| Автор: Bulat 1.3.2013, 16:56 | ||
Есть ПО, процессы между собой обмениваются бинарными пакетами. ПО старое и уже косячит безбожно. Есть желание переписать его. Пакеты полностью расшифрованы(трэйсил отлавливал системными утилитами), только непонятно каким алгоритмом составляется CRC. Попробовал парочку - не прокатило. Мож если есть любители полиномов там всяких подсобит??
Первая строка - запрос, CRC - 1266 Вторая строка - ответ, CRC - C368 Третья строка - запрос, CRC - 873B Четвертая строка - ответ, CRC - 426A p.s. перед CRC идет идентификатор пакета: для первых двух строк - 08, для вторых двух строк - 09, соответственно. ну для кучи отдельно: пятая строка - ответ, CRC - CC7C шестая строка - запрос, CRC - 0765 Разработчики к сожалению, по неведомым мне причинам объяснить как считается CRC не могут. И еще пакет составной, допустим первая строка состоит из трех частей 20 FD 1F 00 00 00 83 08 1266 39 4E 01 03 08 70 00 00 10 00 88 13 F8 34 02 01 40 00 05 DF 50 Воощем пробовал по-разному раскладывать и считать, но пока так и ни к какому результату и не пришел. Мож кто подсобит?? |
| Автор: Akina 1.3.2013, 17:28 |
| Первая строка: Покрасил зелёным. Покрасил красным 20 FD 1F 00 00 00 83 08 1266 39 4E 01 03 08 70 00 00 10 00 88 13 F8 34 02 01 40 00 05 DF 50 Синее и коричневое - где что? CRC строится от чего? тот же ИД пакета - включен в сумму или нет? Вообще потрассил бы ты просто софт да нашёл процедуру расчёта суммы... |
| Автор: Akina 4.3.2013, 07:48 | ||
Хорошо... а можешь ли ты влиять на составляемый программой пакет?
Жаль... но если всё-таки решишь идти по этому пути, мой тебе совет - найми специалиста. |
| Автор: Bulat 4.3.2013, 11:24 | ||
Могу!
Такого как ты?? Специалиста, который по делу ничего сказать не может, а бесполезными советами моск выносить горазд?? Я у тебя еще раз спрашиваю, скажи мне название утилиты, при помощи которой можно в скомпилированном байт-коде отыскивать отдельные процедуры =) Это же так просто. P.S. Если помочь ничем не можешь, так и с бесполезными советами писать смысла нет. |
| Автор: Akina 4.3.2013, 11:45 | ||
Дебаггер. Например, тот, который по запросу открывается при установленной визуаль студии, если программе взбрендит совершить недопустимую операцию... Великолепно. Это означает, что, зная содержание исходной посылки, и то, в какой пакет это упаковано, ты вполне можешь по крайней мере отделить информационную, переменную и постоянную части. Сделай это, а заодно определи, является ли контрольная сумма функцией только информационной части, или всего пакета. Также попробуй заставить софт отдавать два пакета, которые отличаются в информационной составляющей на один бит, и посмотри, как изменияется контрольная сумма. |
| Автор: Bulat 5.3.2013, 08:25 |
| Akina, ты вообще читал мой первый пост?? А то блин по диагонали все перечитают и давай уже лезть с советами А дебаггер тут не поможет, потому что в самой функциональности программы ошибок нет... P.S. Как со стеной блин, ежели по делу помочь ничем не можешь, так и не нуна трахать мой моск. Добавлено через 1 минуту и 20 секунд Больше половины ответов на твои вопросы уже в первом посте исть... |
| Автор: Akina 5.3.2013, 08:36 | ||||
Ни хрена там нет. Или ты тупо не понимаешь, что тебе говорят. Судя по
скорее всё-таки именно не понимаешь.
Да чхать мне на твои проблемы с высокой колокольни! обидчивый, блин, какой... ты что, правда думаешь, что вот счас тут появится волшебник и в одночасье тебе из хрустального шара вытащит твой алгоритм? обломись - максимум, что ты получишь, это губозакатывающую машинку. Древний софт - это почти всегда придуманный воспалённым мозгом программиста алгоритм решения задачи, которая лишь много позже стала стандартной и обросла библиотечными реализациями. Причём почти всегда - реализованный через задницу. И без трассировки обычно хрен ты чего там поймёшь. Не умеешь? даже не понимаешь, что это и зачем нужно? так не берись за то, на что неспособен, найми того, кто умеет. |