Renault Clio 2016 года довольно надежен, но не особенно захватывающий. Тем не менее, британской фирме по кибербезопасности Pen Test Partners удалось преобразовать обычный автомобиль в рулевое управление для видеоигры путем захвата данных CAN-шины (через The Register). Важно отметить, что машиной все еще можно управлять, однако рекомендуется избегать вождения во время игры.
Как поклонник автомобилей, могу заверить вас, что хотя мой Renault Clio 2016 года не является вершиной передовых технологий в автомобилестроении, он достаточно современен, чтобы включать сенсоры там, где они критически важны — на рулевом колесе, тормозах и педали акселератора. Это означает, что данные постоянно передаются внутри автомобиля при активации этих элементов управления.
Pen Test Partners получили доступ к основной сети данных Clio, известной как шина CAN (Controller Area Network), которая является центральной системой в современных автомобилях. Благодаря прямому подключению к проводам шины CAN с использованием соединителя для проводов, они смогли добраться до модуля управления кузовом (BCM).
Дэвид Лодж из Pen Test Partners объясняет, что сплецер (splicer) является простым инструментом, прежде всего используемым для удаления небольшого участка изоляции с проводов, позволяя делать соединения. Эти инструменты часто применяются при установке внешних устройств в транспортных средствах, таких как оборудование мониторинга или черные ящики. Они могут быть куплены у разных поставщиков, и в данном случае splicer Дэвида был доставлен напрямую через Amazon. В заключение можно сказать, что использование splecer не представляет особой сложности.
Сначала мы столкнулись с проблемой определения сигналов от использования руля, тормозов и акселератора.
Во время езды на взломанном автомобиле, корректировка рулевого колеса и педалей помогала мне различать арбитражные идентификаторы (Arbitration IDs) и определять биты данных, соответствующие каждому состоянию. Я не буду глубоко погружаться в протокол CAN, но по сути после проверки корректности электрического состояния и знания скорости шины (для чего я использовал Kvaser Leaf Pro), типичный пакет CAN включает 11-значный арбитражный идентификатор, 8 байтов данных и различные флаги и информацию о пакете, как описывает Lodge.
Ну ясно!
Как энтузиаст CAN, я заметил, что поскольку каждый пакет CAN довольно компактный (содержит всего 8 октетов полезной нагрузки) и существует относительно мало ID для арбитража (только 2048, конкретно 0x800), приоритет часто отдается меньшим ID. Это означает, что сообщения часто направлены на конкретные биты внутри пакета. Хотя многие форматы базы данных CAN рассматривают пакет как последовательность бит вместо октетов, я предпочитаю думать об этом в терминах октетов из-за моих привычек обработки.
Я тоже, Дэвид, я тоже.
Если эти сигналы правильно расшифрованы, последним шагом является их интеграция каким-либо образом в игру. Чтобы сделать сообщения по сети зоны управления (CAN) функциональными, требовался метод перевода. Я мог бы модифицировать исходный код SuperTuxKarT для принятия ввода контроллера от CAN, но это заняло бы значительное время и потребовало обширной среды сборки. Вместо этого Лодж выбрал более простой вариант.
Во время моих тестов я использовал модуль pyinput для генерации событий ввода устройства на Python. Однако я обнаружил, что система шины данных CAN автомобиля работает значительно быстрее ожидаемого. В результате при манипуляциях с рулевым колесом автоматически генерировалось нажатие клавиши для каждого пакета данных, приводя к сотням нажатий клавиш за одно событие. К сожалению, такая быстрая последовательность нажатий клавиш вызвала значительное отставание SuperTuxKartpe от скорости шины CAN.
Проще говоря, после того как данные CAN-шины стали пригодными для использования, Лодж столкнулся со значительными трудностями в управлении автомобилем. Он объяснил: ‘Управление действительно оказалось проблемой, поскольку двигатель не был запущен и у нас не было активного гидроусилителя руля. Кроме того, из-за механического соединения с передними колесами они продолжали двигаться, даже когда автомобиль стоял на полу.’
Он решил сохранить узкий радиус поворота, чтобы не повредить шины или пол. Установление порога ниже 0x8030 для правых поворотов и выше 0x80d0 для левых обычно работало хорошо. Но были некоторые люди, которые испытывали затруднения с управлением как будто это был автомобиль, что могло привести к излишнему износу шин.
В будущем Pen Test Partners хотели бы сделать несколько дополнительных замечаний. В частности, они хотят отметить, что у SuperTuXKarth есть оружие, способное вести огонь. Они надеялись интегрировать управление этим оружием с помощью звукового сигнала в качестве идеального варианта. Однако выяснилось, что система Clio использует LIN для управления рулевым колесом, и к сожалению, звуковой сигнал не передает информацию через CAN-шину.
По словам Лоджа, это было бы идеальным дополнением для передачи информации о скорости на приборную панель, но к сожалению у него закончилось время. Тем не менее, в будущем Лодж планирует попробовать слегка модифицированный подход. Есть ли случайно бюджетный мотоцикл, который продается? Следите за развитием событий как в пространстве, так и на дороге, если вы едете.
Смотрите также
- Список филлеров Наруто и Наруто Шиппудена: все эпизоды, которые можно пропустить.
- Читы Bellwright и консольные команды
- Как решить загадку с жаровней в Diablo 4: Vessel of Hatred
- Консольные команды Сталкера 2 и чит-моды
- Шоураннер Arcane говорит, что сексуальная сцена Кейт и Ви изначально была длиннее и, казалось бы, более наглядной: «Мы получили пощечину»
- Лучшие слайдеры NHL 25 и как их использовать
- Обзор MSI MAG X870 Tomahawk WiFi
- Обзор Lenovo Legion Go S на Windows 11: «Мое сердце болит за этот смешанный портативный»
- Некоторые графические карты Sapphire RX 9070/9070 XT содержат труднозаметную пену внутри, которую необходимо удалить, иначе это может привести к снижению охлаждающей способности или отказу продукта.
- Обзор MSI Crosshair 16 HX
2025-07-02 17:05