Startseite > livehacking > Firmware-Gefrickel mit Ebook-Readern

Firmware-Gefrickel mit Ebook-Readern

Hallo.

Auf preissau.de gibt es heute den Icarus Reader Sense E600BK ebook für 139€. Grund genug, sich mal die Firmware anzugucken:

wget http://www.distriread.com/files/ICARUS%20Reader%20Sense%20firmware%202011-1.zip
 

Dann unzippen und los gehts. Raus kommen zwei Dateien und ein Verzeichnis upfw/.

uzImage: Offenbar ein komprimierter Linux-Kernel

urootfs.img: offenbar die Ramdisk. Ich habe in den Intarwebs auch von einem Recovery-Image gelesen. u-boot sagt folgendes:

laga@moar:/tmp/qdutil$ mkimage -l urootfs.img
Image Name:   ramdisk
Created:      Wed Nov  3 10:44:55 2010
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    2484039 Bytes = 2425.82 kB = 2.37 MB
Load Address: 00000000
Entry Point:  00000000

Mal extrahieren, wa:

laga@moar:/tmp/qdutil$ dd if=urootfs.img bs=64 skip=1 of=ramdisk.gz
38813+1 records in
38813+1 records out
2484039 bytes (2.5 MB) copied, 0.162404 s, 15.3 MB/s
laga@moar:/tmp/qdutil$ file ramdisk.gz
ramdisk.gz: gzip compressed data, was "rescuefs", from Unix, last modified: Wed Nov  3 10:44:52 2010, max compression
laga@moar:/tmp/qdutil$ gunzip ramdisk.gz
laga@moar:/tmp/qdutil$ file ramdisk
ramdisk: DOS-executable (
#wtf?
laga@moar:/tmp/qdutil$ mkdir ramdisk-mnt
laga@moar:/tmp/qdutil$ sudo mount -o loop ramdisk ramdisk-mnt

Gut, der Name der Datei laut file, „rescuefs“, sagt eigentlich alles. Ein paar interessante Dinge sind mir auf Anhieb aufgefallen:

* ./bin/qdtar – ich kann aktuell das tar-Archiv im Firmware-Update (upfw/rootfs.img) nicht entpacken. Womöglich haben die Kollegen da was obfuscated (lol)

* ./sbin/backup_adept.sh – lol

* Ok, der hier ist wirklich gut. In sbin/up_preload.sh ist eine Hashmap implementiert:

hput() {
    echo "$2 $3" >> /tmp/hashmap.$1
}

hget() {
        grep "^$2 " $1 | awk '{ print $2 };'
        #grep "^$2 " /tmp/hashmap.$1 | awk '{ print $2 };'
}

Gnihihihi!

* Die .gz in /sbin/images/ sind offenbar Bilder.

Alright, nicht viel mehr zu sehen ad hoc. Mal schauen, was in upfw/ liegt:

* laga@moar:/tmp/qdutil/upfw$ ls
20101216D.bin  rootfs.img  ST060B00_image.pak  upfw_post_script.sh

Das upfw_post_script.sh wird vermutlich nach dem Firmware-Update aufgerufen. Auch hier werden wieder die DRM-Keys gesichert (lol). Das Script scheint ein toller Ort zu sein, um einen telnetd oder ähnliches zu installieren (lol).

ST060B00_image.pak scheint einfach nur ein Haufen Bitmaps zu sein. Auch erstmal uninteressant. Bleiben noch zwei Dinge:

laga@moar:/tmp/qdutil/upfw$ file 20101216D.bin && ls -alh 20101216D.bin
20101216D.bin: data
-rw-r--r-- 1 laga users 5.6M Dec 16  2010 20101216D.bin
rootfs.img: POSIX tar archive (GNU)
-rw-r--r-- 1 laga users 170M Jan 12  2011 rootfs.img

Leider kriege ich das rootfs.img mit meinem normalen tar nicht entpackt.

laga@moar:/tmp/qdutil/upfw$ tar xvf rootfs.img
bin/
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Was macht man da.. ich habe mal rumvermutet, dass da womöglich nur eine Datei bzw Header defekt ist. Tar müsste das doch irgendwie überspringen können. Meine Version von tar hat keine Option --recover, aber Google führt michte zu einem guten Tipp:

cpio -ivd -H tar < rootfs.img.tar

Was haben wir denn hier interessantes?

* ./etc/init.d/S50proftpd (lol). In ./etc/proftpd.conf ist offenbar der ‚anonymous‘ account aktiviert

* Das gesamte Ebook-Geraffel ist offenbar in /usr/local/quisda. Basiert offenbar auf QT embedded. Generell scheint das Gerät sehr ähnlich dem Oyo zu sein, der bei Thalia verkauft wird.

* ./usr/local/qisda/bin/reset_adobe.sh (lol)

* ./usr/sbin/telnetd

./sbin/ohci-hcd.ko (lol, sbin)

* /mnt/etc – /mnt?!

* ./mnt/etc/rc.d/init.d/appWeb  (lol, rc.d/init.d/)

* ./qdutil/ Mehr Spielkram, z.b. qdutil/em/QEngineer

Interessant ist vor allem die QBookApp in usr/local/quisda, da diese die Ebooks rendert. Die Einstellungen kommen standardmäßig aus /usr/local/qisda/etc/QBookApp.default.ini, das nach /home/settings/QBookApp.ini kopiert wird.

* laga@moar:/tmp/qdutil/upfw/rootfs/usr/local/qisda$ file bin/QBookApp
bin/QBookApp: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, stripped

In Frank’s Wiki (sic) gibt es noch jede Menge weitere Information zum Oyo, das ja sehr nah verwandt ist, die diesen Blog post sicher redundant macht. Aber wir sind ja zum Spaß hier. Außerdem kann ich noch Outside The Walled Garden empfehlen, wo es ebenfalls interessante Beiträge zum Oyo gibt.

Und jetzt: abschalten. Ich gehe radfahren. Achso, ja: fuck DRM.

Advertisements
Kategorien:livehacking
  1. Es gibt noch keine Kommentare.
  1. No trackbacks yet.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: