Seite 1 von 1
iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 15:16
von mimocloud
Hallole,
Mal so ne Frage. Ist es möglich mit einem Bin stream Reader eine ISO Datei zu öffnen und bestimmte Wörter in dieser dann anzupassen z.B. %L_KEY_U z.B. und diese dann wieder zu speichern?
Hab damit so noch nicht gearbeitet daher Frage ich...
Danke im Vorraus!
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 15:27
von BlackJack
@mimocloud: Solange die Veränderungen nichts an der Länge der Daten ändert, sollte das möglich sein. Wobei die Bezeichnung „Bin stream Reader” ein bisschen komisch ist. Python-Terminologie wäre da wohl eher ein im Binärmodus geöffnetes Datei-Objekt.
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 15:32
von mimocloud
Okay

Danke erstmal... Was genau meinst du mit Länge in diesem Bezug?
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 15:55
von Sirius3
@mimocloud: Du kannst z.B. die Zeichenfolge "%L_KEY_U" durch eine beliebige andere Zeichenfolge mit genau 8 Zeichen ersetzen.
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 16:09
von mimocloud
Ja das hab ich soweit verstanden... THX dafür erstmal wa
Jetzt zum eigentlichen Problem was den StreamReader eigentlich sofort abschießt aus meinem vorhaben.
Innerhalb der ISO ist eine CLG Datei, diese CLG Datei enthält Variablen (%L_KEY_U z.B.) welche angepasst werden müssen durch Parameter die ich dem Script übergebe bei Aufruf!
Jetzt der Overkill.
Die ISO Datei ist eine Bootbare Datei also um genau zu sein ein Ubuntu-Install Image.
Wenn ich die ISO entpacke und dann wieder verpacke ist die ISO nicht mehr bootbar!
Irgendwer hier ne Idee wie ich die ISO verpacke und danach wieder Booten kann?
LG
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 16:15
von Sirius3
Was meinst Du mit Entpacken? Beim Lesen als Binärdatei ist es doch gerade der Vorteil, dass man die Struktur der Datei nicht kennen muß, sondern nur auf Byte-Ebene arbeitet.
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 16:23
von mimocloud
Jaja schon Klar. Nehmen wir aber die Variable %L_KEY_U z.B. welche ein Windows CD-Key von 29 Zeichen nach Bearbeitung wird. Da würde sich ja dann die Länge verändern und das File schrotte gehen!
Daher meinte ich ja auch das es doch nicht funkt ...
Grüße.
tony montana

Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 16:34
von Sirius3
Eine CD ist immer in Blöcken von 4096 Bytes aufgebaut, das heißt, wenn die CLG-Datei kleiner als 4096 Bytes ist, dann sind am Ende noch Füllbytes, die Du überschreiben kannst. Der Ersetzungstext ist dann nicht 8 Bytes sondern 8+x und dann ist genug Platz.
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 19:14
von mimocloud
Leider gerade zu groß (1,12 KB) dafür. DAMN
Ich meine sowas würde ja gehen aber dann wäre die ISO nicht mehr bootbar nach dem repack:
Code: Alles auswählen
os.system("mkdir /media/tmp_iso")
os.system("mount -o rw,loop %s /media/tmp_iso" % ISO_PATH)
new_file = open("/media/tmp_iso/.config", 'w')
new_file.write(data)
new_file.close()
os.system("umount /media/tmp_iso")
os.system("rmdir /media/tmp_iso")
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 19:20
von mimocloud
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 21:02
von BlackJack
@mimocloud: Warum sind 1,12 KB zu gross‽
Mal davon abgesehen, dass ich nicht glaube, dass man ein ISO-Image *beschreibbar* per ``mount`` eingehängt bekommt, warum soll nach einem „repack” — was immer das auch konkret sein soll — das Image nicht mehr bootbar sein? Wenn man vorher analysiert was alles in dem Image drin ist und das auch alles wieder hinein steckt, dann sollte sich doch an den Eigenschaften grundsätzlich nichts geändert haben. Abgesehen von den gewollten Änderungen.
Re: iso datei binary stream reader bearbeiten
Verfasst: Freitag 3. Mai 2013, 21:28
von mimocloud
Mit repack meine ich das ich das image entpacke die Datei bearbeite
Und dann wieder als ISO packe.
bei ISO Dateien gib es einen Boot Parameter und eine Boot Datei bzw. Bootloader
Hab bis dato aber noch nicht rausbekommen wie man den unter der Shell oder os.System setzt.
Re: iso datei binary stream reader bearbeiten
Verfasst: Samstag 4. Mai 2013, 14:22
von mimocloud
So hab jetzt was gefunden bekomme es aber nicht ganz zum laufen.
Derzeit soll folgendes geschehen:
1. Image Entpacken.
2. Auf der Server hochladen.
3. Variablen anpassen.
4. Dateien Wieder als ISO packen.
Um den ganzen Spaß auch bootbar zu machen benutze ich "genisoimage". Mit diesem Tool kann man auch die bootparamter setzten.
Aus welchem Grund auch immer funkt das aber unter Ubuntu 12.04 nicht so ganz. Kann jemand von euch da vllt. mal drüber gucken?
Ich mach gerne mal Fehler und finde diese dann am ende nicht
Code in der Shell welcher über Python aufgerufen werden soll:
Code: Alles auswählen
genisoimage -o foo.iso -l /root/ubuntu_10.04/ -b /ubuntu_10.04/isolinux/isolinux.bin -c /ubuntu_10.04/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table
LG & Danke im Vorraus!
Re: iso datei binary stream reader bearbeiten
Verfasst: Samstag 4. Mai 2013, 14:43
von BlackJack
@mimocloud: „Funktioniert nicht so ganz” ist keine brauchbare Fehlerbeschreibung.
Re: iso datei binary stream reader bearbeiten
Verfasst: Samstag 4. Mai 2013, 16:26
von mimocloud
Damit meine ich ich bekomme folgenden fehler wenn ich den befehl einfach nur so in der shell ausführe.
Abgeschickter Befehl:
Code: Alles auswählen
genisoimage -b /root/ubuntu_10.04/isolinux/isolinux.bin -c /root/ubuntu_10.04/isolinux/boot.cat -o foo.iso -l /root/ubuntu_10.04
Fehler:
Code: Alles auswählen
I: -input-charset not specified, using utf-8 (detected in locale settings)
call to search_tree_file with an absolute path, stripping
initial path separator. Hope this was intended...
genisoimage: Uh oh, I cant find the boot catalog directory '/root/ubuntu_10.04/isolinux'!
Ganz egal wie ich es dreh und wende der mag meine Paramter anscheinend nicht!

Re: iso datei binary stream reader bearbeiten
Verfasst: Samstag 4. Mai 2013, 16:39
von BlackJack
@mimocloud: Existieren denn alle dort angegebenen Pfade? Es gibt da ja einen Unterschied zwischen dem ersten und den anderen beiden. Gibt es tatsächlich ein ``/ubuntu_10.04/``-Verzeichnis? Ich würde da ja nichts ablegen. Und unter ``/root/`` hat da IMHO auch nichts zu suchen. Für das erstellen eines ISO-Images braucht man nämlich normalerweise keine root-Rechte.
Re: iso datei binary stream reader bearbeiten
Verfasst: Samstag 4. Mai 2013, 16:58
von mimocloud
So der vollhorst hat es geschafft!
Code: Alles auswählen
genisoimage -r -V "ISO-VOLNAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o NAME-OF-ISO.iso /root/ubuntu_10.04
http://linux.die.net/man/1/genisoimage