Набор инструментов Saabiste доступен на Github
Разработка платформы saabiste.net потребовала преодоления некоторых ограничений официальной документации и устаревшего проприетарного ПО (TIS2000, GlobalTIS, EPC, Tech2). Для предоставления диагностики в реальном времени в браузере, единой базы данных калибровок и интерактивного каталога EPC, потребовалось разработать специальные инструменты.
Вместо того чтобы держать эти элементы изолированными на своих серверах, весь исходный код открыт для международного сообщества Saab. Цель двойная: сохранить инструменты диагностики перед лицом устаревания программного обеспечения и дать возможность другим разработчикам или энтузиастам вдохновляться ими.
Обзор 5 репозиториев
j2534-websocket-agentCWindows / MinGWМост WebSocket RFC 6455 ↔ DLL J2534 PassThru для веб-приложений.
j2534_snifferCWindows / MinGWПассивный сниффер шины CAN (HS/LS) с декодированием GMLAN/ISO-TP.
SCE_NEWJava 6GlobalTISЭкстрактор калибровок SPS GlobalTIS 2011 (порт Transbase 5024).
SCE_OLDJava 6TIS2000Экстрактор калибровок SPS TIS2000 2008 (порт Transbase 3025).
umf-to-pngPython 3МультиплатформаДекомпилятор изображений
.UMFEPC и экстрактор векторных Hotspots.
Технический обзор каждого инструмента
1. j2534-websocket-agent — Мост Web ↔ Физическая диагностика
Проблема: Современные веб-браузеры не могут загружать напрямую DLL Windows (например,
smj2534.dllдля Scanmatik).Решение: Легкий агент C без внешних зависимостей, открывающий локальный сервер WebSocket (
ws://127.0.0.1:9005). Он сканирует реестр Windows, перечисляет подключенные J2534 устройства и передает диагностические команды (GMLAN, ISO-TP, пробуждение LS-CAN Single-Wire) из веб-интерфейса к автомобилю с минимальной задержкой.
2. j2534_sniffer — Анализатор трафика CAN / GMLAN
Проблема: Понять поведение модуля (CIM, BCM, ICM) или проанализировать обмены Tech2 требует перехвата сетевых кадров без нарушения шины.
Решение: Пассивный сниффер C, способный слушать Dual-Bus (HS-CAN на 500 кб/с и LS-CAN на 33.3 кб/с). Он на лету декодирует многопакетные кадры ISO-TP, идентифицирует источник управляющих блоков Saab 9440 и форматирует логи совместимо с выводами Tech2.
3. Saab Calibration Extractors
Проблема: Файлы обновления микропрограмм (SPS) для управляющих блоков Saab заблокированы в проприетарных базах данных SQL Transbase, распространяемых с TIS2000 и GlobalTIS.
Решение: Два экстрактора Java подключаются напрямую к сетевым портам Transbase (
3025для TIS2000,5024для GlobalTIS). Они распаковывают бинарные потоки GZIP и генерируют унифицированные скрипты импорта SQLite, позволяя изолировать полную историю версий программного обеспечения и исправлений по номеру детали (HWID).
4. umf-to-png — Экстрактор каталога запчастей EPC
Проблема: Оригинальный каталог Saab (EPC) хранит свои чертежи в проприетарном формате
.UMF, смешивающем растровые потоки TIFF и векторные метаданные EMF.Решение: Скрипт Python декомпилирует бинарные изображения UMF в формат PNG и анализирует векторный заголовок (
rclFrame) для расчета точных координат кликабельных зон (Hotspots). Результат включает как JSON-карту, так и скрипт вставки SQL для баз EPC.
Философия разработки
Каждый проект следует следующим принципам:
Лицензия MIT: Свободное использование и модификация без ограничений.
Разработка с помощью ИИ: Разработаны в режиме парного программирования с моделями ИИ Antigravity (Google DeepMind).
Без тяжелых зависимостей: Инструменты на C и Java ориентированы на легкость и совместимость с устаревшими средами Windows (Windows XP/Windows 7).
А вы?
Вы разработчик или интересуетесь реверс-инжинирингом этих инструментов, или вы в основном посещаете saabiste.net для технической документации (WIS) и каталога запчастей (EPC), уже интегрированных?
Не стесняйтесь оставить комментарий, чтобы поделиться, как вы их используете или что бы вы хотели видеть в дальнейшем!
Код доступен по адресу: https://github.com/oamne
Комментарии
Будьте первым, кто оставит комментарий.