Die erste Datei
Es sieht so aus, als ob das Dateisystem nach 640 KByte (0xa0000) im Speicherabbild beginnt. Hier die erste Sektion im Flash, auch Page genannt:
000a0000 01 ff ff ff 01 00 00 00 ff ff 66 70 00 00 00 00 |..........fp....| 000a0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000a0100 00 00 00 00 00 00 00 00 00 00 ff ff 80 f1 00 00 |................| 000a0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000a0120 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |................| 000a0130 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 000a01c0 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 |................| 000a01d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000a01e0 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff |................| 000a01f0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 |................| 000a0200 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 000a07e0 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 |................| 000a07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Jede Sektion ist 2 KByte groß und nachdem ich mein Gehirn eingeschaltet habe, scheint es mir klar, dass 01 ff ff ff 01 00 00 00 eine magische Markierung ist und "fp" der Dateiname.
000a0800 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000a0810 55 99 aa 66 0c 85 00 e0 04 00 8c 85 c0 01 8c 82 |U..f............| 000a0820 bc 00 8c 86 90 77 8c 43 20 00 08 c9 0c 87 00 f3 |.....w.C .......| 000a0830 0c 83 00 81 04 00 04 00 04 00 04 00 04 00 04 00 |................| 000a0840 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 |................| 000a0850 04 00 04 00 04 00 cc 81 3c 13 8c 81 10 81 2c 84 |........<.....,.| 000a0860 00 00 4c 80 00 f8 8c 87 ff ff cc 84 00 a0 cc 82 |..L.............| 000a0870 00 20 cc 80 80 00 4c 86 00 00 4c 81 00 00 4c 85 |. ....L...L...L.| 000a0880 00 00 4c 83 00 00 4c 87 00 00 cc 85 d8 47 cc 43 |..L...L......G.C| 000a0890 00 00 00 00 04 00 04 00 0c 44 00 00 00 00 0c 85 |.........D......| 000a08a0 00 80 0a 06 00 40 19 b5 00 00 00 00 00 00 00 00 |.....@..........| 000a08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Die Daten ab 0xa0800 kommen mir bekannt vor, wo habe ich das schon einmal gesehen?
Es ist der Anfang eines Xilinx-Spartan-6-Bitstroms, wie ich ihn schon einmal in einem Blogpost gesehen habe! Auch der Dateiname "fp" für den FPGA-Bitstrom liegt nahe.
Die Bits in den Daten sehen verdreht aus, aber das ist üblich. Xilinx' eigene Werkzeuge arbeiten damit und die Daten entsprechen deren Standardausgabe.
Ein wenig später taucht eine Sektion mit einem fast identischen Anfang auf, wahrscheinlich markiert sie das Dateiende.
000f4800 01 ff ff ff 01 00 00 00 ff ff 66 70 00 00 00 00 |..........fp....| 000f4810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000f4900 00 00 00 00 00 00 00 00 00 00 ff ff 80 f1 00 00 |................| 000f4910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000f4920 00 00 00 00 7c 32 05 00 ff ff ff ff ff ff ff ff |....|2..........| 000f4930 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 000f49c0 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 |................| 000f49d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000f49e0 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff |................| 000f49f0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 |................| 000f4a00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 000f4fe0 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 |................| 000f4ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Allerdings gibt es auch einige Unterschiede, im Dateikopf steht am Index 0x224 der Wert 00 00 00 00, am Dateiende hingegen 7c 32 05 00. Hmm... Wie groß sind alle Sektionen zwischen dem Dateikopf und seinem Ende? 0Xf4800 - 0xa0800 = 0x54000. Wenn ich den Wert 0x5327c vom Dateiende nehme und aufrunde, entspricht es diesem Wert. Das Feld könnte der Dateigröße entsprechen.
Eine Kopie der ersten Datei
Die nächste Sektion scheint der Dateikopf einer Datei namens "fpcp" zu sein.
000f5000 01 ff ff ff 01 00 00 00 ff ff 66 70 63 70 00 00 |..........fpcp..| 000f5010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000f5100 00 00 00 00 00 00 00 00 00 00 ff ff 80 f1 00 00 |................| 000f5100 00 00 00 00 00 00 00 00 00 00 ff ff 80 f1 00 00 |................| 000f5110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000f5120 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |................| 000f5130 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
Der Inhalt entspricht dem der Datei "fp". Womöglich handelt es sich um ein Backup des FPGA-Bitstreams in einer zweiten Datei.
000f5800 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000f5810 55 99 aa 66 0c 85 00 e0 04 00 8c 85 c0 01 8c 82 |U..f............| 000f5820 bc 00 8c 86 90 77 8c 43 20 00 08 c9 0c 87 00 f3 |.....w.C .......| 000f5830 0c 83 00 81 04 00 04 00 04 00 04 00 04 00 04 00 |................| 000f5840 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 |................|
Das "fpcp"-Dateiende sieht genauso aus wie für "fp" mit der Dateiangabe am Index 0x124:
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
00149800 01 ff ff ff 01 00 00 00 ff ff 66 70 63 70 00 00 |..........fpcp..| 00149810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00149900 00 00 00 00 00 00 00 00 00 00 ff ff 80 f1 00 00 |................| 00149910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00149920 00 00 00 00 7c 32 05 00 ff ff ff ff ff ff ff ff |....|2..........| 00149930 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
Der Second-Stage-Bootloader ist als Nächstes dran | Die Param-Datei |
+1 interessanter artikel
wäre binwalk hierbei nicht hilfreich gewesen?
kt
Das wesentlichste Teil - die Hardware - scheint ja ab Werk durchaus brauchbar zu sein...