ich habe mich seit kurzem mit einem neuen Spleen infiziert und hätte ein paar Fragen, um zu entscheiden, ob ich dahinter bleibe oder besser kalt dusche.
Ich möchte explizit ein Eprom mit der Bezeichnung P87C575EHPN auslesen.
Es ist ein 20 Pin mit einem 8051-basierten Mikrocontroller von Phillips.
Verbaut in einem Tempomaten-Steuergerät von Delphi.
Der Gedanke dahinter:
Das Verarbeiten des eingehenden Geschwindigkeitssignals zu beeinflussen und einen Schalteingang zu einem Tasteingang zu verändern.
Dies dann zB. einem Stc89c516rd (relativ kompatibel) aufzupielen und glücklich zu sein.
Ja, diese Signale ließen sich auch bereits vor dem Steuergerät beeinflussen, aber dann wäre es a kein Spleen und ich könnte wie gewohnt warm duschen...
Ich dachte an Ali´s TL866II mit Xgpro.
Nur, wie komme ich damit an die vielen Hexadezimalstellen in dem Ding?
Für günstigere Empfehlungen wäre ich natürlich dankbar.
Zu mir, beim Wissen und Erfahrungen endet es an den Pin´s der Chips.
Und ja, ich habe keine Ahnung, was ich da mache.
Aber nehmt mir bitte nicht gleich sämtliche Hoffnung.
Viele von euch haben sicherlich nicht anders angefangen.
ich habe mich seit kurzem mit einem neuen Spleen infiziert und hätte ein
paar Fragen, um zu entscheiden, ob ich dahinter bleibe oder besser kalt
dusche.
Dusche lieber kalt (wenn du hier schon so fragst).
Ein Tempomat ist ein /sicherheitsrelevantes/ Gerät im Auto, daran bastelt man nicht herum.
Man möchte sich nicht ausmalen, was passiert, wenn sich das Ding aufgrund von "gepatchter" Software plötzlich entscheidet, in der Tempo-30-Zone Vollgas zu geben. Oder am Zebrastreifen, über den gerade eine Schulklasse läuft.
Verbaut in einem Tempomaten-Steuergerät von Delphi.
Der Gedanke dahinter:
Das Verarbeiten des eingehenden Geschwindigkeitssignals zu beeinflussen
und einen Schalteingang zu einem Tasteingang zu verändern.
Um das Programm zu Ändern brauchst du seinen Quelltext. Der steht aber nicht in dem Chip drin, sondern ist geheimes Eigentum des Herstellers. Du kannst den Inhalt des Chips genau so schlecht in den Quelltext zurück umwandeln, wie einen Kuchen in sein Rezept und Zutaten.
Möglich wäre höchstens, den Maschinencode zu analysieren. Dafür braucht es allerdings sehr viel Erfahrung mit dem Maschinencode/Assembler dieses Prozessors und Detaillierte Kenntnisse der gesamten Schaltung. Das kann dir niemand im Rahmen einer Diskussion beibringen. Der allgemeine Begriff dafür ist übrigens "Hacken".
Viele von euch haben sicherlich nicht anders angefangen.
Doch, man fängt anders an, als in einem unbekannten Programm herumzupatchen. Ich habe so angefangen, dass ich warmduschenderweise einfach das Tachosignal manipuliert habe.
Aber wenn du schon mit kaltduschen anfangen willst, dann anslysiere doch einfach mal bekannte 8051 Programme und finde heraus, was die machen und wie die es machen. Zwei Sachen sind sicher: du wirst viel lernen und viel Zeit brauchen.
Respekt, Du hast wohl ein ausgeprägtes Allgemeinwissen.
Alle Achtung und danke für diese Passage.
Jedoch wird dieser Fall nicht eintreten.
Ich habe mir auch explizit dieses Modell von Delphi gewählt, da es im Gegensatz zu anderen Herstellern auch mechanische Hürden im Falle eines Worst Cases stellt. Des weiteren über einen Doppelte Gaszüge mit Öffner und Schliesser, die dies nochmals absichern.
Können wir bitte davon ausgehen, dass es für meinen Rasenmäher ist und eure Sicherheitsbedenken zur Seite stellen?
Verbauen kann und werde ich das Ding ja.
Es ging mir nur um "the next Level", für den ich euch um euer Wissen bittete.
Möglich wäre höchstens, den Maschinencode zu analysieren.
Danke, in diese Richtung ging meine Tendenz...
Die Schaltung ist relativ simpel und lässt im Grunde fast jeden Anschluss auf der Platine problemlos erkennen und rückverfolgen.
Ich habe so angefangen, dass ich
einfach das Tachosignal manipuliert habe.
Das war mein erster Gedankengang und reichte bis zur zusätzlichen Platine im Stg. Im Prinzip ne gute und simple Sache mit viel weniger Aufwand.
Meinen inneren Monk stellte das aber irgendwie nicht zufrieden.
Deswegen wendete ich mich an euch.
Es ist deutlich einfacher, die Schaltung um den 575 aufzunehmen und ein neues Programm für einen noch unprogrammierten 575 zu schreiben, daß in der Schaltung funktioniert. Ausnahme wäre wenn er CAN Bus nutzt und verschlüsselt kommuniziert.
Ich finde, wir sollten hier nicht so demotivieren.
Das Auslesen des Chips ist mit dem richtigen Equipment kein Problem.
Ich würde mal mit supply voltage glitching anfangen, vielleicht geht's so schon. Das ist vielleicht etwas mehr Aufwand als die bessere Methode, die ich später beschreibe, aber der Vorteil ist, dass es nicht so viel Platz wegnimmt und auch die Lieferzeiten für das Equipment kürzer sein sollten.
Wenn das nicht funktioniert, empfehle ich ein FIB. Wenn man sich auf dem Markt ein wenig umschaut, Preise vergleicht und ein wenig warten kann, dann müsste man ein einfaches Setup für einen geringen siebenstelligen Betrag kriegen können. Damit lässt sich dann bequem der Ausleseschutz abtragen und ggf. auch Leitungen neu kontaktieren.
müsste man ein einfaches Setup für einen geringen siebenstelligen
Betrag kriegen können
Das ist ja ein Schnäppchen! Wie viele tausend Rasenmäher muss er hacken, um die Kosten wieder rein zu holen? Oder alternativ sein Haus verkaufen, dann braucht er den Rasenmäher auch nicht mehr.
Es ist deutlich einfacher, die Schaltung um den 575 aufzunehmen und ein
neues Programm für einen noch unprogrammierten 575 zu schreiben, daß in
der Schaltung funktioniert. Ausnahme wäre wenn er CAN Bus nutzt und
verschlüsselt kommuniziert.
Danke Michael,
so wird mein Duschwasser merklich kälter.
CAN Bus existiert nicht.
Ein neues Programm würde meine Fähigkeiten schon deutlich überschreiten.
Mir fehlte es wohl trotz einiger Recherche an genügend Grundwissen, um soetwas überhaupt anzugehen.
Selbst der Gedanke an ein FPGA-Entwicklungsboard für eine zusätzliche Schaltung, um das Signal zu beeinflussen ist für mich schon grenzwertig.
Ich habe den Eindruck, gerade eure Zeit zu verschwenden...
Das ist halt einen Job für die Ober-Nerds unter den Profis. Im ganzen Land findest du (rate ich jetzt mal) vielleicht 2 Personen, die das können. Ich gehöre nicht dazu. Ich habe früher mal ein Computerspiel auf PC gehackt, aber damals hatte ich auch endlose Langeweile und wusste nicht wohin mit mir. Insofern habe ich eine grobe Vorstellung von dem Aufwand.
Das ist halt einen Job für die Ober-Nerds unter den Profis. Im ganzen
Land findest du (rate ich jetzt mal) vielleicht 2 Personen, die das
können.
Jepp, hab´s gecheckt! (kopfsenk)
Ich dachte mir,
och den lötest raus,
stopfst ihn in ein Lesegerät,
machst das Ding irgendwie am Rechner fest,
lädst dir ne empfohlene Software aus der weiten Welt des Internet´s,
guckst doof auf die wirren Zahlen- und Buchstabenkombinationen,
schreibst ein paar liebe Worte an die Community,
änderst dies und das,
speicherst es auf nen neuen Chip,
reinlöten uuuund simsalabim -
Kaffee trinken!
Ich dusch jetzt und kümmere mich um den letzten Punkt.
Nachdem du dein Projekt offensichtlich aufgibst und viel Zeit
nicht verschwendest, kannst du dich ja um so mehr um die wichtigen
Dinge des Lebens kümmern, wie z.B. Deppenapostrophe:
Nachdem du dein Projekt offensichtlich aufgibst und viel Zeit
nicht verschwendest...
Aufgegeben ist es nicht, doch war dies der der verkehrte Lösungsansatz.
Das sehe ich ein und bin den Teilnehmenden für ihre erklärenden Beiträge sehr dankbar.
Somit werde ich mein kleines Projekt mit den mir möglichen Mitteln umsetzen.
Falls ich wieder mal eine Frage oder einen Gedankengang wie den Eingehenden habe, so werde ich auch versuchen meine Schreibweise unter Berücksichtigung Deiner Phobie anzupassen.
Wo ist denn der Tempomat verbaut (Fahrzeugtyp, eventuell auch Teilenummer der ECU)? Der P87C575 ist ja doch schon ziemlich alt und die 8 kByte OTP EPROM sehr überschaubar (falls man an den rankommen sollte).
Das Auslesen des Chips ist mit dem richtigen Equipment kein Problem.
Ich würde mal mit supply voltage glitching anfangen
War eigentlich schon geklärt, ob die Schutz-Bits aktiviert sind? Mein erster Ansatz wäre, die Testpunkte für den Debug-Port zu identifizieren, ein passendes Interface zu besorgen und mal zu schauen, was das Teil sagen möchte. Ich kenne einige Beispiele, wo Controller, die theoretisch hätten "zu" sein können, ganz einfach auslesbar waren. Aktuelles Beispiel hier: https://github.com/uhi22/Ioniq28Investigations/tree/main/VESS_VirtualEngineSoundSystem#how-to-read-the-controllers-memory
Auch den ausgelesenen Code zu analysieren ist eine lösbare Aufgabe. Im FOC-Thread hab ich verstanden, dass die Jungs dort die Originalsoftware patchen um den Motorregler zu tunen. Wenn man Muße, Zeit und Talent hat, geht das. Es gibt gut beschriebene Beispiele, z.B. https://medium.com/techmaker/reverse-engineering-stm32-firmware-578d53e79b3 oder Google "Ghidra reverse engineering".
Ich find's schade, dass man einen motivierten Einsteiger nicht einfach mal lernen lässt. Was dann tatsächlich geht oder nicht geht, sieht er dann schon, aber bis dahin gibt's viel spannendes zu entdecken.
Oh, das macht es schwieriger. OTP wäre "one time programmable", also fällt der Ansatz "auslesen, patchen, programmieren" leider aus. Außer man besorgt sich eine Stange davon und lötet jedes Mal einen neuen ein.
Auch den ausgelesenen Code zu analysieren ist eine lösbare Aufgabe.
In diesem Fall sicher machbar (falls man an den Code rankommt). Der 80C51 ist relativ einfach und im Homecomputer-Zeitalter (vor vielen Jahrzehnten) wurden ROMs vergleichbarer Größe ohne Hilfmittel wie IDA Pro oder Ghidra analysiert. Alles nur eine Frage des Aufwands den man investieren will.
Er wird eigentlich in BMW-Motorrädern verbaut.
Dieser ist aus einer K1200LT. Die Auswahl war aufgrund der hochwertigen und durchdachten Bauweise mein Favorit.
also
fällt der Ansatz "auslesen, patchen, programmieren" leider aus.
Ja, leider ist das Eprom OTP
Da es Die Dinger nicht wirklich zu Hauf gibt, dachte ich eben an eine wiederbeschreibbare Alternative wie zB. einem STC89C516RD.
Das ist ja meine erste Hürde, wegen der ich hier bin.
Man müßte den Mikrcocontroller auslöten, erst dann kann man versuchen den Code auszulesen (oder feststellen dass das Auslesen gesperrt ist). Die Frage ist ob es noch genügend derartige Steuergeräte gibt damit man das Auslöten riskieren kann (wenn es schiefgeht sollte man idealerweise bezahlbar an Ersatz kommen).
Das wäre wohl das kleinste Problem. Und mit einem Sockel wäre auch der Test vereinfacht.
Dazu hätte ich jedoch gerne zuerst die passenden Peripheriegeräte und einen Lichtblick ob des Erfolgs.
Im Anhang habe ich die beiden genannten Chips gegenübergestellt.
links der verbaute P87C575EHPN, rechts der alternative STC89C516RD
Das Datenblatt liegt hier: https://www.digchip.com/datasheets/parts/datasheet/364/87C575-pdf.php
Die Bilder 36 und 37 verraten, wie man auslesen kann. Man braucht ca. 15 Adress- und Steuerleitungen und bekommt 8 Bit parallel.
Also auslöten (erste Hürde) und einen Programmer besorgen oder bauen (zweite Hürde).
Das wäre wohl das kleinste Problem. Und mit einem Sockel wäre auch der
Test vereinfacht.
Dazu hätte ich jedoch gerne zuerst die passenden Peripheriegeräte und
einen Lichtblick ob des Erfolgs.
Mein Elnec Programmer kann mit dem P87C575 umgehen und ihn auslesen (falls er nicht gesperrt ist). Wenn Du den P87C575 auslöten kannst und ihn mir schickst kann ich es ausprobieren. Schick mir eine PM falls Du es so machen möchtest.
Mein Elnec Programmer kann mit dem P87C575 umgehen
Das wäre ja megasuper!
Darauf würde ich gerne zurück kommen, denn dieser liegt ausserhalb des Budgets.
Nichtsdestotrotz bräuchte ich ja selbst etwas Adäquates zum Wiederbeschreiben.
Da das Thema nun doch Formen annimmt, hätte ich jedoch zuerst gerne ein zweites Exemplar organisiert, mich um alternative Chips gekümmert und einen Programmer besorgt.
Na dann bist du ja die nächsten paar Jahrzehnte beschäftigt,
sofern du nicht einen siebenstelligen Betrag ausgeben wirst.
Durch Verzicht mancher Modalpartikel könntest Du Deine Aussagen angenehmer gestalten.
Bitte berücksichtige dies aufgrund meiner angepassten Schreibweise.
Warum kommt es mir völlig abstrus vor, die Sensorwerte, also
Geschwindigkeit und vielleicht Bremspedal, bei einem Tempomaten zu
manipulieren ?
Was ich mir an etwas anderer Stelle vorstellen könnte, wäre eine Änderung der Wertevorgabe. Der Tempomat bzw. Limiter in meinem Auto lässt mit einfachem Antippen des Hebels nur ein Verstellen in ganzen 10-km/h-Schritten zu. Für kleinere Schritte kann man durch längeres Antippen die Geschwindigkeit um jeweils 1 km/h erhöhen.
Ich hätte gerne 5-km/h-Schritte.
Das aber ist sicher nicht eine Funktion des Tempomaten/Limiters, sondern irgendwo in den Tiefen des Bordcomputers vergraben. Der kann auch in 8-km/h-Schritten arbeiten, wenn nämlich die Zweitanzeige des Tachos auf mph umgestellt wird. Der Zeiger zeigt weiterhin km/h an, aber die numerische Anzeige und auch der Tagestouren- und Gesamtstreckenzähler zeigt Meilen an. Der Tempomat/Limiter wird in diesem Fall in 5-mph-Schritten verstellt ...
Die Verbrauchsanzeige kennt dann auch mpg ("miles per gallon"), aber es ist unklar, welche Gallone sie meinen, und was das überhaupt soll; in Großbritannien, dem einzigen Meilen nutzenden Land, in dem ich mein Auto gelegentlich bewege, haben sie Gallonen nur im Museum**, und die sind dann auch noch größer* als die aus dem Land der niveaulosen Großmäuler.
Das Auto ist von einem deutschen "Premium"-Hersteller und durchaus auch für den britischen Markt produziert worden.
Ist also "nur" Software, aber an die kommt natürlich niemand ran. Ich versuch's auch gar nicht, vorher werd' ich mir eh' ein anderes Auto anschaffen müssen.
*) "imperial" Gallon ~ 4.546 l, US Gallon 3.785 l
**) Großbritannien ist anderslautenden Gerüchten zum Trotz fast vollständig metrisch, das einzige, was nicht metrisch ist, sind Entfernungs- und Geschwindigkeitsangaben im Verkehr und das Volumen von Milch und Bier (wobei es die beiden auch in metrischer Form gibt. Ein Pint aber ist genau der eine Schluck mehr, der dem halben Liter Bier fehlt ...).
Die größere der beiden Gallonen wird nur noch auf ein paar karibischen Inseln genutzt.
So war auch mein Plan. Nur leider finde ich nichts "von der Stange", das
den Rahmen des zu opfernden Lehrgeldes passt.
Hast Du eine Idee?
Leider nichts wirklich konkretes. Vor ca. 30 Jahren hatte ich mal so 'was in der Art gebaut mit ca. 4 Stück DS8212 (8-Bit-Latch mit Tristate), am PC-Parallelport. Heutzutage hätte ich erwartet, dass man soetwas fertig und günstig bekommt. Wenn der Spaß am Basteln im Vordergrund steht, dann halt mit Arduino, leider hat der nicht genügend Pins, was man aber mit Seriell-zu-Parallel-Schieberegistern (zB 74HC595) lösen könnte. Oder einen anderen Controller suchen, der genügend Pins hat.
Nein. Es geht um ein Fahrzeug für den europäischen Markt, nicht um ein Fahrzeug für den US-Markt. Und in Großbritannien wird die (größere!) der beiden Gallonen zwar nicht mehr aktiv verwendet, es gibt sie aber noch.
Und tatsächlich: Britische Verbrauchsangaben in mpg ("miles per gallon") beziehen sich auf die "imperiale" und nicht auf die US-Gallone.
Du hast anscheinend immer noch nicht kapiert, daß es zwei
unterschiedliche Einheiten namens "mpg" gibt. Die
Und du hast nicht kapiert dass in UK das metrischen System Gesetz ist und daher mpg immer für den US Markt sind als dem einzigen relevanten Land mit veralteten Masseinheiten.