Prozess starten und SOFORT schlafen legen, wie?



  • Hallo!
    Ich habe in den letzten Tagen an einer Hookroutine gewerkelt...funktioniert auch alles bestens. Jetzt habe ich aber ein Programm, das wie mir scheint alle Funktionen am Start dynamisch per GetProcAddress läd(t? 🙄). Es wäre ja kein Problem die GetProcAddress dann zu hooken nur werden die Funktionen direkt am Start des Programms geladen! Jetzt dachte ich mir, ich könnte das Programm in meinem DllInjector laden und DIREKT schlafen legen, ihm die Dll injizieren, die GetProcAddress hookt und dann wieder das Programm aufwecken. Ist das irgendwie möglich?

    Gruß,
    Kevin



  • An deiner stelle würde ich CreateProcessA/W hooken, den prozess suspended createn, alles was du willst hooken und ihn fortsetzen. Is eine der sichersten methoden -.-



  • Gibt mal bei CreateProcess bei dwCreationFlags CREATE_SUSPENDED (mit) an 🙂

    The primary thread of the new process is created in a suspended state, and does not run until the ResumeThread function is called.



  • *g* danke habs grad auch in der MSDN gelesen 😉



  • SUPER!!! Das Programm muss natürlich abstürzen wenn ich es per CreateProcess erstellt habe und es danach hooken will...wenn ich es normal starte und hooke geht alles, ist was an dem Aufruf falsch? (ist nicht Suspended...):

    PROCESS_INFORMATION ProcessInformation;
    					STARTUPINFO startupinfo;
    					ZeroMemory(&startupinfo, sizeof(STARTUPINFO));
    					ZeroMemory(&ProcessInformation, sizeof(PROCESS_INFORMATION));
    					startupinfo.cb = sizeof(STARTUPINFO);
    
    					if(!CreateProcess("C:\\test.exe", 0, 0, 0, 0, NORMAL_PRIORITY_CLASS,
    						0, 0, &startupinfo, &ProcessInformation))
    


  • also bei mir ging das immer 😛
    vllt hast irgendwo shit gebaut. Wie hookst du? nimmst du ApiHijacking mit setwindowshookex oder direkte jumpanweisungen mit libinjection?



  • bist du dir sicher, dass du beim Hooken nichts falsch gemacht hast - bzw. was hast du alles gehookt?



  • oh gott ich bin so bescheuert, hatte meine injizieranwendung im debugmodus am laufen und da ist die Funktion die ich dem anderen Prozess einfüge ja größer...jetzt stimmt alles und funktioniert auch bestens! Ich danke euch!

    Gruß,
    Kevin


Anmelden zum Antworten