[gelöst] SFX/EXE Archiv Packer mit Linux erzeugen

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Dristar
Beiträge: 72
Registriert: 13.09.2004 12:46

[gelöst] SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag 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
:praise:
Zuletzt geändert von Dristar am 05.03.2010 20:14, insgesamt 1-mal geändert.
PB 4.61 Beta 1 , Linux Ubuntu 11.10 ...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag von ts-soft »

Wo ist die Frage? <-- na hier ! (bobobo)
Dristar
Beiträge: 72
Registriert: 13.09.2004 12:46

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag von Dristar »

@ts-soft

ups !! :oops:


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
PB 4.61 Beta 1 , Linux Ubuntu 11.10 ...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag von ts-soft »

Dristar hat geschrieben:@ts-soft

ups !! :oops:


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
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag 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.
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag 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
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag 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. :mrgreen:

OK, ich bin eines besseren belehrt. :wink:
Dristar
Beiträge: 72
Registriert: 13.09.2004 12:46

Re: SFX/EXE Archiv Packer mit Linux erzeugen

Beitrag von Dristar »

@ts-soft

wow :mrgreen: . 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
PB 4.61 Beta 1 , Linux Ubuntu 11.10 ...
Antworten