Forum: PC Hard- und Software Prozessor aus Image ableiten


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

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

von Gustl B. (-gb-)


Lesenswert?

In 107 kByte passt auch kein Linux rein.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

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

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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.

von Nano (Gast)


Lesenswert?

Lass mal binwalk drüberlaufen.
Das Programm gibt's in jeder guten Linux Distribution im Paket 
Repository.

von Martin (Gast)


Lesenswert?

Hallo.

Habe binwalk probiert auf einem debian 10 System: 0 output.


Martin

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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...

von Martin (Gast)


Lesenswert?

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

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

Hallo Niklas.

Du hast zu 100% Recht. Heute ist die Zielhardware eingetroffen: LPC1788.


Martin

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
Noch kein Account? Hier anmelden.