Entwickler-Ecke
Sonstiges (Delphi) - EXE-Packer (SFX-exe)
Taktaky - Di 31.07.07 22:14
Titel: EXE-Packer (SFX-exe)
Hallo
ich möchte einen exe-Packer erstellen. Der exe-Packer soll alle html-Dateien, die in einem Ordner sich befinden zu exe umwandelt (packt als SFX). Und wenn man die erstelle exe ausführt, soll die exe Datei irgendwo automatisch entpackt (z.B. in Temp oder in Memory). Man muss vor dem Packen eine Datei auswählen (bestimmen), die nach dem Entpacken starten soll.
Hier ist ein beispiel. Das finde ich fast 100% ahnlich wie mein Wunsch
Quelle :
http://ebook-compiler.lowes-technologies-consulting.qarchive.org
Das prinzip :
http://dn.codegear.com/article/27843
Meine Frage:
Mit Welchen Themen muss ich beschäftigen, damit ich sowas mit Delphi erstellen kann?
Gruss
Moderiert von
Christian S.: Topic aus Multimedia / Grafik verschoben am Di 31.07.2007 um 22:22
Arne K. - Di 31.07.07 22:35
Da du da vermutlich über Window's Resource-Handling nicht drum herum kommen wirst (es sei denn, du kannst auf eine einzige .exe-Datei zu Gunsten von einer Datei + einem Archiv verzichten), würde ich erster Linie sagen: WinAPI
Delete - Di 31.07.07 22:55
Guck mal hier:
http://www.michael-puff.de/dirindex.php?folder=Developer/Delphi/Programme/ -> SFXTools.zip
Und das was du machen willst, ist kein Exe-Packer, sondern ein selbst entpackendes Archiv. Und wenn ich das lese:
Taktaky hat folgendes geschrieben: |
Der exe-Packer soll alle html-Dateien, die in einem Ordner sich befinden zu exe umwandelt |
Dann fehlen dir noch ziemliche Grundlagen, wie so etwas funktionieren könnte. Insofern, glaube ich kaum, dass du was mit meinem Code anfangen kannst.
Das Prinzip ist folgendes:
Es gibt einen Exe-Stub an dem mittles einer anderen Exe die Dateien angehangen werden. Der Exe-Stub bleibt auch weiterhin mit den angehangenen Dateien ausführbar. Zum Entpacken wird der Exe-Stub ausgeführt und kopiert die angehangenen Dateien auf die Festplatte.
Man muss sich dazu aber einiges organisatorisches überlegen, spätestens, wenn man mehr als eine Datei anhängen will:
- Wie speicher ich die Pfade (wenn Unterverzeichnisse mit gepackt werden sollen)?
- Was für eine Struktur brauche ich, um die angehangenen Dateien nachher wieder trennen zu können.
Man könnte zum Beipiel so was machen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Exe-Stub Größe Datei 1 Datei1 Größe Datei 2 Datei 2 Größe Datei 3 Datei 3 ... Gesamtgröße aller Dateien plus Größenangaben |
Um die Dateien wieder auslesen zu können, muss man nun am Ende des Exe-Stubs den Wert lesen, der angibt, wie groß alle Anhänge sind. Dann weißman, wo die Exe aufhört und die Daten anfangen. Nun ja und dann liest man eben die Angegeben Anzahl Bytes und schreibt sie auf die Festplatte.
Will man jetzt auch noch die Pafe speichern, reicht es natürlcih nicht nur die Dateigröße zu speichern. Da muss man sich dann eine entsprechende Struktur ausdenken, in der man noch den Pfad speichern kann.
Alternativ ginge auch so was:
Quelltext
1: 2: 3: 4: 5:
| filerecord begin Offset Pfad end |
Und dann am Exe-Stub:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| filerecord 1 Datei 1 fileecord 2 Datei 2 filerecord 3 Datei 3 ... Gesamtgröße aller Dateien plus Größenangaben |
Dann könnte man auch noch einen großen Record an den Anfang oder das Ende schreiben.
Da musst du dir eben was ausdenken.
Taktaky - Mi 01.08.07 10:41
Vielen Dank Luckie !
Wie ich sehe, es ist nicht einfach für mich. Ich werde aber nie aufgeben auch wenn es mir viel Zeit verlangt.
Ich werde auch sehr dankbar für jede Hilfe.
Ich kann zwar mit delphi kleine Sachen programmieren aber sowas :(
Nachdem ich ein ähnliches Programm seine kleine Grösse etwa 800 kb gefunden, habe ich gedacht es ist leicht sowas zu programmieren.
Danke noch einmal für Deine Erklärung !
Viele gruße
Delete - Do 02.08.07 10:22
Noch was, die Exe-Stub sollte am besten ohne VCL programmiert werden, sonst ist der Overhead einfach zu groß. Eine der wenigen Situationen, in denen eine direkte Programmierung mit der WinAPI Sinn ergibt. ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!