Страница 1 из 1

Расчет контрольной суммы

Добавлено: Пт авг 16, 2019 11:35:47
icsn
Здравствуйте!
Помогите востановить алгоритм расчета контрольной суммы в прошивке IP телефонов.
Когда в телефоне ломается флеш-память - можно востановить заменой микросхемы и перезаписью прошивки с рабочего телефона. НО... Надо корректировать MAC адрес, иначе будут проблемы в сети из-за одинакового МАС адреса. Адрес лежит в прошивке в открытом виде но контролируется дополнительной контрольной суммой. Именно этот алгоритм расчета суммы и прошу помочь восстановить.

Входные данные:
mac: 000b825151d9 sum: b8b9
mac: 000b82515605 sum: b48d
mac: 000b825156b6 sum: b3dc
mac: 000b825158b7 sum: b1db
mac: 000b82515e20 sum: ac72
mac: 000b82515e40 sum: ac52
mac: 000b82516809 sum: a289
mac: 000b825168f4 sum: a19e
mac: 000b8253fd4a sum: 0d46
mac: 000b8253fd54 sum: 0d3c
mac: 000b826e4e70 sum: 9856

эти данные вычитаны из рабочих прошивок. все числа в шестнадцатеричном формате. Спасибо.

P.S. Сервисные центры не берут такие телефоны на ремонт аргументируя очень старой и морально устаревшей техникой.

Re: Расчет контрольной суммы

Добавлено: Пт авг 16, 2019 16:47:15
mickbell
Там что-то ещё, кроме мака, защищается этой контрольной суммой. В некоторых строчках это что-то одинаково, но не во всех. Сама сумма считается просто: берёте четыре цифры и считаете их числом, прибавляете к ним число из следующих четырёх цифр, потом из четырёх последних и добавляете контрольную сумму. В результате должно было получиться круглое число - с четырьмя младшими нулями.

Re: Расчет контрольной суммы

Добавлено: Сб авг 17, 2019 19:43:19
B@R5uk
Я всегда раньше думал, что контрольная сумма — это сумма всех двоичных единичек в строке байтов. А если что-то по-сложнее, что это уже всякие CRC и так далее. В любом случае, контрольная сумма считается не для одной строчки байт, а для какого-то довольно большого блока (например всё содержимое флэша). То есть, вам надо пересчитать контрольные суммы начиная со строчки, где были внесены изменения, и далее по списку до самого конца блока (флэша).

Re: Расчет контрольной суммы

Добавлено: Сб авг 17, 2019 21:08:03
mickbell
Как считать контрольную сумму (побайтно), расписано, насколько я помню, в описании протокола Modbus-ASCII. Это - не количество единичных битов в защищаемом блоке, а именно сумма побайтно, но не вся, а только её младший байт. Также контрольная сумма применяется в формате Intel HEX, правда, его описания я не видел.