Programm zum Kombinieren von zwei exe-files



  • Hallo,

    Ich möchte ein Programm schreiben, dass zwei exe-Dateien zusammenfasst, sodass erst ein Programm gestartet wird und nach dem beenden die Befehle des zweiten Progs ausführt. Allerdings soll es nur aus einer exe bestehen. Mein Ziel ist es also die main-Funktionen "zusammen zu packen". Meine Fragen sind dabei:
    -Wie kann man eine Funktion schreiben, der die Main-Funktionen erkennt und die Speicheradressen vom Anfang und des Endes zurückgibt.
    -Wie kann ich die main-Funktionen so verbinden, sodass sie noch funktionieren.

    Danke für die Antworten.
    mfg Nudel



  • Hast du jeweils den Code für die beiden Programme, oder nur die .exes?

    Wenn du den Code nicht hast, bleibt dir wahrscheinlich kaum etwas anderes übrig, als die .exes zumindest temporär einzeln auszupacken, und von einem dritten Programm dann der Reihe nach aufrufen zu lassen.



  • die beiden echsen als resource einbinden (compiler meldet unknown format
    einfach ignorieren).
    dann

    int main() // oder WinMain wenn du die konsole nicht willst
    {
        CreateProcess("exe1.exe") // oder was anderes
        CreateProcess("exe2.exe")
    }
    

    die namen mussen die namen der resourcen-exe sein.

    für CreateProcess mal googeln, wenn du windows nutzt gibts die
    funktion tatsächlich

    #include <windows.h>
    CreateProcess



  • das programm sollte nicht von anderen programmen abhängig sein. Es soll nachher nur noch eine exe dastehen. Ja es sin exe Dateien die ich zusammenführen will. Irgendwie ist es möglich. Es gibt ja schließlich patches und exe/com Viren.(Meine Absicht ist es natürlich nicht Viren zu schreiben)
    fragt sich nur wie ich befehle aus einer exe so extrahiere, dass ich es in eine andere exe irgendwie importiere.

    Dort ist ja ein rießen Müll vor den eigentlichen Befehlen, die die standartroutinen eines programms sind. Frameworks usw.

    Ich hab es bereits hingekrieg ans Ende einer exe eine andere exe zu setzen sodass die erste exe noch funktioniert, die zweite wird nicht aufgerufen:
    die namen sind nicht gerade professionell ich weiß

    #include <stdio.h>
    #include <iostream.h>
    
    void main (void)
    {
    	FILE *ursprung =fopen("G:\\FEsetup.exe","a");
    	FILE *ziel =fopen("G:\\fake.exe","w");
    	fwrite (main,200000,1,opfer);
    	cout << sizeof(main); //bloß da damit ich sehe dass er läuft
    }
    


  • Lern coden.



  • helferlein schrieb:

    die beiden echsen als resource einbinden (compiler meldet unknown format
    einfach ignorieren).
    dann

    int main() // oder WinMain wenn du die konsole nicht willst
    {
        CreateProcess("exe1.exe") // oder was anderes
        CreateProcess("exe2.exe")
    }
    

    die namen mussen die namen der resourcen-exe sein.

    für CreateProcess mal googeln, wenn du windows nutzt gibts die
    funktion tatsächlich

    #include <windows.h>
    CreateProcess

    Ich möchte die alten exes allerdings nicht mehr haben



  • ohne tiefergehende Kenntnisse des PE formats und ohne die disassemblierung der exen (evenuell müssen ja sprung und datenadressen angepasst werden) wirst du nicht weiterkommen, wenn das speichern der exen in den ressourcen (und das entpacken, ausführen, löschen) nicht in frage kommt.



  • danke :_)


Anmelden zum Antworten