Redefining V2G - How to use your vehicle as a game controller

Presented at DEF CON 32 (2024), Aug. 11, 2024, 12:30 p.m. (45 minutes).

Modern cars are a complex networks of computers put on four wheels. For security research, it is important to understand the car's internal network and exposed interfaces. But what else could you use this knowledge for? You probably guessed it from the title 🙂. So we developed a tool to turn our research car into a game controller. In this talk, we present Vehicle-to-Game (V2G), a Python-based project that enables the usage of cars as game controllers. V2G can run either directly on a laptop or turn a Raspberry Pi Zero WH into a Bluetooth gamepad. In addition, V2G can either be used over the OBD2-diagnostic port or by directly accessing the internal CAN-busses of the car. Our project can be a great starting point if you always wanted to tinker around with your car or want to learn about the CAN bus or diagnostic communication (UDS). To make V2G work with your car, some reverse engineering of CAN messages or diagnostic communication will be required (as well as additional hardware to connect to the CAN bus). Otherwise, if you can get this running, you can be sure that you own a more expensive game controller than your neighbors. Tools and hardware: 1. General introduction into the CAN-bus and UDS: [link](https://www.csselectronics.com/pages/can-bus-simple-intro-tutorial) 2. Tool for designing PCBs: [link](https://easyeda.com) 3. Tool for making CAN messages readable: [link](https://www.savvycan.com/) 4. Hardware for accessing CAN-bus and OBD: [link](https://www.peak-system.com/PCAN-USB.199.0.html) 5. CAN utils: [link](https://github.com/linux-can/can-utils) 6. CAN hat for Raspberry Pi: [link](https://www.waveshare.com/wiki/RS485_CAN_HAT) Used libraries: 1. [link](https://github.com/Heerkog/HIDpi) Many thanks for providing this great library and documentation for utilizing the Raspberry Pi as a Bluetooth device! 2. [link](https://github.com/yannbouteiller/vgamepad) 3. [link](https://github.com/hardbyte/python-can) Misc: 1. Tesla DBC files: [link](https://github.com/joshwardell/model3dbc) 2. ACSD website: [link](https://fbi.h-da.de/en/research/research-groups/applied-cyber-security-darmstadt) 3. V2G Repository on GitHub (private until start of DEF CON): [link](https://github.com/Vehicle2Game/v2g)

Presenters:

  • Jannis Hamborg - PhD Student at Darmstadt University of Applied Sciences
    Jannis Hamborg received his masters degree in computer science with focus on IT-security from Technical University Darmstadt, Germany in 2023. For his master thesis he researched about resilient and self-recovering reputation based networks. During the time of master he worked as assistant researcher at Darmstadt University of Applied Sciences, Germany on different topics of automotive security research. Since end of 2023, he started his PhD on the design and integration of resilient risk-driven networks with focus on internal automotive networks.
  • Timm Lauser - PhD Student at Darmstadt University of Applied Sciences
    Timm Lauser received his masters degree in computers science from Karlsruhe Institute of Technology, Germany in 2020. Since then, he is a PhD student at Darmstadt University of Applied Sciences, Germany. There, he is researching in the field of automotive cyber security with a focus on communication protocols and their formal verification in the symbolic model.

Similar Presentations: