Datei an EXE anhängen



  • Hi,
    wie kann ich an ein Programm dateien "anhängen"? Das Programm soll danach noch starten können.
    So eine Art Setup.

    ich danke schonmal im vorraus



  • Mal so grob gesagt:

    Gar nicht! :p

    Wie willst du die Dateien denn Trennen und wieder lösen bzw. anhängen?

    Wo sollen die hin 😕



  • klar geht das, ging zu mindest bei DOS-Exeecutables... denk mal, dasss das bei NE auch so ist. ganz am ende geht, wenn du den headeer nicht modifizierst.



  • achso und trennen kannst du das, indem du entsprechendee infos im exe-header auslieest (länge des programms in paragraphen usw.)



  • Hi,

    da ich ja ganz ursprünglich aus der VisualBasic-ecke komme (nein, bitte nicht it Steinen werfen 😃 ), weis ich das es doch geht. Es gibt mindestens ein leider nicht kostenloses Programm, dass das kann -

    http://www.vbarchiv.net/download/download_121.html

    Warum soll es auch nicht gehen?
    Es wird denke es arbeitet so: Dem eigentlichen Programm wird eine Routine vorgeschaltet, die die anderen Dateien mithilfe von Offsets-addressen auspackt, nachdem sie einfach binär an die eigentliche Exe angehängt wurden und dann aus dem Programm-code löscht.

    Eben eine Art Selbstextrahierendes Zip + Ausführung einer eingebetteten Exe

    brw. im Vb@rchiv war ich mal ein halbes Jahr Moderator 🙂



  • Habt ihr auch ne idee wie des mit c oder c++ zu realisieren is?
    @todo: meinst du dass man einfach die einzelnen bytes der anzuhängenden dateien an die exe dranhängt? und wie sieht dann der header eines Programms aus?
    wär net schlecht wenn jemand n tut oder sowas dazu hätte



  • Wenn die anzuhängenden Dateien zur Compilierzeit feststehen und du Windows verwendest, kannst du mittels Ressourcen alles Mögliche in deine exe dazutun.



  • an eine Exe kann man weitere dateien Anhängen. Die "obere" Exe kann man sogar ohne Probleme ausführen. Den Header kannst Du dann nach dieser Exe erzeugen, muss aber eindeutig identifizierbar sein. Unter WinAPI gibt es da eine Funktion fällt mir im Moment nicht ein damit kann man Uniqe IDs erstellen.
    Dann könnte der Header so aussehen:

    2933BF90-7B36-11d2-B20E-00C04F983E60
    Name_Datei_1:Länge_in_Bytes
    Name_Datei_2:Länge_in_Bytes
    2933BF90-7B36-11d2-B20E-00C04F983E60
    

    Naja, diese UID solltest Du nicht verwenden weil sie existiert (ist CLSID von MS XML DOM) oder könntest.



  • machs so...

    Hänge deine datei an die EXE-Datei ran. Dann Hänge die Filsize des "Zusatzblocks" ran... also

    Dateistructur = Original-EXE,Zusatzdata,SizeofZusatzData

    Zum extrahieren öffne die Datei. Spring z.B. mit fseek an das Fileende -4Byte ( sizeof(int) ). Lies die SizeofZusatzData. Fseeke Filesize - SizeofZusatzData - 4 und lese von da SizeofZusatzData Bytes aus... tada

    good luck


Anmelden zum Antworten