.exe mit anderem einstiegspunkt starten



  • Hi,
    Ich würde gerne 2 exedateien in 1 packen, dazu hab ich die beiden einfach mit fwrite aneinandergehängt und 5 * dazwischen gepackt, um den beginn der 2. Datei zu kenzeichnen. Wenn ich die datei jetzt starte, startet natürlich ganz normal die 1. Der beiden exen. Meine frage ist jetzt, wie ich windows anweißen kann, die exe ab dem startpunkt hinter den 5 * auszuführen und nich an dem startpunkt zu beginn der datei? Das ganze ist das so zu sagen eine art exebinder (der begriff gefällt mir nicht, das klingt so noch vieren).das ganze funktuoniert problemlos, wenn die die datei einlese und den teil hinter den 5 * in eine neue exe schreibe, aber das ist halt nicht ganz die lösung dje ich suche, ich würde den process lieber direckt starten 😃 (ich verwende Eclipse und MinGw)

    Danke schonmal im Vorfeld 😃



  • und jetzt bitte noch mal Nachvollziehbar!



  • ~Question schrieb:

    und jetzt bitte noch mal Nachvollziehbar!

    Besser? Ich weiß leider nicht, wie ich das anders erklären soll 😞



  • Wozu soll das gut sein? Für mich klingt das, als ob deine Anwendung bei Ausführung seine eingebettete Anwendung extrahieren und in den Autostart Ordner legen soll - also wie ein Virus.
    Ich würde gerne nachvollziehen, warum es keine 2 Anwendungen sein können und stattdessen dieses Verbrechen an der Programmstruktur begangen wird.



  • Youka schrieb:

    Wozu soll das gut sein? Für mich klingt das, als ob deine Anwendung bei Ausführung seine eingebettete Anwendung extrahieren und in den Autostart Ordner legen soll - also wie ein Virus.
    Ich würde gerne nachvollziehen, warum es keine 2 Anwendungen sein können und stattdessen dieses Verbrechen an der Programmstruktur begangen wird.

    Nein, keine sorge, kein virus. Ich habe ein programm, das lekder nicht auf allen windowsveraionen läuft (aufgrund von incompatibilität von einigen funktionen). Ich würde gerne die exen für die verschiedenen windows-versionen in in 1 datei packen. Ich habe dan also am beginn der .exe ein programm, dass auf allen windows-versionen läuft, die version ermittelt und das entsprechende programm startet.



  • Und deswegen gleich 2 exe? wtf? Schreib einfach 2 verschiedene Funktionen, die in Abhängigkeit der Windows-Version aufgerufen werden.



  • SG1 schrieb:

    Und deswegen gleich 2 exe? wtf? Schreib einfach 2 verschiedene Funktionen, die in Abhängigkeit der Windows-Version aufgerufen werden.

    Fail 😃 ich sollte glaub besser mitdenken 😃 sry für die störung 😃 um die zeit bring ich einfach nixmehr zustande 😉



  • SG1 schrieb:

    Und deswegen gleich 2 exe? wtf? Schreib einfach 2 verschiedene Funktionen, die in Abhängigkeit der Windows-Version aufgerufen werden.

    Fail 😃 ich sollte glaub besser mitdenken 😃 sry für die störung 😃 um die zeit bring ich einfach nixmehr zustande 😉



  • Tools aus der Sysinternal Suite machen das so. Üblicherweise starten die eine 32Bit exe und die prüft dann, ob es sich um ein 32 oder 64 Bit System handelt. Sollte es 64 Bit sein, dann wird eine 64bittige Anwendung "aus dem Bauch" kopiert und gestartet.

    Ich bin auch der Meinung das du gerade eine ziemliche Vergewaltigung vornimmst. Überlicherweise macht man sowas hier mit:
    http://geekswithblogs.net/TechTwaddle/archive/2009/10/16/how-to-embed-an-exe-inside-another-exe-as-a.aspx

    Wenn du es richtig schön und sauber haben willst, dann schmeiß den procexplorer aus der Sysinternal Suite in einen Disassembeler und guck nach wie die das machen. Hab das zwar auch mal programmiert aber weiß gerade nicht wo ich den Code snippet habe



  • procexp.exe hat procexp64.exe als Resource, und schreibt sie nach user temp um sie auszuführen.



  • Ich hab das jetzt sogar so wie beschrieben geschafft. Ich habe die datei in den ram geladen und von dort aus als neuen thread in meinem hauptprogramm gestartet (was allerdings keinen sinn macht, da ich mit einem x32 programm keine x64 exe öffnen kann und damit für meinen fall wertlos ist 😃 )



  • Doch das geht, google hilft.



  • Hallo wie hast du das gemacht, könnte ich den code bitte haben?





  • Nein ich meine wie man den prozess aus dem ram startet ohne ihn in eine datei zu schreiben.



  • Aus einer resource laden, in den ram kopieren, betroffenen ramsektor schützen, header suchen und als neuen thread im laufenden programm einbinden (CreateProcess) 😃



  • kann ich den code bitte haben ich bin nicht so erfahren mit winapi.



  • deywwwi schrieb:

    kann ich den code bitte haben ich bin nicht so erfahren mit winapi.

    Ein Unregistrierter ignoriert Hilfe und möchte den fertigen Code. Kein gutes Verhalten 🙄

    simsusim schrieb:

    Aus einer resource laden, in den ram kopieren, betroffenen ramsektor schützen, header suchen und als neuen thread im laufenden programm einbinden (CreateProcess) 😃

    Das Forum soll beim Lernen helfen, so bitte berücksichtige seine Anleitung und schreibe ihn selbst, dadurch lernst du auch etwas WinAPI. Nach den Funktionen fragen ist ok, aber nichts fertiges.



  • deywwwi schrieb:

    kann ich den code bitte haben ich bin nicht so erfahren mit winapi.

    Programmier dir deine Viren/Trojaner hübsch selbst.



  • gib mir den code oder ich reiß dir deinen hässlichen kopf ab und fress ihn auf!


Anmelden zum Antworten