Wegfahrsperre (PATS) Aufbau und Funktionsweise

  • Also hab mich mal für die Wegfahrsperre in meinen Mondi interessiert. Hab ja jetzt das BCM getauscht hab aber vorher mal das MSG und mein BCM ausgelesen. Im MSG steht die Seriennummer vom ABS drin hab dann mal nach den Bits vor der Seriennummer gesucht und bin dann irgendwann fündig geworden im BCMii.
    Also wir beim WFS anlernen der Syncode vom BCMii im MSG übertragen und die Seriennummer von ABS ins MSG eingetragen.

    Einmal editiert, zuletzt von Snoozo (17. Juni 2025 um 08:11)

  • Klingt interessant, aber kannsr Du auch etwas mehr erzählen/zeigen? Für eine fundierte Diskussion sind die Infos leider zu dürftig.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Die Zahl rechts 190381 sind die letzten 6 Stellen der ABS Seriennummer die Nullen werden weggelassen. Die Seriennummer kann nur mit einem Tester ausgelesen werden

    Das Schwarzmarkierte ist der Synccode der in meinen BCMii steht

    In der BCMii ist der Rot markierte Text der Syncode

    MSG DCM3.5

    BCMii

  • Gibt doch mal bitte die vollständigen Daten des PCM (was Du MSG nennst, ein Kürzel was ich mal als Motorsteuergerät interpretriere) und ABS und BCM (wenn Schlüssel-Fahrzeug) oder RFA (wenn Keyless-Fahrzeug), sowie den Dumps die Dir vorliegen und wie Du diese erstellt hast. Um so eher kann man das mit anderen vergleichen um Zusammenhänge zu verfizieren.

    Wenn Du den Sync-Code erkannt hast dann müsste der ja auch im dritten Modul des PATS zu finden sein.

    Ich kenne den Anlernalgorithmus nicht, hatte mal vor langer Zeit mit jemandem zusammen versucht die Funktionen davon im BCM Code zu Disassemblen und zu verstehen, was in einem RTOS echt ein mühsames Geschäft ist, weil praktisch jede kleine Subfunktion über Mailboxen voneinander entkoppelt wird, man findet nur wenig "linearen" Code, meist zu wenig um die Gesamtfunktion zu verstehen.

    Klae ist nur das es beim PATS immer einen Herrn im Ring gibt, das dürfte das BCM sein.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Mein Fahrzeug ist kein Keyless Fahrzeug hat also nur BCMii, PCM und ABS.

    Gelesen hab ich vom PCM (BG91-12A650-SC) und BCMii(BG9T-14073-CH) mit dem Xprog.

    Also die Schlüssel kann ich nicht auslesen die Ringantenne ist alround.

    In der Zip datei sind die beiden EEproms von BCMii und PCM drinn

    ABS Seriennummer hab ich kein Bild gemacht hatte ich mir nur aufgeschrieben

  • Und Du meinst das die ABS-Seriennummer nicht im Dump steht, nur auf dem Gehäuse? Das würde wenig Sinn machen, außer es handelt sich nur um eine Fabrikationsnummer.

    Ich habe auch den XProg, aber das ist ja eigentlich garnicht entscheidend. Entscheidend ist ja wie man an die Daten ran kommt? Wie hast Du es denn damit gemacht? Vermutlich Modul ausgebaut, gehöffnet und direkt Kontakte mit dem Programmer hergestellt? Das ist natürlich extrem aufwändig und im Fall des ABS auch invasiv, da dessen Deckel kaltverklebt ist, sich auch nicht mit Hitze sondern nur stumpfer Gewaltandwendung lösen lässt. Ich habe mehrere ABS-Module hier, vielleicht könnte ich die auf dieselbe Art wie Du mal auslesen.

    Was mir übers PATS bekannt ist, ist ja das jeweils 3 Module miteinander "gepaired" werden und nur in dieser Kombination ein Motorstart möglich ist. Der Motorstart selbst übernimmt das PCM und hier wird sicher auch die Startblockade implementiert. Das BCM hält vermutlich die Master-Funktionen um das PATS zu reprogrammieren. Dazu nimmt ein Tester Kontakt mit dem BCM auf, ruft die jeweilige Funktion auf und das BCM übernimmt die Regie. Es wird dann wohl die anderen Module ebenfalls in einen entsprechenden Zustand versetzen und z.B. deren Sync-Code löschen bzw. überschreiben. Die Sync-Code Generierung geschieht vermutlich ebenfalls im BCM. Wie dieser Code generiert wird ist mir nicht bekannt, aber ohne dieses Wissen wird es schwierig.

    Mein Anliegen damals war, ein anderes ABS einzubauen und ihm den Sync-Code des alten zu geben. Also wie bei einem Modul-Tausch, nur eben nicht mit komplettem zurückschreiben der Ursprungssoftware (das hätte das verbesserte ABS ja wieder zu einem 0815 gemacht), sondern eben nur den PATS relevanten Teil. Die Frage ist, ob es so einfach geht und ob die Module nicht beim Start den vom BCM erhaltenen Sync-Code mit irgendwas überprüfen?

    Ford bot ja auch mit IDS schon die Möglichkeit defekte Module zu ersetzen, natürlich hardwaregleich und fabrikneu. Versuchte man ein gebrauchtes damit zu verwenden scheiterte die Reprogrammierung. Ansonsten hat die Funktion mutmaßlich selbst nur einen Dump des EEPROM/Flash vom Modul durchgeführt (vermutlich lokal auf der Festplatte zwischengespeichert) und anschließend in das neue Modul wieder hochgeladen. Im Idealfall erkannte das PATS dann keinen Unterschied zu vorher. Eine Seriennummern-Komponente kann da ja eigentlich nicht im Spiel sein, denn sonst würde die interne Seriennummer nicht zu der auf dem Ersatzmodul passen. Dann hätte Ford das sicher anders konstruiert, z.B. erst Modul wechseln und dann halt einfach alle Schlüssel neu programmieren.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Also ich hab das PCM und BCM ausgebaut geöffnet und ausgelesen direkt an den XProg. Die ABS Seriennummer hab ich mit einem alten Bosch Esi 1 Tester ausgelsen über ABS und dan Identifikation da Stand dann die Seriennummer drinn.

    Kann leider die PDF datei nicht hochladen kommt immer 413 Request Entity Too Large dabei sind es nur 2 MB auch als zip geht nicht

    Hab mal den ausschnitt als Zitat eingefügt

    Einmal editiert, zuletzt von Snoozo (17. Juni 2025 um 14:47)

  • Soweit mir bekannt gibt es folgende Grundfunktionen (auf Layer 8 ;)) :

    1. "Ignition Key Programming"
    2. "Ignition Key Erase"
    3. "Module Initialization"

    Mit Funktion 1 fügt man neue, weitere Schlüssel dem PATS System hinzu. PATS kann bis zu 8 Schlüssel verwalten, sprich es sind so viele Speicherplätze in den Modulen für Schlüsselcodes vorgesehen. Zum hinzufügen eines neuen Schlüssels wird lediglich dieser neue benötigt.

    Da es auf Bedienerebene (möglicherweise sogar auf Programmebene) keine Möglichkeit gibt einen einzelnen Schlüssel zu löschen, bleibt einem für den Fall das einer abhanden kommt nur sämtliche Schlüssel mit der Funktion 2 zu löschen und alle neu zu programmieren.

    Das reine löschen aller Schlüssel mit Funktion 2 wäre natürlich sinnlos. Diese Funktion ist nur die Vorbereitung zum neuprogrammieren von mindestens 2 Schlüsseln mittels Funktion 1. Erst dann wird die Wegfahrsperre deaktiviert (DTCs löschen natürlich). Ob dies nun die alten oder komplett neue Schlüssel sind ist dabei egal.

    Demnach müsste Funktion 2 ja alle Schlüssel aus allen Modulen entfernen. Der Vorgang kann z.B. auch mit FORScan durchgeführt werden. Dabei wird vermutlich eine sichere Diagnosesitzung (Typ 0x27) mit dem BCM hergestellt, die Schlüssellöschungsfunktion aktiviert und diese macht dann alles weitere. Das ist nur Spekulation, es kann auch alles ganz anders sein!

    Beim programmieren des Schlüssels wird ebenfalls eine sichere Verbindung mit dem BCM hergestellt und die Anlernprozedur gestartet. Der Empfänger des Transponders im Schlüssel (also nicht der aktive Sender bei Keyless-Schlüsseln) muss dabei in der Nähe vom Zündschloss sein. Dafür haben Keyless-Fahrzeuge extra einen kleinen Schacht (eigentlich für den Notfall, wenn der Transponder nicht mehr funktioniert) wo sonst das Zündschloß sitzt. Aber auch bei schlüsselgestarteten Fahrzeugen befindet sich hier der RFID-Empfänger welcher wiederum direkt mit dem BCM verbunden ist.

    Die Prozedur geht davon aus das ein Schlüssel im Lenkradschloß steckt mit dem man zumindest die Stromzufuhr für die Module hat aktivieren können, ohne die ist ja eine Programmierung nicht möglich (hier ist das kleine Henne/Ei Problem von Keyless versteckt). Für den nachfolgend zu programmierenden Schlüssel geht die Prozedur davon aus das der zuvor programmierte noch im Schloß steckt und auf Position "1" steht.

    So wird man nach dem Start der Funktion 1 aufgefordert den Schlüssel auf Stellung "0" (OFF) zu drehen und zu entfernen, den neuen einzusetzen und mit diesem dann wieder auf Position "1" zu gehen. Sobald man die Zündung abgeschaltet hat beginnt ein Timer von 10 Sekunden. Schafft man es innerhalb dieser Zeit nicht den neuen Schlüssel einzustecken und auf Stellung "1" zu drehen, wird der Vorgang abgebrochen. Das BCM wird nur den zuletzt empfangenen Schlüsselcode beim Wechsel von Position "0" auf "1" auslesen und speichern. Hat man es geschafft, bestätigt man mit "OK" und der Schlüssel ist programmiert. Das ganze macht man für zwei Schlüssel und die Wegfahrsperre ist überwunden.

    Das PATS hat eine Funktion um die Anzahl der aktuell programmierten Schlüssel abzufragen, für gewöhnlich sind das 2. Das wird auch immer in den Menüs angezeigt.

    Wichtig: Programmiert man alle Schlüssel neu, muss man anschließend die Funktion 3 "Module Initialization" durchführen um den Immobilizer entgültig weg zu bekommen.

    Und damit nicht jeder damit rumspielen kann wie er will, hat Ford sich selbst noch als "man-in-the-middle" reingesetzt und die Sache mit den In/Outcodes eingebaut. Dieser Code wird einmal benötigt um die Funktion 1 überhaupt aufrufen zu können. Das und noch eine Zwangswartezeit von 12 Minuten beim aktivieren des sicheren Zugangs zum BCM sollte verhindern das Diebe das PATS all zu einfach zurücksetzen und das Fahrzeug mit neuen Schlüsseln ausstatten können. Zuerst noch mit einem In/Out-Code den man sich quasi über das interne Ford-Portal erstellen lassen konnte (gib Incode ein, erhalte den Outcode und mach damit was Du willst, ohne zeitliche Begrenzung). Ab dem Facelift wurde das System geändert und diese Kommunkation ging nur noch von der IDS-Software direkt aus zu Ford und zurück. Man benötigte also während der Programmierung, Live einen Zugang zum Ford-Netzwerk. Das machte es erstmal unmöglich Codes auszuschleusen, hierzu musste man den Schritt selbst "ausbauen" bzw. simulieren. Wie auch immer das den FORScan Entwicklern gelungen ist, sie haben es angeblich geschafft.

    Und, das sei noch gesagt, egal welche Software man nutzt, wie auch immer sie heißt und daher kommt, dieser Vorgang ist immer gleich, verwendet auch die gleichen Begriffe, einfach weil sie in der Firmware vom BCM so und nicht anders vorgesehen sind. Der Tester fungiert hier nur als "Bedienkonsole", er kann die Abläufe ansich aber nicht ändern. Daher wird man auch nicht auf noch so teuren Testern Funktionen wie das löschen einzelner Schlüssel, oder das nachprogrammieren einzelner Module im PATS finden. Um sowas zu machen muss man schon sehr genau wissen wie das intern alles funktioniert. Alles andere ist nur eine bessere Emulation von dem was Ford mit seinem IDS/FDRS macht.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Es wäre natürlich mal ultraspannend einen CAN-Log (HS und MS) von einem kompletten Vorgang (geteilt nach den Einzelschritten) anzufertigen. Man bräucht nur jemand mit entsprechendem Logger und dem Mut dazu :)

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Also bei meinem Fahrzeug hab ich das neue BCM eingebaut hab dann die Asbuilt Daten aufgespielt danach die Schlüssel gelöscht und auch meine angelernt danach hab ich erst die Modul initialisierung durchgeführt.

    Can-Log mal sehen ob ich zeit finde dafür.

  • Also bei meinem Fahrzeug hab ich das neue BCM eingebaut hab dann die Asbuilt Daten aufgespielt danach die Schlüssel gelöscht und auch meine angelernt danach hab ich erst die Modul initialisierung durchgeführt.

    Ja, genau so macht man es ja auch, selbst bei Ford. Es gibt wohl noch eine Variante die löschen und neuanlernen in einer Prozedur vereint. Die Variation dabei ist die Art die neuen Schlüssel anzulernen. Im Prinzip ist das aber immer dasselbe, man steckt die Schlüssel ab einem Startzeitpunkt nacheinander ins Schloß und dreht auf Position 1 ("ACC") und zurück. Das ganze muss man im richtigen Timing machen, damit es akzeptiert wird.

    Es gibt ja auch die Möglichkeit die Anlernprozedur ohne Programmiergerät durchzuführen, indem man mit einem Schlüssel ich glaube 6mal von "0" (OFF) auf "1" (ACC) und zurück dreht. Danach gibt es einen Quittierton und dann lernt man die Schlüssel mit fast derselben Prozedur an, drückt aber anstelle "OK" auf dem Tester dann einen Knopf auf der Funkvernbedienung.

    Das alles gibt uns die Sicherheit das rein das BCM für die Wegfahrsperre zuständig ist. Die Nebenmodule ABS, PCM, RFA dienen nur der zusätzlichen Sicherheit. Das finde ich wichtig, weil z.B. im Original Ford IDS ja angezeigt wird wo die Kontroll-Funktionen vom PATS ablaufen und das könnte ja auch das PCM sein, hier mal ein Screenshot aus einer anderen Sitzung mit einem anderen Fahrzeug:

    Beim Keyless ist die Sache noch ein Stückchen anders weil es praktisch nur die Schlüsselpositionen 0 (OFF) und 2 (ON) gibt, die Stellung 1 (ACC) hat man nicht. Jedoch verhindert die Wegfahrsperre das man mit einem ungültigen Schlüssel auf 2 kommt, ergo sieht man im IPC nur die Meldung "Wegfahrsperre aktiv" und sonst passiert nichts. Hier muss man mit anderen Mitteln dafür sorgen das die benötigten Module "aufwachen" bzw. nicht mehr einschlafen. Das geht entweder direkt bei CAN-Bus (über OBD) oder überbrücken des Battery-Safer Relays.

    Ich habe auch nochmal meine alten Reverse-Engineering Unterlagen vom BCM rausgekramt falls da noch was interessantes dabei sein sollte. Muss ich aber noch in Ruhe durchackern.

    Das PDF ist interessant, da kann man weitere Erkenntnisse draus gewinnen. Was es uns verrät ist, das der SYNC code 8 Byte lang ist, von der ABS Hardware-ID die letzten 6 Ziffern im Verfahren benötigt werden und das es das BCM ist, welches über IMMO ON oder IMMO OFF entscheidet. Mehr aber auch nicht. Das China-Platinchen für 5€ ist ein günstig aufgebauter CAN-Filter, aufgebaut vermutlich mit einem STM32 Mikrocontroller und den Transceivern drumherum. Der soll dem BCM vorgaukeln das am Fahrzeug noch alles ist wie immer, selbst wenn PCM oder ABS (RFA evtl. auch...) getauscht wurden. Dazu wird der Filter mit dem SYNC Code und der ABS-ID programmiert und simuliert diese dann fortan, indem es die Antworten dieser Module, bei Anfrage durch das BCM abfängt und durch eigene Antworten ersetzt, oder sogar die Anfragen an die Module selbst schon rausfiltert. Wie man an SYNC Code und ABS-ID kommt beschreibt die kleine Anleitung ebenfalls nicht. Ist aber auch egal.

    Wichtig für uns ist, das hier die Kommunikation zwischen den Modulen über den HS-CAN Bus läuft. Da die Module bei jedem Versuch das Fahrzeug in den Startzustand zu versetzen miteinander reden müssen, bietet das die Chance die Kommunikation zu belauschen. Hier müsste ja dann der SYNC Code zu finden sein. Da dieser ja 8 Byte lang ist würde sogar eine Botschaft auf einer CAN-ID dazu ausreichen. Wenn man also seinen SYNC Code kennt, findet man die entsprechende Botschaft vermutlich sehr schnell über einen CAN Log.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Und noch ein paar Fakten die ich zusammengetragen habe aus meinen Unterlagen:

    • Die sog. Schlüssel-Codes (ID des Zündschlüssels) werden nur im BCM, bzw. bei Fahrzeugen mit Keyless-Go zusätzlich noch im RFA abgelegt. Diese liegen nicht im ABS oder PCM, dort wird nur der SYNC-Code gespeichert.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Wunderbar! Die JTAG-Pins für den direkten Zugriff auf den Chip hatte ich schonmal identifiziert:

    Aber um diese Positionen den Header-Pads zuordnen zu können hätte ich den Chip auslöten müssen, womit ich aber die Platine technisch unbrauchbar gemacht hätte weil so einen BGA-Chip wieder sauber drauf zu bekommen bedarf Spezialequipment und viel Erfahrung. Nun hat jemand anderes das getan, klasse und ich weiß auch endlich ein paar Belegungen des von mir schon entdeckten Headers: https://mk4-wiki.denkdose.de/artikel/abs/te…rt#die_bauteile

    Auf der Platine ist ja auch noch ein externes EEPROM (ST 9504W). Dieses hatte ich bei meinem Bastel-ABS schonmal ausgelötet und ausgelesen.

    Die Firmware selbst bekommt man ja, wie praktisch alle anderen auch, kostenlos von Ford, passend zu jedem Hardware-Typ. Was da dann noch für ein vollständiges Abbild fehlt ist der Bootloader des Mikrocontrollers (ein TMS470R1VF478), aber der ist auch nur wichtig wenn man den Chip extern komplett ersetzen oder reflashen möchte.

    Hier ein Schema des Chips und seiner integrierten Komponenten:

    Und hier die Memory-Map:

  • Die Nebenmodule ABS, PCM, RFA dienen nur der zusätzlichen Sicherheit.

    Ich habe mich gefragt, welche Funktion das ABS Modul hat. Beim 2 mal durchlesen ist die Frage beantwortet.

    Aber, kann ein defektes ABS Modul das Starten des Motors verhindern?

    Erst 230 Tkm. Nachwuchs: Corsa F 1.5 Diesel (Leider kein passenden Fiesta Diesel gefunden)

    Einmal editiert, zuletzt von Mondeo2013 (19. Juni 2025 um 13:18)

  • Ich habe mich gefragt, welche Funktion das ABS Modul hat. Beim 2 mal durchlesen ist die Frage beantwortet.

    Aber, kann ein defektes ABS Modul das Starrten des Motors verhindern?

    Du meinst im Bezug auf PATS? Diesselbe wie das PCM (Motorsteuermodul).

    Und selbstverständlich verhindert ein elektronisch defektes ABS den Motorstart. Ebenso wie ein defektes RFA bei Keyless.

    Wie wir ja wissen verhintert es max. den START, läuft die Karre erstmal ist PATS aus, bis zum nächten Start.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Ich habe noch weitere Belege darüber gefunden wie das BCM mit den anderen Modulen kommuniziert. Leider findet man nicht viel zum Mondeo speziell, nur Ford allgemein und dort ist häufig nur ein weiteres Modul neben dem BCM involviet. Aber gehen wir davon aus das dies bei mehreren Modulen im PATS einfach immer dasselbe ist.

    • Bei erkennen einer Zündunganforderung fordert das BCM vom PCM die gespeicherte ID (was wir SYNC-Code nennen, ein Begriff den Ford so nicht verwendet) an und vergleicht sie mir der im BCM hinterlegten. Unklar ist noch ob diese im BCM einmalig oder pro Modul hinterlegt wird (was z.B. die mehrfache Auffindung im eingangs gezeigten Dump erklären würde)
      "PATS start request target data"
    • Das angesprochene Modul anwortet mit der ID (auch hier noch unklar ob gleich alle Module antworten oder es eine dedizierte Anfrage pro Modul gibt)
      "PATS status enable/disable target data"

    Das alles findet bei jedem einschalten der Zündung statt, müsste sich also über einen HS-CAN scan nachweisen lassen. Ich probiere mich da mal durch (Keyless, FL) und Snoozo Du für (Classic-Key, FL)? Die gefundenen Botschaften referenzieren dann mit ihren CAN-IDs und Inhalten auf Teile der Firmware im BCM und lassen sich sicher auch für eigene Versuche nutzen, z.B. um bei einem Modul die ID abzufragen. Da es hier ja nicht permanent geschieht, dürfte das BCM diese Botschaft aus meiner Sicht auch nicht zyklisch wiederholen, was es wiederum ermöglicht sich da rein zu hacken.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Go4IT 19. Juni 2025 um 08:46

    Hat den Titel des Themas von „Wegfahrsperre Aufbau“ zu „Wegfahrsperre (PATS) Aufbau und Funktionsweise“ geändert.
  • Habe gerade im Fahrzeug ein paar CAN-Logs gemacht. Dazu habe ich zwei Adapter am OBD über eine Y-Weiche angeschlossen, einen davon mit ELMConfig im "Sniffer-Mode" auf den HS-CAN, ohne Filter, direkt in eine Datei loggen lassen. Den anderen habe ich verwendet um die ein oder andere PATS Funktion von ForScan zumindest zu starten. Das ging ganz gut und die Ergebnisse sind für RevEng-Arbeiten gut genug und so einfach das ihn praktisch jeder ohne Spezialinstrumente auch durchführen könnte, den Sniff allemal.

    Mein Ziel ist es heraus zu bekommen wie man auf CAN-Ebene an die PCMID_C und die anderen PATS-Codes kommt und den "Gain Security Access" zum PATS durchführt.

    Jetzt arbeite ich gerade daran dafür einen hübschen, Web-basierten LogAnalyzer zu basteln, welchen ich dann auch ins Wiki stellen möchte, das kann man immer mal gebrauchen zum analysieren von CAN-Logs!

    Mal sehen was ich in den Daten so finde...

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

  • Da ich noch nicht viel mit dem PCM gemacht habe, wäre eine Liste von CAN-IDs hilfreich die eindeutig vom PCM erzeugt wurden.

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!