IronFelix — офлайн-утилита для проверки и коррекции контрольных сумм бинарных файлов из определённой группы бензиновых блоков управления Bosch и Sagem. Она определяет совместимый дамп по размеру файла и внутренним сигнатурам, сообщает семейство ECU, подсчитывает найденные области контрольных сумм, показывает, сколько из них некорректны, и может исправить распознанные области перед сохранением нового файла.
Это инструмент для обработки файлов, а не считыватель или флешер ECU. Он не подключается к автомобилю, не выбирает протокол и не записывает через OBD, на столе или в boot-режиме. Сначала нужно получить полный и повторяемый считанный дамп ECU с подходящим оборудованием, работать с копией, исправлять контрольную сумму только после подтверждения контроллера и структуры файла, а затем использовать отдельный поддерживаемый инструмент для записи и восстановления.
Скриншот интерфейса в комплекте взят из исходного пакета. На нём показаны список модулей программы и отдельные счётчики всех, ошибочных и исправленных контрольных сумм.
Исходный файл открывается только для чтения. Диалог сохранения позволяет создать новый выходной файл или перезаписать путь, который вы намеренно выбрали, поэтому безопаснее не изменять оригинал и сохранять результат под новым именем.
Основная программа также принимает файлы размером 32,768 и 65,536 байт, однако не следует считать, что какой-либо из поставляемых модулей поддерживает произвольный файл только потому, что его размер допустим. Распознавание также зависит от сигнатур семейства ECU и структур контрольных сумм. Если в логе указано, что дамп неизвестен, остановитесь и определите файл, а не переименовывайте, не дополняйте его и не пытайтесь принудительно обработать другим модулем.
Совместимость определяется аппаратной частью ECU, программным обеспечением и точной структурой флеш-памяти, а не только маркой автомобиля. Hyundai и Kia использовали несколько поколений контроллеров Bosch, Kefico и Siemens на моделях с одинаковыми названиями, а входящие в комплект модули принимают только файлы строго заданных размеров. Сверьте маркировку и OEM/Bosch-номера, сравните ID ПО и подтвердите размер считанного файла перед коррекцией.
Считайте метку модуля лишь подсказкой по семейству. Бинарный файл всё равно должен пройти внутреннее распознавание инструмента, а номер детали ECU автомобиля и способ считывания должны быть зафиксированы вместе с работой.
Не распространяйте этот список на все двигатели и модельные годы. На похожих автомобилях могут стоять ME7.4.4, ME7.4.9, Magneti Marelli или другой ECU. Сверяйте номера Bosch и PSA на контроллере и убедитесь, что файл представляет собой полное, правильно упорядоченное считывание.
Контроллеры семейства ME7 встречаются на многих старых бензиновых автомобилях Volkswagen, Audi, SEAT и Škoda, как с атмосферными, так и с турбированными двигателями. Это общее название семейства не означает универсальную поддержку VAG: ME7.1, ME7.1.1, ME7.5 и производные от производителя могут иметь разные размеры flash-памяти, карты адресов и структуры защиты. Для каждого файла фиксируйте полный номер Bosch, номер детали VAG, код двигателя, ID ПО и режим инструмента считывания.
Контроллеры MED9.1, MED9.5.10 и более поздние MED17 не взаимозаменяемы. Перед использованием этого модуля проверьте точный тип контроллера и организацию памяти, особенно если инструмент считывания предоставляет отдельные карты, flash-память процессора или восстановленные виртуальные файлы.
Модуль Sagem имеет метку Iran Khodro и ожидает образ размером 851,968 байт. Он актуален для отдельных файлов бензиновых контроллеров эпохи Iran Khodro/Samand, включая системы Sagem, встречающиеся на автомобилях с двигателями семейства XU7. Эта метка не подтверждает поддержку каждого ECU Sagem SL96, S2000 или более поздних IKCO. Решающее значение имеют наклейка на корпусе ECU, тип процессора/памяти и сигнатура файла.
Файл с правильным количеством байтов всё равно может относиться к другому ECU. И наоборот, считывание с поддерживаемого ECU может быть отклонено, если инструмент считывания пропускает области, переставляет блоки или добавляет собственный заголовок.
Коррекция контрольных сумм подтверждает только то, что распознанные поля математической целостности соответствуют текущему содержимому бинарного файла. Она не доказывает, что значения калибровок безопасны, что файл относится к автомобилю или что данные иммобилайзера, выбросов и кодирования корректны.
Ноль некорректных контрольных сумм может быть нормальным результатом и не требует исправления. Неожиданно большое число, неожиданное семейство ECU или нулевой счётчик в якобы поддерживаемом модифицированном файле требуют проверки перед сохранением или записью.
Для проверки локального бинарного файла в IronFelix не требуются диагностический интерфейс, драйвер или подключение к интернету. Оборудование и драйверы нужны только для отдельного инструмента чтения/записи, используемого до и после работы с контрольными суммами.
Исходный архив успешно прошёл полную проверку целостности и точное извлечение. Каждый исполняемый файл и DLL были учтены и статически проверены; поставляемые нативные бинарные файлы x86 не имеют подписи и не запускались при упаковке, поскольку был доступен подлинный скриншот исходника. Публикуемый архив пересобран с зашифрованными заголовками, затем независимо протестирован и извлечён с проверкой по закреплённому чистому списку файлов.
Это инструмент для обработки файлов, а не считыватель или флешер ECU. Он не подключается к автомобилю, не выбирает протокол и не записывает через OBD, на столе или в boot-режиме. Сначала нужно получить полный и повторяемый считанный дамп ECU с подходящим оборудованием, работать с копией, исправлять контрольную сумму только после подтверждения контроллера и структуры файла, а затем использовать отдельный поддерживаемый инструмент для записи и восстановления.
Скриншот интерфейса в комплекте взят из исходного пакета. На нём показаны список модулей программы и отдельные счётчики всех, ошибочных и исправленных контрольных сумм.
Что делает калькулятор#
- Открывает
.bin,.ori,.modили другой необработанный бинарный файл - Отклоняет файлы с размерами вне фиксированного списка допустимых входных размеров приложения
- Загружает каждый поставляемый модуль семейства ECU и проверяет бинарные сигнатуры, пока один из них не распознает файл
- Отображает выбранное имя файла и определённый тип ECU
- Подсчитывает доступные в дампе области контрольных сумм
- Сообщает количество несовпадающих областей контрольных сумм
- Исправляет распознанные данные контрольных сумм в буфере памяти программы
- Показывает, сколько областей было исправлено
- Сохраняет исправленный буфер в выбранный пользователем выходной файл
Исходный файл открывается только для чтения. Диалог сохранения позволяет создать новый выходной файл или перезаписать путь, который вы намеренно выбрали, поэтому безопаснее не изменять оригинал и сохранять результат под новым именем.
Входящие в комплект модули семейств ECU#
Пакет содержит основное приложение и восемь модулей контрольных сумм. Их названия и допустимые размеры полных файлов взяты непосредственно из поставляемых бинарных файлов и соответствующего исходного кода:- Hyundai Bosch M7.9.7: файл размером 524,288 байт
- Hyundai Bosch M7.9.8: файл размером 786,432 или 851,968 байт
- China Bosch M7.9.7: файл размером 1,048,576 байт
- Citroën Bosch ME7.4.5: файл размером 851,968 байт
- Bosch M3.x–M5.x: файл размером 131,072 или 262,144 байт
- Sagem Iran Khodro: файл размером 851,968 байт
- VAG Bosch ME7.x: файл размером 524,288 или 1,048,576 байт
- VAG Bosch MED9.5 / MED9.5.10: файл размером 2,097,152 байт
Основная программа также принимает файлы размером 32,768 и 65,536 байт, однако не следует считать, что какой-либо из поставляемых модулей поддерживает произвольный файл только потому, что его размер допустим. Распознавание также зависит от сигнатур семейства ECU и структур контрольных сумм. Если в логе указано, что дамп неизвестен, остановитесь и определите файл, а не переименовывайте, не дополняйте его и не пытайтесь принудительно обработать другим модулем.
Применение Hyundai и Kia Bosch M7.9.7 / M7.9.8#
Специализированные модули M7.9.7 и M7.9.8 предназначены для более старых конфигураций бензиновых контроллеров Bosch/Kefico, использовавшихся на некоторых автомобилях Hyundai и Kia. В современных каталогах инструментов M7.9.8 связывают с такими моделями, как Kia Ceed, ProCeed, Cerato и Rio, а также с родственными платформами Hyundai; M7.9.7 встречается в некоторых более ранних бензиновых системах Hyundai/Kia.Совместимость определяется аппаратной частью ECU, программным обеспечением и точной структурой флеш-памяти, а не только маркой автомобиля. Hyundai и Kia использовали несколько поколений контроллеров Bosch, Kefico и Siemens на моделях с одинаковыми названиями, а входящие в комплект модули принимают только файлы строго заданных размеров. Сверьте маркировку и OEM/Bosch-номера, сравните ID ПО и подтвердите размер считанного файла перед коррекцией.
Файлы Bosch M7.9.7 для китайского рынка#
Отдельный модуль объёмом 1 MiB имеет метку China Bosch M7.9.7. Это семейство обычно связывают с отдельными бензиновыми автомобилями китайского рынка, включая системы M7.9.7/ME7.9.7 времён Chery, например варианты Fora/A5, но эта программа не является базой данных автомобилей. На других китайских автомобилях может использоваться похожее название контроллера, но с иной организацией памяти, процессором, размером калибровки или стратегией контрольных сумм.Считайте метку модуля лишь подсказкой по семейству. Бинарный файл всё равно должен пройти внутреннее распознавание инструмента, а номер детали ECU автомобиля и способ считывания должны быть зафиксированы вместе с работой.
Файлы Bosch ME7.4.5 для Citroën и Peugeot#
Модуль PSA имеет точную метку Citroën Bosch ME7.4.5 и ожидает образ размером 851,968 байт. ME7.4.5 встречается на отдельных бензиновых моделях Citroën и Peugeot, особенно в версиях с двигателями 1,6 л. Среди типичных совпадений по каталогам — Peugeot 206, 307 и 1007, а также конфигурации Citroën C2, C3, C4 и Berlingo; в данных по применяемости встречаются идентификаторы двигателей NFU, N6A или N6B.Не распространяйте этот список на все двигатели и модельные годы. На похожих автомобилях могут стоять ME7.4.4, ME7.4.9, Magneti Marelli или другой ECU. Сверяйте номера Bosch и PSA на контроллере и убедитесь, что файл представляет собой полное, правильно упорядоченное считывание.
Файлы Bosch ME7.x для Volkswagen Group#
Модуль VAG ME7.x распознаёт образы 512 KiB и 1 MiB и содержит логику для нескольких старых и новых схем контрольных сумм ME7. В его исходном коде обрабатываются несколько зон контрольных сумм, а для распознанных вариантов — дополнительные структуры CRC, хеша или подписи, вместо применения одной простой суммы к каждому файлу.Контроллеры семейства ME7 встречаются на многих старых бензиновых автомобилях Volkswagen, Audi, SEAT и Škoda, как с атмосферными, так и с турбированными двигателями. Это общее название семейства не означает универсальную поддержку VAG: ME7.1, ME7.1.1, ME7.5 и производные от производителя могут иметь разные размеры flash-памяти, карты адресов и структуры защиты. Для каждого файла фиксируйте полный номер Bosch, номер детали VAG, код двигателя, ID ПО и режим инструмента считывания.
VAG Bosch MED9.5.10 файлы#
Модуль MED9.5 ожидает образ размером 2 MiB. Bosch и актуальные каталоги совместимости связывают MED9.5.10 с отдельными FSI-применениями Volkswagen Group, включая Audi A3 8P/8PA в версиях 1.6 FSI и 2.0 FSI, а также родственные модели Volkswagen семейства Golf. В зависимости от модели и рынка примерами могут служить коды двигателей BLP, BLF, AXW, BLX, BLY, BLR, BVY и BVZ.Контроллеры MED9.1, MED9.5.10 и более поздние MED17 не взаимозаменяемы. Перед использованием этого модуля проверьте точный тип контроллера и организацию памяти, особенно если инструмент считывания предоставляет отдельные карты, flash-память процессора или восстановленные виртуальные файлы.
Файлы Bosch M3.x–M5.x и Sagem Iran Khodro#
Модуль для старых Bosch M3.x–M5.x принимает файлы объёмом 128 KiB или 256 KiB. Эти поколения контроллеров применялись на множестве старых европейских бензиновых автомобилей, поэтому безопасного универсального списка по моделям нет; распознавание должно основываться на фактическом дампе и идентификации ECU.Модуль Sagem имеет метку Iran Khodro и ожидает образ размером 851,968 байт. Он актуален для отдельных файлов бензиновых контроллеров эпохи Iran Khodro/Samand, включая системы Sagem, встречающиеся на автомобилях с двигателями семейства XU7. Эта метка не подтверждает поддержку каждого ECU Sagem SL96, S2000 или более поздних IKCO. Решающее значение имеют наклейка на корпусе ECU, тип процессора/памяти и сигнатура файла.
Требования к входному файлу#
Подходящий файл должен быть полным необработанным образом в точной структуре, ожидаемой модулем. Перед открытием:- Считайте ECU как минимум дважды и сравните результаты побайтно
- Запишите данные автомобиля, код двигателя, производителя ECU, номера Bosch/OEM и аппаратные/программные ID
- Уточните, что выдал инструмент: полный флеш, только калибровки, виртуальное считывание или контейнер с заголовком
- Не удаляйте заголовки и не добавляйте заполнение, если документация к инструменту считывания прямо не требует такого преобразования
- Сохраните исходник с защитой от записи и вычислите его SHA-256
- Используйте второй заведомо исправный оригинал с точно таким же ПО только для сравнения, но никогда не подставляйте его вслепую
Файл с правильным количеством байтов всё равно может относиться к другому ECU. И наоборот, считывание с поддерживаемого ECU может быть отклонено, если инструмент считывания пропускает области, переставляет блоки или добавляет собственный заголовок.
Порядок проверки и коррекции контрольных сумм#
- Скопируйте проверенный исходный бинарный файл в изолированную рабочую папку.
- Откройте копию и убедитесь, что определённый тип ECU соответствует физическому блоку управления.
- До внесения изменений запишите значения CheckSumm All и CheckSumm Bad.
- Если ECU не определён или указанное семейство оказалось неожиданным, закройте программу и проверьте файл.
- Запускайте FixECU только на рабочей копии.
- Убедитесь, что количество CheckSumm Fixed выглядит правдоподобно и что не изменились непредвиденные области.
- Сохраняйте под новым именем файла, а не перезаписывайте исходник.
- Сравните исходный и исправленный файлы в hex-редакторе и запишите каждое изменённое смещение.
- Проверьте результат независимым инструментом с поддержкой контрольных сумм или на той же платформе записи.
- Записывайте только при стабильном питании, с правильным протоколом и проверенным способом восстановления.
- После записи снова считайте ECU и проверьте идентификацию, статус DTC и нормальную работу.
Коррекция контрольных сумм подтверждает только то, что распознанные поля математической целостности соответствуют текущему содержимому бинарного файла. Она не доказывает, что значения калибровок безопасны, что файл относится к автомобилю или что данные иммобилайзера, выбросов и кодирования корректны.
Что означают счётчики#
CheckSumm All — количество структур контрольных сумм, найденных выбранным модулем. CheckSumm Bad — количество структур, не прошедших проверку при открытии файла. После коррекции CheckSumm Fixed показывает, сколько некорректных структур изменил модуль.Ноль некорректных контрольных сумм может быть нормальным результатом и не требует исправления. Неожиданно большое число, неожиданное семейство ECU или нулевой счётчик в якобы поддерживаемом модифицированном файле требуют проверки перед сохранением или записью.
Системные требования#
- ПК с Windows с поддержкой 32-битных приложений x86; для 64-битной Windows требуется WOW64
- Наиболее безопасный вариант — совместимость на уровне Windows 7; Windows 10/11 можно использовать в изолированной виртуальной машине, если нативное настольное приложение не запускается нормально
- Процессор с частотой 1 ГГц или выше и не менее 1 ГБ ОЗУ
- Не менее 100 МБ свободного места для программы, рабочих файлов и копий для сравнения
- Разрешение экрана 800×600 или выше
- Права на запись в выделенную рабочую папку
- Входящие в комплект среда выполнения GNU и DLL GMP, сохранённые в поставляемой структуре папок
- Отдельный ECU-ридер/флешер, подходящий для конкретного контроллера
- Стабильный стендовый источник питания или устройство поддержки аккумулятора автомобиля для любых последующих операций записи
- Настоятельно рекомендуется hex-редактор и независимый метод проверки с поддержкой контрольных сумм
Для проверки локального бинарного файла в IronFelix не требуются диагностический интерфейс, драйвер или подключение к интернету. Оборудование и драйверы нужны только для отдельного инструмента чтения/записи, используемого до и после работы с контрольными суммами.
Содержимое пакета#
Очищенный архив сохраняет полную структуру приложения: основной IronFelix.exe, две необходимые библиотеки среды выполнения, восемь модулей контрольных сумм для семейств ECU и сопутствующее дерево исходников C++. Служебные файлы репозитория исключены, при этом функциональные бинарные файлы, исходники модулей, заголовки и файлы проектов остаются доступными для технической проверки.Исходный архив успешно прошёл полную проверку целостности и точное извлечение. Каждый исполняемый файл и DLL были учтены и статически проверены; поставляемые нативные бинарные файлы x86 не имеют подписи и не запускались при упаковке, поскольку был доступен подлинный скриншот исходника. Публикуемый архив пересобран с зашифрованными заголовками, затем независимо протестирован и извлечён с проверкой по закреплённому чистому списку файлов.
Ограничения и примечания по безопасности#
- Доступны только восемь входящих в комплект checksum-модулей; это не универсальный калькулятор для Bosch
- Распознавание зависит от размера файла и внутренних сигнатур, а не только от имени файла или модели автомобиля
- Программа не может считывать, идентифицировать через OBD, прошивать или восстанавливать ECU
- Виртуальное считывание или чтение только калибровок может не подойти, даже если его расширение —
.bin - Неподписанные старые нативные бинарные файлы следует проверить отдельно и использовать в изолированной среде Windows
- Всегда сохраняйте нетронутый оригинал и возможность восстановления
- Не используйте коррекцию контрольных сумм, чтобы скрыть нерешённые проблемы с выбросами, безопасностью или оборудованием
- Не прошивайте файл только потому, что программа сообщает об отсутствии неверных контрольных сумм
Устранение неполадок#
- Неверный размер файла: проверьте режим чтения, ожидаемый объём памяти контроллера и не добавил ли инструмент заголовок или не вернул ли данные только калибровок.
- Я не знаю этот дамп: файл не прошёл проверки всех поставляемых модулей; проверьте идентификатор ECU и не пытайтесь принудительно использовать похожее по названию семейство.
- Модули не отображаются: держите каталог
Modulesрядом с путём к среде выполнения и сохраните все входящие в комплект DLL. - Приложение не запускается: запустите его из полной папки в чистой Windows VM и убедитесь, что входящие в комплект библиотеки среды выполнения присутствуют.
- После коррекции контрольная сумма остаётся неверной: закройте программу без записи, восстановите оригинал и проверьте файл независимым инструментом.
- Количество исправлений оказалось неожиданным: сравните изменённые смещения и перед прошивкой подтвердите точное ПО ECU.
- Выходной файл перезапишет существующий файл: отмените операцию и выберите новое имя файла; оригинал не изменяйте.
- Защитное ПО помечает бинарный файл: поместите его в карантин, сверьте закреплённый хеш и получите независимое сканирование, прежде чем решать, запускать ли его.