Return to Video

34C3 - How to drift with any car

  • 0:00 - 0:15
    33C3 preroll music
  • 0:15 - 0:19
    Herald Angel: And without further to do,
    please welcome Guillaume and P1ckachu on
  • 0:19 - 0:25
    stage now.
    applause
  • 0:25 - 0:34
    Guillaume: Thank you.
    P1kachu: Okay. So hi everybody. Hi bingu.
  • 0:34 - 0:42
    So we are going to present what we've been
    doing lately with cars actually. So who
  • 0:42 - 0:49
    are we? My name is Stanislas Lejay
    "P1kachu". I'm an IT student in EPITA a
  • 0:49 - 0:54
    school in France and I'm part of EPITA's
    system and security laboratory the LSE.
  • 0:54 - 0:59
    I'm currently an intern at Quarkslab. I
    like a lot of stuff, like reverse
  • 0:59 - 1:04
    engineering, everything that is related to
    cars or mechanics and if there is
  • 1:04 - 1:09
    something stupid to do I shall already be
    doing it. And with me will be Guillaume
  • 1:09 - 1:12
    Heilles.
    Guillaume: Hello my name is Guillaume. I
  • 1:12 - 1:19
    work as at Quarkslab as a security
    engineer. I'm quite new to the security
  • 1:19 - 1:25
    field as I worked in the industry before.
    And I switched to the security field
  • 1:25 - 1:30
    because it's very fun and I like to
    reverse almost everything and I will give
  • 1:30 - 1:36
    a small talk about reversing a piece of
    hardware that you can find in an
  • 1:36 - 1:44
    automobile.
    P: So what is this talk about? This
  • 1:44 - 1:47
    talk will be in two different parts the
    first one is how to drift with any car.
  • 1:47 - 1:53
    And it's an introduction to how to automotive
    systems what you can do with them and what
  • 1:53 - 1:57
    we actually did with them. And the second
    part, which name is out to properly write
  • 1:57 - 2:03
    an amazon review, you'll see why just
    after, is OBD dongle. So analysis, reverse
  • 2:03 - 2:09
    engineering, stuff like this. So first
    part "drifting with any car". The idea is
  • 2:09 - 2:13
    that I'm a student, so I work at my
    school's lab, so I had to find a way to
  • 2:13 - 2:19
    explain why I was bringing different cars
    every day at my school's garage. So the
  • 2:19 - 2:24
    official goal was to look at our car works
    and what arise from this is what can I do
  • 2:24 - 2:30
    what can one do with a modern car system.
    The restriction I had was that since I'm a
  • 2:30 - 2:35
    student I'm poor so I don't have a lot of
    money and I don't have a lot of cars. So I
  • 2:35 - 2:40
    was actually taking my family's different
    cars and trying to analyze them. So I
  • 2:40 - 2:48
    wouldn't, I wasn't able to break anything
    or remove any parts from the car. So the
  • 2:48 - 2:55
    test subjects, what which cars was I
    playing with. I had five or six of them.
  • 2:55 - 3:01
    The first one for posterity, is mine
    actually. It's a 2006 Volkswagen Polo.
  • 3:01 - 3:05
    What is nice is that you can spend the
    whole day trying to find some messages on
  • 3:05 - 3:11
    your bus. If your car is too old there are
    no messages. So you can take the
  • 3:11 - 3:16
    oscilloscope and try to find them, you
    won't find them. Anyway, just before doing
  • 3:16 - 3:24
    anything try to think is the something I'm
    looking for ready in there. The second car
  • 3:24 - 3:28
    is my grandmother's car it's a Volkswagen
    Polo of 2013. And the last guy we'll talk
  • 3:28 - 3:36
    about is my mom's Fiat 500 convertible.
    It's from 2010. The dates are important
  • 3:36 - 3:42
    because the CAN bus I will talk about just
    after is quite recent in a way that
  • 3:42 - 3:49
    security on the CAN bus changes greatly
    from one year to another. So the CAN bus I
  • 3:49 - 3:55
    was playing with on this car was quite
    different from the 2013 Volkswagen Polo
  • 3:55 - 4:02
    for example. Okay, so talking with the
    car. So this is the introduction part, so
  • 4:02 - 4:05
    if people already know about what I'm
    going to talk about, but I want everybody
  • 4:05 - 4:10
    to be on the same first step. So first of
    all an ECU it stands for electronic
  • 4:10 - 4:15
    control unit and it's a small computer
    that you get all around your car. So there
  • 4:15 - 4:20
    are many of them. You can have at most 70
    of them in very modern cars and take
  • 4:20 - 4:25
    control different parts of it. So you have
    the engine, the powertrain, the
  • 4:25 - 4:30
    transmission, ABS, stuff like this. And
    they talk to each other on what we call
  • 4:30 - 4:37
    the CAN bus. The CAN bus is a message
    based broadcast protocol. Messages are
  • 4:37 - 4:42
    mostly composed of two important things
    which are the arbitration ID which, I will
  • 4:42 - 4:49
    refer to ID from now on, they can be 11 or
    29 bits long and you have data. Data is 8
  • 4:49 - 4:53
    bytes long on the standard that CAN
    message but they are on top protocols, I
  • 4:53 - 4:59
    can group messages together to get bigger
    lengths of data. What is interesting is
  • 4:59 - 5:04
    that it's a broadcast protocol, so the
    collision detection system is based on the
  • 5:04 - 5:10
    ID. The lower your ID the higher your
    priority. So very important CAN message
  • 5:10 - 5:17
    will have a very low IDs they will be sent
    from an ECU that are very low ID and less
  • 5:17 - 5:22
    important one will have a bigger
    arbitration ID. How do you talk to your
  • 5:22 - 5:27
    CAN bus without cutting any wire in the
    car? For this you see there is the OBD2
  • 5:27 - 5:32
    port so OBD stands for onboard diagnostic
    and is the vehicle self diagnostic and
  • 5:32 - 5:37
    reporting capability. When you are driving
    you have allowed a LED that start to blink
  • 5:37 - 5:41
    on your dashboard saying "ok something's
    wrong", you bring your car to your car
  • 5:41 - 5:46
    repair shop and the car repair guy will
    just plug itself to this port which is
  • 5:46 - 5:53
    located around the steering wheel often
    and query information using PIDs. So PID
  • 5:53 - 5:58
    is a parameter ID. It means "okay I want
    to have information about for example the
  • 5:58 - 6:03
    RPM or the speed or the fuel level
    something like this" and you can set or
  • 6:03 - 6:08
    reset diagnostic trouble codes a
    diagnostic trouble code means "ok
  • 6:08 - 6:13
    something is wrong with this part of the
    car" for example. Here is my setup. So
  • 6:13 - 6:20
    with just a Raspberry Pi, PiCAN 2 shield
    and a DV 9 to OBD 2 cable, I was able to
  • 6:20 - 6:26
    have a full linux that that can understand
    CAN messages and talk with the CAN bus. So
  • 6:26 - 6:30
    with that I could just communicate with my
    car without breaking anything, which is
  • 6:30 - 6:36
    quite nice. What does it look like? So in
    Python, I just import import can, so it's
  • 6:36 - 6:41
    a standard package, python-can, you create
    an interface, so it's socket CAN, so it's
  • 6:41 - 6:45
    like any kind of interface you just create
    a can0 interface and you can communicate
  • 6:45 - 6:51
    with your CAN bus. You create your
    message, so the data is here. What is
  • 6:51 - 6:56
    important is that the first byte tells how
    many bytes are important in the message.
  • 6:56 - 7:01
    You can have 8 bytes of data. The number
    of bytes processed will be this number, so
  • 7:01 - 7:07
    like there it says "ok, there are only 2
    bytes of data that are interesting, just
  • 7:07 - 7:12
    discard the 5 of the ones.". Here, it asks
    for the first mode, so OBD have different
  • 7:12 - 7:18
    mode. The first mode says "Okay, I want
    the current value of what I'm looking for"
  • 7:18 - 7:25
    and 0x0c is RPM. So I want the current
    value of the RPM. If I put two there, it's
  • 7:25 - 7:30
    the second mode and it asks for the RPM
    when the last data trouble code was
  • 7:30 - 7:33
    actually set. You have different like
    that, but what interested me was "Okay
  • 7:33 - 7:41
    what is a current RPM?". You create your
    message, 0x7df is the classic ID for
  • 7:41 - 7:50
    diagnostic tools, so most ECUs will answer
    to OBD queries if you have this ID. On 29
  • 7:50 - 7:55
    bits, it depends on the car, on the Fiat
    500, for example, it was this one. You
  • 7:55 - 8:02
    send your message, you get your answer and
    that's it. Okay, so this was the theory:
  • 8:02 - 8:07
    how do you talk, but how did I actually
    talk with my cars? So the first OBD answer
  • 8:07 - 8:12
    I was able to get was on my grandmother's
    Polo. It's quite a recent car, 2013, so
  • 8:12 - 8:17
    there was a gateway, a sort of firewall
    between the OBD2 port and the actual CAN
  • 8:17 - 8:23
    bus. So when I plugged myself to the CAN
    bus, I wouldn't receive anything unless I
  • 8:23 - 8:28
    send an OBD query. I would receive my
    answer but that's all. Else, the bus would
  • 8:28 - 8:34
    be completely silent. So here are some
    examples, so this is the one from just
  • 8:34 - 8:39
    before, how can I get the RPM, so this is
    the value of the RPM. Here, I can get the
  • 8:39 - 8:44
    engine coolant temperature, very
    important, so the idea is that it answers
  • 8:44 - 8:52
    83 and 83 is 131 degrees. The idea is that
    you are working with unsigned bytes, so if
  • 8:52 - 8:59
    you want to get a negative temperature,
    the standard tells you to subtract 40 from
  • 8:59 - 9:07
    your temperature. If you are outside of
    -40 or 215 degrees, you have other
  • 9:07 - 9:15
    problems than your coolant temperature.
    So, seems to work. Okay, nice. So,
  • 9:15 - 9:18
    displaying everything. This was to explain
    to my grandmother why I was stealing her
  • 9:18 - 9:23
    car for two weeks right now. So, with
    this, I'm able to get the RPM, the speed,
  • 9:23 - 9:28
    engine coolant temperature, always very
    important, throttle and accelerator pedal
  • 9:28 - 9:34
    pedal position and the elapsed time since
    engine started. So anyway, kind of
  • 9:34 - 9:41
    graphical, my grandmother understands,
    everybody's happy. Right, so right now I
  • 9:41 - 9:46
    can query standard OBD PIDs, I can have
    the RPM, speed, fuel level, anything you
  • 9:46 - 9:51
    would want to have on your dashboard, but
    if you want to get some probably more
  • 9:51 - 9:57
    interesting stuff, you have to go with the
    constructor-specific PIDs. For example,
  • 9:57 - 10:00
    the steering wheel position, brake and
    clutch pedal, gearbox status light or
  • 10:00 - 10:05
    blinkers are constructor-specific, so you
    have to break stuff to be able to find
  • 10:05 - 10:11
    them or are very good friends with
    manufacturer, which I haven't. Nice, we
  • 10:11 - 10:18
    can query stuff, mostly. Can we modify
    anything interesting from OBD? Because,
  • 10:18 - 10:24
    still, I don't want to mess with the car
    by cutting any wire. So first issue: what
  • 10:24 - 10:29
    protocol am I actually talking to? There
    are on-top protocols like with KWP, which
  • 10:29 - 10:34
    is Keyword Protocol 2000, Unified
    Diagnostic System is OTP, the volkswagen
  • 10:34 - 10:39
    version of ISO-TP, like really, and stuff
    like this. Which protocol am I talking to?
  • 10:39 - 10:45
    Okay, let's just brute-force by sending
    the classic introduction kind of message
  • 10:45 - 10:52
    and try to find for valid answer. With
    this on the 2013 Polo, I could speak UDS.
  • 10:52 - 10:57
    So UDS enables different kind of thing
    like resetting ECUs, which can be quite
  • 10:57 - 11:04
    interesting, query-specific PIDs, read DTC
    information, stuff like this. However,
  • 11:04 - 11:09
    nice stuff like dump the firmware, are
    only available through security session.
  • 11:09 - 11:13
    And security session on this car requires
    an authentication through a challenge
  • 11:13 - 11:19
    response kind of algorithm, so here is the
    example: I would start a diagnostic
  • 11:19 - 11:25
    session, UDS diagnostic session, first,
    then query for seed to get through the
  • 11:25 - 11:31
    security session, compute my answers, send
    it back, the cars compute its own answer,
  • 11:31 - 11:36
    compare and I would fail, because I would
    just send the feedback like, maybe they
  • 11:36 - 11:41
    didn't implement a real algorithm, you
    never know. But hey, okay, well done
  • 11:41 - 11:47
    Volkswagen, they did it quite well.
    Actually, the car has a four-byte seed,
  • 11:47 - 11:51
    which is different at each try. This is
    important to notice because on Guillaume's
  • 11:51 - 11:58
    car, it's a 2-byte seed, which is always
    the same. You have more than three seconds
  • 11:58 - 12:03
    required between each try and if you fail
    multiple time, it will just freeze for ten
  • 12:03 - 12:07
    minutes if you don't want to remove the
    battery, all that kind of complicated
  • 12:07 - 12:13
    stuff. So, how to break this? Brute-force?
    Way too long. Timing attack would be too
  • 12:13 - 12:18
    unstable because of the priority-kind of
    thing, because you can just get delayed by
  • 12:18 - 12:24
    other more important messages and so it
    will delay your timing attack. Disassemble
  • 12:24 - 12:28
    the car is out of the question, you know
    why, and get PCs from a repair shop is
  • 12:28 - 12:31
    tedious. You know, get an ECU, try to
    recreate the CAN bus around, stuff like
  • 12:31 - 12:38
    this, and I'm broke, so I don't have any
    money. Okay, so, my car, let's sum up, way
  • 12:38 - 12:43
    too old. My grandmother's car, bit too recent
    because of the Gateway, my family's car is
  • 12:43 - 12:47
    a Lancia Voyageur 2014, so even more
    recent, but it has Uconnect, so maybe for
  • 12:47 - 12:57
    another time. Who's left? Oh, mommy? So,
    my mom has a 2010 Fiat 500 convertible,
  • 12:57 - 13:02
    she loves it, so she doesn't like when I
    take it and she even more doesn't like when
  • 13:02 - 13:13
    I tried to do stuff with it. So one night
    I stole the key. Laughter Sorry. And I
  • 13:13 - 13:18
    tried to plug myself in and oh! It talks, it
    talks a lot. In four seconds, I was able
  • 13:18 - 13:24
    to get 2000 around message, so it's about
    500 messages per second. There is no
  • 13:24 - 13:28
    gateway, so I have a lot of broadcasted
    message already. They are from few
  • 13:28 - 13:33
    different arbitration IDs, so a few
    different ECUs are actually talking on
  • 13:33 - 13:38
    this bus. When I'm in the car, I tried
    pressing random buttons and I see that the
  • 13:38 - 13:43
    data evolves, so the nice funny things to
    do is to try to understand what each
  • 13:43 - 13:49
    message mean. It's quite tricky with CAN
    dump, which is the standard Linux utils
  • 13:49 - 13:55
    which will just flood your stdout with CAN
    messages, but Python CAN monitor helps a
  • 13:55 - 14:02
    lot by grouping messages by arbitration
    ID. So here I'm in the Fiat 500 and I am
  • 14:02 - 14:08
    driving actually, and you can see the
    different arbitration ID there and the
  • 14:08 - 14:13
    data that is evolving. The two last one,
    which are way bigger, are the standard
  • 14:13 - 14:19
    OBD, meaning that okay, I have a priority
    that is way lower than the other kind of
  • 14:19 - 14:28
    messages. So, reversing a bit, what can we
    find? I found the speed, four time, the
  • 14:28 - 14:34
    values were quite different but quite
    close anyway, so was it at four different
  • 14:34 - 14:38
    time or at the for different wheels? And
    it was actually at the four different
  • 14:38 - 14:44
    wheels, because when I turned it would
    change drastically two values out of four.
  • 14:44 - 14:48
    I have the clutch pedal with respect to
    the accelerator am i accelerating while
  • 14:48 - 14:53
    depressing or pressing the clutch, the
    brake data are the doors closed which one
  • 14:53 - 14:58
    are closed is a contact on is the
    handbrake up or down and this one is quite
  • 14:58 - 15:05
    interesting because it would change every
    minute. Actually it's the time and date.
  • 15:05 - 15:13
    So it was 9:00 p.m. on the 24th May of
    2017 meaning that they created an ECU
  • 15:13 - 15:18
    would which only job was to send the
    current time and date readable in
  • 15:18 - 15:24
    hexadecimal format on the CAN dump like
    this.
  • 15:24 - 15:28
    laughter
    But what that was I found it funny I've
  • 15:28 - 15:34
    weird sense of humor, anyway so this thing
    even masters this time to explain to my
  • 15:34 - 15:39
    mother what I'm doing with her car so this
    was a kind of capture was doing from my
  • 15:39 - 15:44
    school to my home like I was recording
    what I was doing in the car, recording at
  • 15:44 - 15:47
    the same time a CAN dump and displaying
    what I could display so I have the
  • 15:47 - 15:53
    handbrake, start and stop and engine is on
    okay it seems to be the doors are closed
  • 15:53 - 16:00
    hopefully okay. So this was quite fun
    to do actually. Okay what can we do with
  • 16:00 - 16:05
    that? Can we do something useful for
    humanity can we do maybe something a
  • 16:05 - 16:09
    little bit challenging or else it's
    absolutely not interesting? How can I at
  • 16:09 - 16:16
    least put something on my resume after
    that something I can be proud of? Yes or
  • 16:16 - 16:22
    we could try to do something completely
    stupid and that's what I was I mean to do.
  • 16:22 - 16:31
    So I created CANPad. The idea of CANPad is
    that with the steering wheel or brake and
  • 16:31 - 16:43
    an accelerator pedal you can drive any car
    in any video game. So.. Laugher
  • 16:43 - 16:55
    Applause
    So that's what I did. I take the CAN
  • 16:55 - 17:01
    messages from OBD sensor and back pass it
    to a piece on CAN and client and float
  • 17:01 - 17:07
    them through libuinput to be able to
    create a virtual gamepad and plays it in
  • 17:07 - 17:15
    V-Drift. So V-drift is an open-source
    racing game that allows one to play on
  • 17:15 - 17:20
    Linux through at least libuinput. So
    this is a start and stop button that I use
  • 17:20 - 17:28
    as a toggle to send data and here I'm
    driving with my mum's car, a car in a
  • 17:28 - 17:30
    video game.
    driving noise
  • 17:30 - 17:35
    So I have the steering wheel the handbrake
    all every pedals is quite it's quite hard
  • 17:35 - 17:38
    to drive right now.
    laughter
  • 17:38 - 17:47
    And my official goal is to drift. So at
    first I have to learn how to drive at all.
  • 17:47 - 17:57
    It was actually quite nice when I managed
    to do anything at all. So you can see that
  • 17:57 - 18:07
    data is only like 16 bytes long and
    music
  • 18:07 - 18:20
    applause
    That's the best drift I was able to do on
  • 18:20 - 18:27
    this game. So I was actually quite
    disappointed right now. So features and
  • 18:27 - 18:31
    limitation of this. So the features is
    what I was explaining right now. But the
  • 18:31 - 18:36
    limitation are that the engine needs to be
    running because else I don't have the
  • 18:36 - 18:43
    assisted direction which makes the wheel
    quite hard to turn. Also on a real car if
  • 18:43 - 18:48
    you really see steering wheel it will by
    itself try to match the car direction
  • 18:48 - 18:53
    which I don't have so I would just spend
    all my time turning the wheel. And the
  • 18:53 - 18:59
    control simplicity going through libuinput
    limits it to V-Drift because no
  • 18:59 - 19:05
    other Linux game recognized my virtual
    gamepad as a real one. So I was quite sad
  • 19:05 - 19:11
    and but I really wanted to drift. Oh wait
    I created another version which is CANpad
  • 19:11 - 19:18
    v2. CANpad v2 I just understood that on
    the real game pad game box - Xbox, Xbox
  • 19:18 - 19:24
    gamepad. If I plug the Xbox gamepad and
    don't touch anything no inputs will be
  • 19:24 - 19:31
    sent. On the other hand if I put a PS4
    gamepad and don't touch anything it will
  • 19:31 - 19:36
    flood the status of every button all the
    time so what I would do is take the Xbox
  • 19:36 - 19:41
    controller put it on the table and hijack
    its port to send data instead of it. So I
  • 19:41 - 19:45
    would have a real, a real plugged-in
    controller that is recognized by nicer
  • 19:45 - 19:52
    games like V-Drift, like DiRT and I could
    send inputs by my, myself. I change this
  • 19:52 - 19:58
    few stuff like the gas pedal because I had
    to flow in the real world to flow in the
  • 19:58 - 20:08
    game which was quite fuel consuming, the
    steering wheel rotation was adjusted so
  • 20:08 - 20:14
    that it matches, it matches rally cars
    like if I turn it 180 degrees it will turn
  • 20:14 - 20:17
    all the way in the game so quite nice, and
    I found the direct command to query and
  • 20:17 - 20:22
    break in the in the video. In the next
    video you'll see that when I turn abruptly
  • 20:22 - 20:27
    in the game and I release at the same time
    the brake the wheel will take a little bit
  • 20:27 - 20:32
    of time before stopping to turn because I
    have a small delay. But now I have the
  • 20:32 - 20:40
    real input so it's way easier. so:
    demonstration. So, some sensors:
  • 20:40 - 20:51
    soundtrack Start and Stop soundtrack
    I just wanted the music. So, anyway, as you
  • 20:51 - 20:56
    can see it's way easier to play because of
    the steering wheel which was adjusted it's
  • 20:56 - 21:11
    way nicer to drift in it. I can do the
    crane drift
  • 21:11 - 21:20
    applausesoundtrack
    my brothers were very fond of this. My
  • 21:20 - 21:23
    mother was only thinking about her tires
    right now
  • 21:23 - 21:31
    audience laughing
    soundtrack
  • 21:31 - 21:38
    Anyway. Sorry. I'll give you the title of
    the song later if you want. So I can now
  • 21:38 - 21:44
    drift with my front-wheel drive car in any
    kind of video game which is almost quite
  • 21:44 - 21:50
    very nice. So possible upgrades - yes
    there're always upgrades: I could get the
  • 21:50 - 21:55
    gearbox tattoos to put the car on the lift
    and try to put it in manual which would a
  • 21:55 - 22:01
    be a bit more life... life kind and
    create a better gamepad so that I'm able
  • 22:01 - 22:08
    to race on my Micro- windows because right
    now it's only on Linux. Okay this was fun
  • 22:08 - 22:12
    but it was actually consuming a lot of gas
    for nursing. So with Guillaume we try to
  • 22:12 - 22:17
    find a way to reduce gas consumption and
    that's what he will - he is going to talk
  • 22:17 - 22:20
    to you about right now.
    Guillaume?
  • 22:20 - 22:30
    Guillaume: Thank you, Stan.
    Applause
  • 22:30 - 22:34
    So, Stan had a little problem about the
    gas consumption and the friend of us told
  • 22:34 - 22:40
    us about this little nitro OPD dongle
    which is supposed to save fuel. It's sold
  • 22:40 - 22:46
    on Amazon and the reviews are quite good
    so we said "ok, strange but ok" let's try
  • 22:46 - 22:54
    it. First of all just a reminder about the
    - what is an OBD2 dongle? An OBD2 dongle
  • 22:54 - 23:02
    is a small device that you plug into the
    OBD2 port of your car. Any recent car has
  • 23:02 - 23:07
    an OBD2 port you can find it by googling
    the model of your car and OBD2 port and
  • 23:07 - 23:13
    you will find a picture of it and the
    interesting thing is that you just have to
  • 23:13 - 23:18
    pull the panel to access to your OBD2 port
    and it's very cool because we don't have
  • 23:18 - 23:25
    to take anything apart or whatever. So,
    just buy the thing on Amazon, pull the
  • 23:25 - 23:32
    panel and put it there. That's all. So,
    this dongle is supposed to save fuel by
  • 23:32 - 23:41
    reprogramming the main ECU - the engine
    ECU of your car. And this is done for
  • 23:41 - 23:47
    quite some times: This is known as a chip
    tuning and you can find it on internet. It
  • 23:47 - 23:52
    works pretty well it will break your
    warranty, but the very interesting
  • 23:52 - 23:58
    thing about this dongle is that you will
    not break your warranty because, if you
  • 23:58 - 24:02
    remove it you will go back to factory
    settings and this is very new. So, it
  • 24:02 - 24:11
    works on any car, well any recent car and
    well it seems to work really well. Ok so
  • 24:11 - 24:17
    why did we reverse engineer this dongle?
    Because it just an amazing piece of
  • 24:17 - 24:25
    hardware. If you think about it: it works
    on any car and it also reprograms any car
  • 24:25 - 24:31
    so it must contain all authentication
    codes. Stan explained the challenge and
  • 24:31 - 24:39
    response mechanisms so this one must
    contain all of them. It will also contain
  • 24:39 - 24:46
    the reprogramming software for any car of
    any manufacturer and this is also just
  • 24:46 - 24:51
    amazing and I just wanted to have a look
    at this and it is able to adapt itself to
  • 24:51 - 24:55
    the way you are driving for a few
    kilometers then it will reprogram your
  • 24:55 - 25:01
    engine and I say wow there must be a very
    smart algorithm inside this very small
  • 25:01 - 25:06
    piece of hardware and I just wanted to
    have a look at this software. As I said
  • 25:06 - 25:15
    also - it also modifies the RAM of your
    engine and I was not aware of anything
  • 25:15 - 25:20
    that will be able to do that because from
    the things I know about chip tuning it
  • 25:20 - 25:25
    will change the flash of your ECU. That's
    why the warranty is broken but not this
  • 25:25 - 25:29
    one, not this one. And this is just
    amazing. I just wanted to have a look at
  • 25:29 - 25:35
    the source code while the binary. Ok so.
    The first thing about reverse engineering
  • 25:35 - 25:42
    such a piece of hardware is monitoring the
    CAN signals to see if it's talking and
  • 25:42 - 25:49
    what he - what it is doing exactly if it's
    opening security sessions or not. Well,
  • 25:49 - 25:56
    all this stuff. So, here you see in my
    car. There is the OBD2 port right there
  • 25:56 - 26:02
    and I used the same configuration as Stan
    to record the CAN messages which is a
  • 26:02 - 26:07
    Raspberry Pi here and the PI CAN2 shield
    and well just for fun a picoscope to
  • 26:07 - 26:13
    check the signals and a computer to - to
    monitor this. The thing is you just have
  • 26:13 - 26:19
    one OBD2 port in a car and - here - and
    you cannot plug at the same time the
  • 26:19 - 26:29
    dongle like - like this and the
    wires for the Raspberry Pi. So we took
  • 26:29 - 26:36
    apart the dongle and after a bit of
    reversing the PCBs we found the can lines
  • 26:36 - 26:42
    and ground and we just soldered three
    wires on it. And with using this approach
  • 26:42 - 26:49
    you can reverse the messages sent on the
    bus. The interesting thing is that as you
  • 26:49 - 26:53
    are plugged directly on the dongle
    you will monitor exactly what the
  • 26:53 - 27:02
    dongle is doing and what he's seeing. Just
    for reference you just have three wires to
  • 27:02 - 27:10
    put in a car to hijack or to communicate
    on the CAN bus. Those are CAN high, CAN
  • 27:10 - 27:18
    low and the ground and that's basically
    all you need to connect to a CAN bus. Just
  • 27:18 - 27:25
    for reference: you can find on today's
    cars you can find many many CAN buses in
  • 27:25 - 27:32
    in the different parts of the car. So the
    OBD2 port is just more accessible but it's
  • 27:32 - 27:42
    basically another CAN bus just like
    another one. Okay. So, we did two
  • 27:42 - 27:48
    measurements: one with basically no OBD
    dongle plugged in and there is a one with
  • 27:48 - 27:53
    the OBD dongle plugged in. Stan explained
    in the first part of the presentation that
  • 27:53 - 28:01
    every CAN message is sent by an ECU and
    the identifier of the ECU is called the
  • 28:01 - 28:07
    message ID and the lower it is the higher
    priority is. Here you are the most - you
  • 28:07 - 28:13
    have the most prior - you have the message
    with the - the biggest priority and here
  • 28:13 - 28:18
    with the lowest priority and you see here
    the - the content of the messages. The
  • 28:18 - 28:23
    thing is, if you look at the lists of the
    message IDs - here - and the list of the
  • 28:23 - 28:28
    of the message IDs - here - you can see:
    it's the same list. Basically it means
  • 28:28 - 28:35
    that no other ECU was talking on the bus
    when we plugged the OBD - the Nitro OBD2
  • 28:35 - 28:40
    dongle. So, it means that the dongle
    basically doesn't speak at all on the CAN
  • 28:40 - 28:45
    bus. And that's too bad because we say how
    is it possible that it works if it's not
  • 28:45 - 28:55
    talking on the CAN bus? Okay. Is it over,
    is it just not working? Well not really. The
  • 28:55 - 29:03
    dongle is advertised as working after 120
    kilometres. It will just listen silently
  • 29:03 - 29:09
    to the way you are driving, then reprogram
    your engine after this small amounts of
  • 29:09 - 29:15
    kilometres. So it was still possible that
    the dongle was not sending anything during
  • 29:15 - 29:21
    the first kilometers. And - but we
    couldn't just monitor the CAN bus during
  • 29:21 - 29:28
    such a big period of time and so we needed
    another approach and we chose to reverse
  • 29:28 - 29:37
    the PCB. If you take the dongle apart, you
    can see two PCBs. The first one here is
  • 29:37 - 29:44
    just connected on the OBD 2 port and the
    other one seems to contain, well,
  • 29:44 - 29:49
    something. Okay, so this is a picture of
    the first one. As you can see, there is no
  • 29:49 - 29:57
    components on it at all. It's just routing
    the CAN wires from there to the second
  • 29:57 - 30:03
    board. So okay, let's go on, and the
    second one is more interesting. On the
  • 30:03 - 30:07
    front side, you can see, well, a few
    components, but there are not so many. You
  • 30:07 - 30:15
    have a voltage regulator here, 7805, you
    have a push-button, this diode is part of
  • 30:15 - 30:22
    the voltage regulation and that's pretty
    much all you have here. And three LEDs,
  • 30:22 - 30:26
    you have three LEDs, okay. On the back
    side, you can see, here there is the
  • 30:26 - 30:33
    footprints of a very small
    microcontroller, and here is a picture
  • 30:33 - 30:38
    before dissoldering it. And the
    interesting thing is that there is
  • 30:38 - 30:44
    absolutely no reference on this device, as
    if the manufacturer took a special care to
  • 30:44 - 30:49
    hide what was inside. And this is not so
    common because usually you can find a
  • 30:49 - 31:00
    reference in a chip. Also, there is no CAN
    transceiver on this device, yeah, it's
  • 31:00 - 31:08
    strange. What is a CAN transceiver? A CAN
    transceiver is a piece of hardware to
  • 31:08 - 31:16
    translate the signals from the CPU, which
    are basically UARTs, into CAN signals
  • 31:16 - 31:26
    which, are CAN high, CAN low, this is a
    differential pair. But this device is not
  • 31:26 - 31:30
    just about adapting the signals and
    electric conversion. It's also about real-
  • 31:30 - 31:36
    time monitoring and checking. Stan
    explained before that in each frame, you
  • 31:36 - 31:46
    got a CRC and an error bit. And if there
    is a transmission error on a frame, any
  • 31:46 - 31:52
    CAN transfer has the duty to assert the
    fault in real-time, so it just has a few
  • 31:52 - 31:57
    microseconds to compute the CRC in real-
    time and say "Okay, no you just have to
  • 31:57 - 32:02
    discard this frame". Basically, two tasks
    for this one: electrical signal conversion
  • 32:02 - 32:09
    and checking in real-time. Okay, so you
    have no CAN communication, no CAN
  • 32:09 - 32:16
    transceiver, okay, it smells weird. A few
    guys told us "yeah but maybe it's possible
  • 32:16 - 32:21
    to do that in software because, you see,
    those are just signals and maybe with an
  • 32:21 - 32:27
    IDC and so on you can do that in
    software." I put a link, if you are
  • 32:27 - 32:29
    interested, here, for Stack Overflow
    discussion, which is very interesting and
  • 32:29 - 32:34
    a few guys say "ok, yes, it's possible to
    do that in full software, so you basically
  • 32:34 - 32:39
    don't need a CAN transceiver". The thing,
    is as the CAN transceiver has to react in
  • 32:39 - 32:44
    a real-time, you have to have a very fast
    CPU to do that in real-time. And the guys
  • 32:44 - 32:49
    on Stack Overflow say "Ok, it's possible,
    but at a very low speed like 10 kilobits
  • 32:49 - 32:54
    per seconds or something like this." But
    on a real CAN bus on a real car, the speed
  • 32:54 - 33:06
    is more like 500,000 bits per second, so
    it's not the same order of magnitude. And
  • 33:06 - 33:11
    then, some of the guys say "Okay, maybe
    there is some CAN transceiver inside this
  • 33:11 - 33:16
    chip", and I say "okay, yes, it's just a
    small A Super8 chip, there is nothing
  • 33:16 - 33:20
    there, just a small microcontroller ",
    but, just to be sure and because we like
  • 33:20 - 33:28
    to decap chips, laughing I asked my intern to do
    that because, you know, there are toxic
  • 33:28 - 33:41
    fumes and things like that. So here is
    Stan in my garden and, well, it was pretty
  • 33:41 - 33:48
    - it was the first time I did that, and
    Stan also, and the thing is, it's pretty
  • 33:48 - 33:52
    easy to do that, but if you want to do it,
    just be careful because it is very
  • 33:52 - 34:00
    dangerous stuff. You can buy it on the
    internet, it's very cheap, and, what do
  • 34:00 - 34:08
    you need? You need cooking plates, here,
    to produce some heat, crème brûlée, or
  • 34:08 - 34:13
    just the ceramic plate. You pour the
    sulfuric acid in it, you wait for it to be
  • 34:13 - 34:19
    hot enough and that's all, basically. Just
    throw your chip in it and you're done.
  • 34:19 - 34:25
    Just wait 10 minutes and that's all. So
    again, if you want to do it, just do it
  • 34:25 - 34:30
    because it's fun, but use protections
    because it's very dangerous. Okay, well,
  • 34:30 - 34:37
    here is the results. I put a real CAN
    transceiver here, and this is the chip you
  • 34:37 - 34:43
    have in the nitro OBD 2 dongle. Some of
    you, you will recognize the basic
  • 34:43 - 34:47
    structure of a small microcontroller.
    Here, you have the CPU logic, here you
  • 34:47 - 34:55
    have the memory banks and some glue logic
    there. And that's pretty much all you have
  • 34:55 - 35:01
    there. The interesting thing is that, this
    does not fit into this. So definitely,
  • 35:01 - 35:10
    there is no CAN transceiver in the Nitro
    OBD 2 dongle. The other thing I would like
  • 35:10 - 35:18
    to show is if you look at this, we said
    before that the Nitro OBD 2 had to contain
  • 35:18 - 35:23
    a database for all authentication
    algorithms. All the way to reprogram any
  • 35:23 - 35:29
    car on the market and so on. And this is
    all the flash you have inside. I was
  • 35:29 - 35:34
    expecting at least a big chip of flash,
    but there is nothing here. So basically,
  • 35:34 - 35:42
    it just looks like a tiny microcontroller,
    like an Arduino or something like this.
  • 35:42 - 35:50
    But I really wanted to know what chip it,
    was so we have a game at the office, it
  • 35:50 - 35:56
    was looking for Waldo, and because the
    chip manufacturer like to write chip
  • 35:56 - 36:04
    reference inside their chip, and, well,
    there is something here. If you look at
  • 36:04 - 36:08
    the chip, the big magnification power, you
    will see this and this is the chip
  • 36:08 - 36:14
    reference. Unfortunately, I could not find
    any reference on the internet about this
  • 36:14 - 36:19
    chip. I asked a few friends on Twitter and
    so on, but nobody could find it, which
  • 36:19 - 36:24
    means, well, I don't know, this is not a
    big chip, very well-known. If you know
  • 36:24 - 36:30
    what it is, just tell me, send a mail or
    whatever and take the microphone during
  • 36:30 - 36:35
    the question answer session, it will be
    nice. So, just to sum up this part, this
  • 36:35 - 36:41
    dongle is very nice but there is no CAN
    communication, does not contain any CAN
  • 36:41 - 36:48
    transceiver, it has not enough CPU power
    to emulate a CAN transceiver in full
  • 36:48 - 36:54
    software, and the most important thing is
    that it has no flash in it to contain the
  • 36:54 - 36:59
    database, you know, to reprogram any
    engine and so on. But the links are
  • 36:59 - 37:04
    blinking very well, so, yeah. If you
    really want to reprogram your car, use
  • 37:04 - 37:24
    something else. Thank you. Applause I
    would like to invite all of you, if you
  • 37:24 - 37:30
    are interested in car hacking, to try and
    put some OBD cable into your car because
  • 37:30 - 37:36
    it's very easy. You just have to pull a
    panel to get access to your OBD port. You
  • 37:36 - 37:41
    will just need a Raspberry Pi, CAN shield
    and a cable and that's pretty much all you
  • 37:41 - 37:48
    need. Just a few words: so you don't need
    to take anything apart, so it's pretty
  • 37:48 - 37:55
    easy, you can do many interesting things
    just by using the OBD2 port of your car,
  • 37:55 - 38:01
    like fuzzing and so on. But please be
    careful, you can hurt yourself or break
  • 38:01 - 38:05
    your engine if it's running, so if you do
    some fuzzing, please stop the engine
  • 38:05 - 38:11
    before.
    P1kachu: Because as you saw at the
  • 38:11 - 38:17
    beginning, I was actually recording CAN
    data or querying stuff while I was
  • 38:17 - 38:23
    driving, which was the stupidest thing I
    did from the hole analysis. I was able to
  • 38:23 - 38:30
    disengage ABS by fuzzing, too - stuff like
    this - because they have some systems that
  • 38:30 - 38:36
    if they receive too many invalid kind of
    messages, they will just shut off, so I
  • 38:36 - 38:40
    was able to disengage stuff like this, so,
    yeah, if you are doing stuff like this,
  • 38:40 - 38:46
    just don't drive while doing it, for
    example. That's the kind of stupid mistake
  • 38:46 - 38:53
    you do when - or disable the airbags.
    Guillaume: That's very important.
  • 38:53 - 38:59
    P: You never know.
    G: Well, thank you again, and, yeah, if
  • 38:59 - 39:03
    you want to speak with us, you're more
    than welcome. Thank you!
  • 39:03 - 39:15
    applause
    Herald Angel: Thank you deep guys, I could
  • 39:15 - 39:18
    normally skip the car hacking talks. This
    time it was really amusing and I'm happy
  • 39:18 - 39:24
    that I didn't do that. We have a lot of
    time for questions, if you want to line
  • 39:24 - 39:28
    up, there's one over there or two of
    there, one over here and one over there.
  • 39:28 - 39:36
    Are there questions from the audience?
    Signal angel?
  • 39:36 - 39:39
    Signal Angel: So, people on the stream are
    wondering where they can find your
  • 39:39 - 39:43
    software and whether you contributed any
    signals you found to the open DBC project
  • 39:43 - 39:47
    that is collecting signals from the CAN
    bus.
  • 39:47 - 40:00
    P: I haven't really heard about this -
    yet. So right now, not that much, but I
  • 40:00 - 40:07
    will take a look at this after this. Sorry
  • 40:07 - 40:12
    Herald Angel: Mic 1.
    Q: I was wondering you try to reverse
  • 40:12 - 40:19
    engineer to get into the secure mode so
    that you can access all the issues. You
  • 40:19 - 40:22
    want to... we reverse engineer this
    challenge/response authentication.
  • 40:22 - 40:25
    P: Yes.
    Q: Why does he not try to reverse engineer
  • 40:25 - 40:28
    the diagnostic software that is used by
    the dealers?
  • 40:28 - 40:36
    P: Because this infringe, we call this
    valise, like luggage, and it costs if I
  • 40:36 - 40:42
    recall correctly about 5,000 Euros by car
    manufacturer. So we went to a garage and
  • 40:42 - 40:47
    asked the guy "Can you lend us your
    valise?" and he just laughed at us because
  • 40:47 - 40:54
    no he didn't wanted to but there are some
    partnership you can have. [There] is a
  • 40:54 - 41:00
    group of manufacturers that offer that
    kind of information if you pay every month
  • 41:00 - 41:05
    a very huge sum of money.
    Q: [...] pay 6 Euros and can be used for
  • 41:05 - 41:11
    an hour.
    P: I haven't heard of it I just saw a big
  • 41:11 - 41:15
    numbers and I told myself, okay, I find
    another way.
  • 41:15 - 41:19
    Herald Angel: Microphon 3.
    Q: A great presentation. Thank you very
  • 41:19 - 41:23
    much. I was just wondering, how much more
    work is needed to actually control your
  • 41:23 - 41:37
    car with an Xbox controller? Laughter
    Applause
  • 41:37 - 41:45
    P: I was asked this question before. Not
    that much Laughter if you find the right
  • 41:45 - 41:53
    guys with the right amount of knowledge.
    The idea that you'll get, of course. You
  • 41:53 - 41:59
    have to find a way to control the car from
    the CAN bus which is not something that
  • 41:59 - 42:05
    easily done. Because for all I know right,
    now the CAN bus I was only used for
  • 42:05 - 42:12
    broadcasting information not really using
    this information for real-time data. We
  • 42:12 - 42:17
    actually tried to find some way to know
    how the ECU's interact with each other
  • 42:17 - 42:22
    with Young's car. So the idea was that we
    go to a field, I am on the passenger seat,
  • 42:22 - 42:28
    and he would just tell me "okay try to
    find the ABS ECU I will brake very hard"
  • 42:28 - 42:33
    so he was driving fast breaking. I was
    just checking which ECU would actually
  • 42:33 - 42:36
    send something different and after we've
    tried to recreate some messages,
  • 42:36 - 42:39
    but without a lot of luck.
    So from the CAN bus I don't think
  • 42:39 - 42:46
    that's quite possible. But they did it.
    Nissan did it like two months ago with the
  • 42:46 - 42:52
    GTRC. They created a Nissan GTR that is
    actually controlled by a gamepad
  • 42:52 - 42:58
    controller. But they have a full robot in
    it just controlling the steering wheel and
  • 42:58 - 43:02
    pedal so it's quite easy when you have
    money. Laughter
  • 43:02 - 43:05
    Herald Angel: Microphone 2 in the back,
    please
  • 43:05 - 43:11
    Q: Okay, hi nice talk. Thank you. First of
    all don't play around with the Airbags
  • 43:11 - 43:16
    please. I tried to reverse engineer my old
    Mitsubishi - I'm a passionate Mitsubishi
  • 43:16 - 43:26
    driver - please don't try mine. You get
    hurt, really. So my real question is: Did
  • 43:26 - 43:33
    you try to reverse engineer cars with an
    older bus then OBD, ever? Because mine is
  • 43:33 - 43:38
    from the 90s.
    P: Yeah, No I didn't because I had my and
  • 43:38 - 43:44
    full already with the with OBD. To be
    honest before this analysis I hadn't
  • 43:44 - 43:50
    touched any kind of bus or any kind of car
    systems ever. So I was really discovering
  • 43:50 - 43:55
    everything from scratch. So I just focused
    on the OBD port and the CAN bus and stuff
  • 43:55 - 44:00
    like this. But I know there are a lot of
    different stuff Valasek and Miller already
  • 44:00 - 44:06
    did different kind of attacks on the Jeep
    for example of the Prius with different
  • 44:06 - 44:12
    buses. So I ought to be looking at them
    but right now no I didn't do anything else
  • 44:12 - 44:15
    from the OBD or CAN bus.
    Herald Angel: Is there another question
  • 44:15 - 44:25
    from the internet? Okay otherwise mic 1.
    Q: Sorry, just one sentence. I guess
  • 44:25 - 44:29
    because of the Mitsubishi stuff you've
    mentioned the car your parents or so I
  • 44:29 - 44:33
    guess we should talk about the Lancer.
    Okay?
  • 44:33 - 44:37
    P: Okay. laughter
    Herald Angel: Mic 1.
  • 44:37 - 44:44
    Q: Thank you. There are some other buses
    like EtherCAT or Flex Ray in other car
  • 44:44 - 44:51
    manufacturers. What about hacking them? So
    you also said, you already said that maybe
  • 44:51 - 44:58
    you will try it in the future?
    P: Well quite the same answer also. I read
  • 44:58 - 45:04
    the car CAN books, so I just have a few a
    little grasp of other kind of protocols
  • 45:04 - 45:08
    and other stuff like this. Right now I
    didn't do anything. I am planning on
  • 45:08 - 45:15
    trying different new buses but right now
    just the - I haven't touched them I can't
  • 45:15 - 45:20
    answer and more honestly than this - I don't know.
    G: The other thing is that on the OBD 2
  • 45:20 - 45:30
    port you just have access to the CAN bus
    and as far as I remember the Flex bus is
  • 45:30 - 45:37
    internal and dedicated to high speed
    buses. So it's not as easy to plug
  • 45:37 - 45:43
    yourself onto this bus because
    you have to open your car and take things
  • 45:43 - 45:49
    apart and stuff like this. But it's
    definitely interesting to look at it also.
  • 45:49 - 45:53
    P: Sorry.
    Herald Angel: Okay, another question from
  • 45:53 - 45:59
    the 3, please.
    Q: Oh it's 4. Okay, so just a little
  • 45:59 - 46:04
    hint. OBD2 is actually just half of the
    fun so you should definitely remove your
  • 46:04 - 46:10
    car radio and check if there's a CAN bus
    behind that I know for BMW have it and
  • 46:10 - 46:15
    there of course it's much easier to
    control of all of the fancy buttons that
  • 46:15 - 46:20
    you have in your car. Like window and
    wipers and all that stuff because that's
  • 46:20 - 46:25
    completely unencrypted and so can simply
    listen on this and also send your own
  • 46:25 - 46:28
    commands.
    P: Okay, so, check the other CAN bus in
  • 46:28 - 46:30
    the car, right?
    Q: Yeah it's I mean it's maybe the car
  • 46:30 - 46:36
    radio, because you don't have to cut
    anything just plug it off, take an adaptor
  • 46:36 - 46:43
    and put your own bias on that.
    P: Thank you. Maybe another talk.
  • 46:43 - 46:47
    Herald Angel: And yet we have one question
    from the internet now and then the 1.
  • 46:47 - 46:51
    Signal Angel: So there's a person from the
    darknet who would like to leak you
  • 46:51 - 46:56
    original diagnostic software for that kind
    of hardware and the person wants to know
  • 46:56 - 47:01
    whether you would be interested in that?
    P: I haven't heard the end of the sentence
  • 47:01 - 47:04
    but the beginning.
    Signal Angel: Would you be interested in a
  • 47:04 - 47:20
    software leak of original diagnostic
    software? laughter Actually you don't have to
  • 47:20 - 47:24
    answer that because the person is outside
    but if you want to say something you can.
  • 47:24 - 47:30
    P: Coughing You have my Twitter.
    Herald Angel: Yeah question please.
  • 47:30 - 47:37
    Q: First thank you for your very inspiring
    speech luckily or unfortunately I don't
  • 47:37 - 47:41
    own a car myself otherwise... Well, what I
    wanted to say was, you now have your hands
  • 47:41 - 47:47
    on a few Volkswagens. If you could choose
    a car yourself what brand would you like
  • 47:47 - 47:54
    to monitor.
    P: Ah, to monitor. Actually, what I wanted
  • 47:54 - 47:59
    but I haven't taken the time right now,
    was to play with the Lancer, the big mother's
  • 47:59 - 48:03
    bus, because it has UConnect and as far as
    I remember it was one of the attack
  • 48:03 - 48:10
    vectors Miller and Valasek used in the past,
    so I think I would go with the one with
  • 48:10 - 48:16
    full features everywhere and remove parts
    to be able to get to the fun stuff. So I
  • 48:16 - 48:22
    would take one with a lot of electronics,
    not too much, because it's expensive, but
  • 48:22 - 48:27
    at least a bit of electronics, so that I
    could remove stuff and do interesting and
  • 48:27 - 48:30
    nice stuff.
    Herald Angel: Thank you okay and another
  • 48:30 - 48:35
    one over there.
    Q: Hi thank you and I enjoyed your talk. I
  • 48:35 - 48:42
    think I read you already online or I read
    something about doing that what what you
  • 48:42 - 48:48
    have done. It's really fun just a few
    correction to the last part - the
  • 48:48 - 48:55
    transceiver does not do any error
    correction it's just a transceiver. And
  • 48:55 - 49:02
    there are chips actually available which
    have a cortex m0 and D transceiver on chip
  • 49:02 - 49:04
    for few bucks.
    P: Okay.
  • 49:04 - 49:11
    Q: So those chips exist and are used in
    automotive and just for your fun for next
  • 49:11 - 49:18
    year: choose the right car just depending
    that question from that girl. There are
  • 49:18 - 49:26
    car manufacturers who can do networking
    and who can do and your... let's say you
  • 49:26 - 49:33
    are candy with the right brands. Like the
    Italian.
  • 49:33 - 49:37
    P: Thank you very much. I have way more
    information that when I started this talk
  • 49:37 - 49:45
    which isn't much what I expected at first.
    Herald Angel: I would say final question
  • 49:45 - 49:48
    Mic 1.
    Q: Very small question but did you
  • 49:48 - 49:52
    consider lifting the front wheels instead
    of starting the engine to make it steer
  • 49:52 - 50:04
    easy. Yes I put it on parpar - the block
    of cement you find - but it's not the
  • 50:04 - 50:11
    easiest part. What would be easier what
    was done was to put cardboard under the
  • 50:11 - 50:16
    wheels to make it easier with a little bit
    of oil to turn but here to be able to play
  • 50:16 - 50:22
    without the engine turned on and with
    assistic direction. Kind of putting the
  • 50:22 - 50:27
    car on a car lift would be the safest way.
    Because just putting the front wheels I
  • 50:27 - 50:31
    wouldn't see anything from the windscreen
    which would be a bit disappointing.
  • 50:31 - 50:38
    laughter And yes I indeed I plan to put
    it on a car lift soon.
  • 50:38 - 50:42
    Herald Angel: Anyone who didn't get the chance
    to pass the question on stage, I'm sure that
  • 50:42 - 50:46
    the speaker's can be approached next to
    it. Thank you again for being here and
  • 50:46 - 50:48
    drift on.
    P: Thank you very much.
  • 50:48 - 50:49
    G: Thank you.
  • 50:49 - 50:56
    Applause
  • 50:56 - 51:09
    34C3 postroll music
  • 51:09 - 51:18
    subtitles created by c3subtitles.de
    in the year 2020. Join, and help us!
Title:
34C3 - How to drift with any car
Description:

more » « less
Video Language:
English
Duration:
51:18

English subtitles

Revisions