Abo
  • Services:
Anzeige
Code des Bootloaders
Code des Bootloaders (Bild: Christer Weinigel)

Der Second-Stage-Bootloader ist als Nächstes dran

Ich erstelle eine zweite Medusa-Datenbank für den Second-Stage-Bootloader mit den bereits mir bekannten Speicheradressen und beginne, damit zu arbeiten.

Ich vergrabe mich aber auch nicht zu tief in diesen Bootloader. Selbst wenn der Maschinencode nur 75 KByte umfasst, ist das recht aufwendig, ich überfliege ihn ebenfalls nur. Ich stelle schnell fest, dass der Code Thumb-Befehle umfasst, mit denen Medusa größere Probleme hat. Ich folge dem Programmfluss, dabei werden vor allem Datenstrukturen initialisiert. Diesen Teil überspringe ich. Ich stoße aber auch auf interessante Anweisungen, die mit den SoC-Registern zu tun haben.

Anzeige

Es gibt einen Abschnitt im Code, der einen Zeiger auf die Zeichenkette "param" speichert, gefolgt vom Aufruf einer Funktion, die mit dem Flash-Speicher-Controller kommuniziert. Könnte das einer Datei-öffnen-Funktion entsprechen? Danach wird mit dem Rückgabewert der Datei-öffnen-Funktion ein Zeiger auf einen Speicherbereich außerhalb des Programmcodes erzeugt und ein Register mit dem Wert 460 beschrieben. Könnte das einer Datei-lesen-Funktion entsprechen? Vielleicht.

Nach einer Weile finde ich Code, der sich auf die Zeichenketten "Boot to load (Y/N)?" und "Wait for Enter" bezieht. Außerdem gibt es einen Codeaufruf im Zusammenhang mit der seriellen Schnittstelle und danach wird der Wert 0x75 geprüft. Dieser Wert entspricht dem ASCII-Code von "u". Deshalb probiere ich, "u" einzugeben, während das Oszilloskop bootet. Und tatsächlich erscheint darauf die Ausgabe "Enter USB-download Mode" und das Oszilloskop hält an. Wahrscheinlich wartet es jetzt auf einige Kommandos über USB.

Wenn während der Boot-Abfrage eine vorgegebene Zeit überschritten wird, lädt der Bootloader eine Datei namens "os" an die Adresse 0. Dann wird anscheinend eine Prüfsummen-Kalkulation durchgeführt. Stimmt der Wert nicht mit einem Wert an einer bestimmten Speicheradresse im RAM überein, dann versucht der Bootloader, eine Datei "oscp" zu laden und erneut die Prüfsumme zu ermitteln. Schlägt auch das fehl, wird die Meldung "open or read OS ERR" ausgegeben. An dieser Stelle wird offensichtlich versucht, das Betriebsystem zu laden, und dessen Zustand überprüft.

  • Diasembler-Ausgabe (Bild: Christer Weinigel)
  • Diasembler-Ausgabe  (Bild: Christer Weinigel)
  • Diasembler-Ausgabe (Bild: Christer Weinigel)
  • FPGA-Quellcode (Bild: Christer Weinigel)
  • Owon-Bootscreen (Bild: Christer Weinigel)
Diasembler-Ausgabe (Bild: Christer Weinigel)

Ich versuche, herauszufinden, ob ich irgendwie die Kommandozeile des Bootloaders aufrufen kann. Ich vermute aber, dass der Zugriff in der Produktionsversion deaktiviert wurde. Die noch vorhandenen Kommandonamen waren einfach Überbleibsel davon.

Das Dateisystem untersuchen

Wenn ich mir die Datei-öffnen- und lesen-Funktion näher anschaue, könnte ich vielleicht das Dateisystem im Flash-Speicher näher bestimmen. Doch das scheint mir zu viel Arbeit zu sein. Ich probiere einen anderen Weg.

Yet Another Flash File System (Yaffs) ist ein Dateisystem speziell für NAND-Flash-Speicher. Es kann mit all den Besonderheiten von Flash-Speicher umgehen wie der Fehlerkorrektur, dem Umkopieren beschädigter Bereiche und dem gleichmäßigen Beschreiben aller Speicherbereiche (Wear leveling). Das Dateisystem ist Open Source und für den Einsatz in Linux und uBoot unter GPL lizenziert, es gibt aber auch kommerzielle Lizenzen für proprietäre Systeme.

Ich finde einige Zeichenketten im Speicherabbild des Oszilloskops, die auf Yaff hindeuten. Auch einige Kommentare im EEVblog-Forum sprechen davon. Ich suche nach Werkzeugen, die mit einem Yaff-Dateisystem umgehen können.

Ich verbringe einige Zeit damit und scheitere komplett. Keines der Werkzeuge kann etwas mit den Daten anfangen. Ich schäme mich fast dafür, aber es dauert einige Zeit, bevor ich anfange, nachzudenken und direkt auf die Daten zu schauen. Ich begreife dann schnell, dass es offensichtlich nicht Yaff war.

 Firmware disassemblierenDie erste Datei 

eye home zur Startseite
mifish 24. Nov 2016

+1 interessanter artikel

muhviehstah 23. Nov 2016

wäre binwalk hierbei nicht hilfreich gewesen?

muhviehstah 23. Nov 2016

kt

Elchinator 22. Nov 2016

Das wesentlichste Teil - die Hardware - scheint ja ab Werk durchaus brauchbar zu sein...

derdiedas 22. Nov 2016

Danke Golem - und nun bin ich doch wieder motiviert - zwar kein Linux zu installieren...



Anzeige

Stellenmarkt
  1. GEMÜ Gebr. Müller Apparatebau GmbH & Co. KG, Ingelfingen
  2. Helvetia Schweizerische Versicherungsgesellschaft AG, Frankfurt am Main
  3. über Hays AG, Raum Karlsruhe
  4. Bertrandt Technikum GmbH, Ehningen bei Stuttgart


Anzeige
Blu-ray-Angebote
  1. 23,99€ (Vorbesteller-Preisgarantie)
  2. (u. a. Forrest Gump 9,97€, Gods of Egypt 9,97€, Creed 8,99€, Cloud Atlas 8,94€)
  3. (u. a. 10€ Rabatt auf Game of Thrones, reduzierte Box-Sets und 2 Serien-Staffeln auf Blu-ray für...

Folgen Sie uns
       


  1. Netzneutralität

    FCC-Chef preist Vorteile von Zero Rating für Nutzer

  2. iOS

    SAP bringt Cloud-SDK für mobile Apple-Geräte

  3. MongoDB

    Sprechender Teddy teilte alle Daten mit dem Internet

  4. Flir One und One Pro im Hands on

    Die heißesten Bilder auf dem MWC

  5. Arktika 1 Angespielt

    Mit postapokalyptischen Grüßen von Stalker und Metro

  6. Surge 1

    Xiaomis erstes Smartphone-SoC ist ein Mittelklasse-Chip

  7. TC-7680

    Kabelmodem für Gigabit-Datenraten vorgestellt

  8. Störerhaftung

    Regierung will Netzsperren statt Abmahnkosten

  9. Voice ID

    Alexa soll Nutzer an der Stimme erkennen können

  10. Chrome

    Bluecoat bremst Einführung von besserem TLS-Protokoll



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Motion Control: Kamerafahrten für die perfekte Illusion
Motion Control
Kamerafahrten für die perfekte Illusion
  1. Konzeptfahrzeug Peugeot Instinct - autonom fahren oder manuell steuern
  2. Später Lesen Mozilla übernimmt Hersteller von Pocket
  3. Robocar Roborace präsentiert Roboterboliden

Nintendo Switch eingeschaltet: Zerstückelte Konsole und gigantisches Handheld
Nintendo Switch eingeschaltet
Zerstückelte Konsole und gigantisches Handheld
  1. Nintendo Interner Speicher von Switch offenbar schon jetzt zu klein
  2. Hybridkonsole Leak zeigt Menüs der Nintendo Switch
  3. Hybridkonsole Hardware-Details von Nintendo Switch geleakt

Blackberry Key One im Hands on: Android-Smartphone mit toller Hardware-Tastatur
Blackberry Key One im Hands on
Android-Smartphone mit toller Hardware-Tastatur
  1. Lenovo Moto Mod macht Moto Z zum Spiele-Handheld
  2. Alternatives Betriebssystem Jolla will Sailfish OS auf Sony-Smartphones bringen
  3. Digitale Assistenten Google und Amazon kämpfen um Vorherrschaft

  1. Top !

    Cohiba | 17:38

  2. Re: ****

    Reci | 17:35

  3. Re: Ich will auch!

    oxybenzol | 17:34

  4. Re: lol

    theonlyone | 17:29

  5. Re: Immer wieder MongoDB

    theonlyone | 17:28


  1. 17:48

  2. 17:15

  3. 16:48

  4. 16:20

  5. 16:00

  6. 15:23

  7. 14:57

  8. 14:40


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel