Skip to content

Feature : GT7 "B" Telemetry format #14

@SHWotever

Description

@SHWotever

Hi !

After a random contact message pointing out that if a "B" heartbeat was sent to GT7 another, longer, reply is retrieved. I did some investigations around it.

Turns out that the "IV" is not the same, but the base key is. After some short bruteforce (short as the new key was not that far) : 0xDEADBEAF is replaced by 0xDEADBEEF

The message has the same structure but adds 5 additional floats (316 bytes long in total).

Overall this takes place after the carcode :

public int CarCode;

public float WheelRotationRadians;
public float FillerFloatFB;
public float Sway;
public float Heave;
public float Surge;

I'm not sure yet what is FillerFloatFB, it's clearly direction related, maybe a lateral slip angle. This clearly is an extra bundle of "motion related" fields

I was hoping for a track id .... but ... no ... shame :D

Since lot of people got inspiration from your discoveries, including me I believe giving back my findings to you is the minimum I could do ;)

The only major struggle with that, just like Highlander there must be one. The first heartbeat wins (A/B), and the format can be only changed after the games stops sending telemetry after stopping sending the heartbeat for long enough. And since the crypto differs (length and key) cross compatibility across various software is tedious. I guess it has to be a choice.

I also tested other heartbeats (C ...) , this time it's a shorter message coming back I did not bothered trying to brute force it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions