Hallo. Ich habe angefügtes Image zum Updaten eines Datenerfassungsgerätes aus dem Updateprogramm extrahiert. Lässt sich aus dieser Datei der verwendete Prozessor ableiten? Ich hatte auf ein Filesystem gehofft (zB Linux). Aber das scheint es nicht zu sein. Es muss eher ein Mikrocontroller oä Image sein. Verschlüsselt scheint es auch nicht da Klartext zu finden ist. Wirklich komplex ist das Gerät auch nicht. Es nimmt die Daten über PLC (low speed powerline) entgegen (serieller SOC - vor einigen Jahren fragte hier mal einer nach dem MI202), fasst sie zusammen und sendet sie über Ethernet ins Internet wieder raus (TCP - sicherlich ohne TLS oä). Danke. Martin
Das sieht stark nach einem Image für einen Cortex-M3 aus. Am Anfang ist der Interrupt-Vektor mit initialem Stack-Pointer zu sehen. Disassembliert mit Thumb2 sieht es auch recht sinnvoll aus. Es tauchen einige wenige FPU-Instruktionen auf, aber das sind vermutlich Daten die der Disassembler nicht als solche identifizieren kann, daher wahrscheinlich kein Cortex-M4 oder -M7. -M0 ist es auch nicht, weil Thumb2-Instruktionen (sinnvolle, keine fehlinterpretierten Daten) auftauchen. Die Strings "netconn" und "tcpip_thread" tauchen auf, das klingt nach lwIP. Der Flash-Anfang scheint 0x20000 zu sein. Der Stack-Anfang ist auf 0x20003FF8 gestellt. Es könnte also ein Prozessor mit 16 KiB SRAM sein. Wenn dir langweilig ist kannst du alle Cortex-M3 mit 16 KiB SRAM durchgehen bei denen der Flash ab 0x20000 eingeblendet ist (STM32 schonmal nicht IIRC) und mindestens 128 KiB groß ist. Der String "www.envertecportal.com" liefert dir vermutlich nichts neues. Es wird wahrscheinlich ein Bootloader verwendet, das Image fängt wahrscheinlich daher nicht ab 0x20000 an, denn das passt nicht gut mit den Adressen im ISR-Vektor zusammen.
Hallo. Das mit dem Bootloader wird stimmen. Irgendwie muss das Image ja via Ethernet upgedatet werden. Kannst du erkennen ob der PLC Soc wirklich seriell angesteuert wird? Oder wird SPI verwendet? Danke. Martin
Martin schrieb: > Kannst du erkennen ob der PLC Soc wirklich seriell angesteuert wird? > Oder wird SPI verwendet? Das ist schwierig herauszufinden. Dazu bräuchte man die Adressen der Peripherie-Module, wozu man den Prozessor-Typ kennen müsste. SPI ist aber auch seriell! Das ließe sich am Besten mit einem guten Foto der Platine und dem Datenblatt des PLC SoC beantworten.
Lass mal binwalk drüberlaufen. Das Programm gibt's in jeder guten Linux Distribution im Paket Repository.
Hallo. Habe binwalk probiert auf einem debian 10 System: 0 output. Martin
Was soll das ganze überhaupt bezwecken? Tools wie binwalk können auch nur allgemeine Informationen liefern, vermutlich nicht viel mehr als ich schon geschrieben habe...
Hallo. Der PLC Chip hat wohl in der Tat SPI. Ich versuche im Moment noch an die Hardware zu kommen. Könnte es sich um Code für einen AT89S52 handeln? Also 8051? Martin
Martin schrieb: > Könnte es sich um Code für einen AT89S52 handeln? Also 8051? Ich bin mir zu 99% sicher dass es ARM (Thumb2) ist, also kein 8051. Aber es gibt ja auch Cortex-M3 von Atmel.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.