Datenstrom in externes Programm schicken



  • [Win32 Anwendung]

    Ich habe ein Programm was intern ungefähr so aussieht:

    char var[10];
    cout<<"Eingabe: ";
    gets(var);
    printf("%s",var);
    

    Die Frage ist jetzt wie kann ich über ein externes Programm Eingaben in dem Zielprogramm machen?

    Ziel ist es einen Buffer Overflow zu erzeugen und zu einer bestimmten Adresse in dem Programm zu springen. Den Overflow zu erzeugen und zu einer beliebigen Adresse zu springen ist auch eigentlich kein Problem das hab ich schon öfters gemacht, jedoch haben da die Programm immer Parameter erwartet oder halt Dateien eingelesen.

    Hier hänge ich jetzt eigentlich nur vor dem gets rum ich weiss nicht wie ich meine Overflow Daten darein bekommen kann. Mit SendInput kam ich da leider auch nicht weiter da sich anscheind bestimmte Zeichen nicht simulieren ließen. (Nicht druckbare ASCII Zeichen).



  • Hab was gefunden. 😃

    Mit putchar und fwrite funktioniert es.

    #include <stdio.h>
    
    int main()
    {
    unsigned eip = 0xDEADBEEF;
    int i;
    
    for (i = 0; i < 4; i++)
    {
    putchar('A');
    }
    
    fwrite(&eip, 1, sizeof(eip) , stdout);
    
    return 0;
    }
    

Anmelden zum Antworten