Seite 1 von 2
[gelöst] SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 19:12
von Dristar
Hallo
Ich möchte unter Linux ein ZIP Archive in eine SFX (Selbstentpackendes Archiv) wandeln und für Windows anbieten.
Dazu schreibe ich ein Programm unter Windows das ein Zip entpacker drin hat und die entpackte EXE auch gleich startet kann.
Daszu brauch ich eure hilfe.
Unter Linux habe ich dann das fertige Windows Entpacker Programm und füge mit dem Linux befehl
"cat Name-Entpacker.exe Name-ZIP_Archiv.zip > Name-EndProgramm.exe"
die Dateinen zusammen. Die dann unter Windows gestartet und entpackt werden.
mfg Dristar

Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 19:17
von ts-soft
Wo ist die Frage? <-- na hier ! (bobobo)
Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 20:00
von Dristar
@ts-soft
ups !!
1) Was für möglichkeiten habe ich unter PB Zip Archiv zu entpacken ? erkennen die das sich in der EXE auch ein ZIP Archiv
befindet ? dazu breuchte ich Beispiele code
2) Wie bekomme ich den Path und namen meiner eigenen EXE ?
Ich habe eine ungefähre Vorstellung wie das Programm ablaufen soll.
Nur weiss ich noch nicht was für Probleme mit der einen oder anderen Lösung auf mich zukommen könnten.
mfg Dristar
Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 20:10
von ts-soft
Dristar hat geschrieben:@ts-soft
ups !!
1) Was für möglichkeiten habe ich unter PB Zip Archiv zu entpacken ? erkennen die das sich in der EXE auch ein ZIP Archiv
befindet ? dazu breuchte ich Beispiele code
siehe hier:
http://www.realsource.de/index.php/down ... 17-minizip
oder purezip auf gnozals Homepage
Dristar hat geschrieben:
2) Wie bekomme ich den Path und namen meiner eigenen EXE ?
Code: Alles auswählen
GetPathPart(ProgramFilename())
GetFilePart(ProgramFilename())
Dristar hat geschrieben:
Ich habe eine ungefähre Vorstellung wie das Programm ablaufen soll.
Nur weiss ich noch nicht was für Probleme mit der einen oder anderen Lösung auf mich zukommen könnten.
mfg Dristar
Die Windows Exe z.B. aus einer Datasection schreiben und dann das Zip anhängen.
Vielleicht gehts auch mit Cat? Kenne ich nicht.
Gruß
Thomas
Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 22:40
von Marvin
Hm, ich würde dir empfehlen, dir mal ein bisschen was zu objcopy reinzuziehen, damit sollte es kein Problem sein, irgendwas in eine DataSection zu schreiben (Problem ist nur, dass du nicht genau weißt, wo die Section ist)... Weiß nur nicht, inwiefern das mit PE (also Windows-EXE) funktioniert.
Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 22:47
von ts-soft
Marvin hat geschrieben:Hm, ich würde dir empfehlen, dir mal ein bisschen was zu objcopy reinzuziehen, damit sollte es kein Problem sein, irgendwas in eine DataSection zu schreiben (Problem ist nur, dass du nicht genau weißt, wo die Section ist)... Weiß nur nicht, inwiefern das mit PE (also Windows-EXE) funktioniert.
Hä?
Schon mal was von IncludeBinary gelesen?
Das schreibt er auf platte und hängt das zip gleich dran und schließt den file.
Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 22:55
von Marvin
Hm, ich dachte, dass es darum geht, den Packer zu schreiben und dann "auszuliefern", damit man das selbst zusammenfügen kann. Wenn er das zur Compilezeit einbinden möchte, gehts natürlich so.
Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 23:09
von ts-soft
Wenn die SFX z.B. einfach, ohne Auswahlmöglichkeit, nach Temp entpacken soll, sieht der Code der Windows Exe so aus:
Code: Alles auswählen
XIncludeFile "minizip_include.pbi"
ZIP_ExtractArchiv(ProgramFilename(), GetTemporaryDirectory())
Jetzt kann er diese Exe öffnen, mit FileSeek ans ende und das Zip hintendran schreiben, oder er hat diese
Exe in seiner, schreibt diese und schreibt das Zip hintendran.
Mehr ist nicht nötig.
Gruß
Thomas
Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 23:16
von Marvin
Ah, hm, hätte ja sein können, dass die Datei dann ungültig wird, wenn man einfach was hintendran schreibt. Warum auch immer.
OK, ich bin eines besseren belehrt.

Re: SFX/EXE Archiv Packer mit Linux erzeugen
Verfasst: 26.01.2010 23:22
von Dristar
@ts-soft
wow

. Danke das ging leichter als ich dachte
Das Cat unter Linux macht nichts anderes wie unter Windows der joiner. Der hängt einfach an
die EXE das ZIP Archiv.
Mein kleines sfx.exe
Code: Alles auswählen
Define.s zip = GetPathPart(ProgramFilename())+GetFilePart(ProgramFilename())
Define.i i, count = ZIP_GetFilesCount(zip)
If count
For i = 1 To count
ZIP_ExtractFile(zip, i, "c:\Temp")
Next
EndIf
RunProgram("c:\Temp\winvnc.exe" , "", "" , #PB_Program_Wait)
DeleteDirectory("c:\Temp", "*.*" )
Bei meinem Linux leuft der Apache mit PHP.Das PHP script schaut sobalt ein USER auf der Seite ist nach meiner Aktuellen IP und baut im Hintergrund die Fernwartungs EXE zusammen.Mit "Cat sfx.exe fernwartungs.zip > Hilfe.exe" mache ich mir
die EXE die der Hilfesuchende dann runterladen kann. Der User selber mekt davon nichts und ich brauche den DynDNS.org nicht
DANKE an dich @ts-soft