jglim / UnlockECU

Free, open-source ECU seed-key unlocking tool.
MIT License
255 stars 55 forks source link

UnlockECU

Header Image

Free, open-source ECU seed-key unlocking tool.

Getting started

Try it out here in your browser instantly, or download a local, offline copy:

Latest Offline: Select the most recent build from the automated builds, then download the zip artifact.

Stable Offline: Download and unarchive the application from the Releases page, then run the main application VisualUnlockECU.exe.

Ensure that you have .NET Desktop Runtime 5.0.0. , available from here.

License

MIT

This application does not include or require copyrighted or proprietary files. Security functions and definitions have been reverse-engineered and reimplemented.

When interacting with this repository (PR, issues, comments), please avoid including copyrighted/proprietary files, as they will be removed without notice.

Features

Demo

https://user-images.githubusercontent.com/1116555/156387740-27e43a22-e892-4a3a-b024-f9a2f918a50d.mp4

Adding definitions

Definitions specify a seed-key function for a specific ECU and security level. The input seed's size, output key's length as well as the security provider must be specified. Some security providers require specific parameters to operate.

Here is an example of a definition:

{
  "EcuName": "ME97",
  "Aliases": [],
  "AccessLevel": 1,
  "SeedLength": 2,
  "KeyLength": 2,
  "Provider": "PowertrainBoschContiSecurityAlgo1",
  "Origin": "ME97_ME97_13_10_01_J",
  "Parameters": [
    {
      "Key": "ubTable",
      "Value": "FCAD1E5941992FCD",
      "DataType": "ByteArray"
    },
    {
      "Key": "Mask",
      "Value": "4300",
      "DataType": "ByteArray"
    }
  ]
}

Currently, these security providers are available:

The definitions file db.json should be found alongside the application's main binary.

Notes

Contributing

Contributions in adding security providers and definitions are welcome.