DLL injecten geht bei mir, bei nem Kumpel aber ned... [erledigt]



  • Na dann prüfe, wie schon mehrfach gesagt, JEDEN Rückgabewert JEDER Funktion. Irgendwo wird das schieflaufen, wie sollen wir dir das hier sagen, wenn wir dein Problem nicht reproduzieren können, selbst wenn wir uns dazu motivieren könnten, es zu tun.



  • ceplusplus@loggedoff schrieb:

    Aber: Es tritt kein Fehler auf!

    Hab jede Funktion in insertDll() geprüft, jede gibt einen Wert ungleich 0 zurück. Auf jedem System. Aber trotzdem wird auf manchen Systemen nicht injiziert... Bei "XP Media Center Edition" gehts auch nicht...
    Überall als Admin probiert, kein AntiVirus, ...

    MfG



  • Das ist unmöglich. Dann machst du in deiner DLL irgendwas zweifelhaftes in DllMain oder so.



  • Inf.Student schrieb:

    Das ist unmöglich.

    Ja, das denke ich auch ständig 😞

    #include <windows.h>
    
    bool WINAPI DllMain(HMODULE hDll, DWORD dwReason, PVOID pvReserved)
    {
    	if(dwReason == DLL_PROCESS_ATTACH)
    		;
    	else if(dwReason == DLL_PROCESS_DETACH)
    		;
    
        return true;
    }
    

    Es ist aber so... Aber es muss doch mit meiner DLL zu tun haben, immerhin funktioniert es mit anderen ja überall, doch mit meiner Selbsterstellten nicht überall...



  • Um welches Programm geht es? Bist du dir sicher, daß das Programm keine Maßnahmen enthält?



  • Zuerst mit nem alten Spiel, dann mit procexp.exe (Process Explorer) versucht. Haben beide sicher keine Maßnahmen, außerdem bleibt es beim selben: Bei meinen zwei PC's gehts (XP Home & XP Prof.), auf paar anderen Systemen nicht... Mit ner Microsoft DLL gehts überall...

    MfG



  • Hilfe 😕 😞



  • Bei dem Code von http://datakeeper.lima-city.de/html/winject.txt hatte es bei dir nicht geklappt mit result==6, richtig? In dem Code steht in "InjectOrEject"

    ht = CreateRemoteThread( hProcess, 0, 0, (DWORD (__stdcall *)( void *)) p, c, 0, &rc );
    if ( ht == NULL ) 
    	nResult=6;
    

    . Hast du in deinem Codestückchen mal probiert, ob CreateRemoteThread schiefgeht? Wenn's NULL zurückgibt, dann zeig mal den GetLastError.


  • Mod

    Mit GetExitCodeThread müsstest Du den Returncode von Deinem Remotethread bekommen. Das müsste ja der DLL-HINSTANCE Wert sein. Zumindest wüsstest Du dann ob der LoadLibrary überhaupt funktioniert.



  • Danke, aber auch bei diesem Code...

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-214120-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html#1517111

    ...funktioniert es nicht. Dabei geben aber alle Funktionen auf jedem System !0 zurück, trotzdem wird auf einigen Systemen nicht injiziert.

    MfG


  • Mod

    1. Alle DLLs wirklich auf der Maschine?
    2. Was ist der Returnwert Deines Threads? Nach dem injezieren?
    3. Terminiert der Thread normal?

    Mögichkeit:
    1. Deine DLL funktioniert nicht...
    2. Deine DLL braucht DLLs die auf dem Zielsystem nicht geladen werden können
    3. Dein DLL beendet DllMain nicht korrekt und wird wieder entladen.



  • Hey!

    Hab das Problem immer noch. Jetzt wirds aber dringend, dass es auf allen XP Systemen funktioniert...
    Grade wieder mit nem Kumpel getestet.

    Hab mir jetzt einen Universal-DLL-Injector zugelegt. Er gibt bei mir keinen Fehler aus, und die DLL wird tatsächlich im Prozess ausgeführt.
    Beim Kumpel gibt der Injector auch keinen Fehler aus, aber die DLL wird nicht im Prozess ausgeführt!

    Somit ist es klar, es liegt nich an meinem Injektor, sondern an meiner DLL!
    Denn der UniversalInjektor wurde zu genüge getestet...

    Frage:
    Was muss ich beim schreiben einer DLL beachten, welche in einem Prozess ausgeführt werden soll? Brauche ich da extern "C", __declspec(dllimport) Anweisungen?

    An irgendwas muss es ja liegen...

    👎 😕



  • das hab ich dir vor 3 monaten schonmal gesagt, es liegt an dem virenscanner von deinem kumpel. woher sollen wir wissen was sein rootkit da alles im system macht.



  • Der hat nur Avast oben, und das hat er zuvor komplett deaktiviert...
    Er hat mal mit Process Explorer nachgesehen, wie vermutet ist die .dll einfach nicht im Prozess... Bei mir gehts doch aber verdammt, und auf meinem anderen PC auch... 😞

    Eine andere DLL lässt sich ja sogar laden, zB. eine von Microsoft...
    Deshalb bin ich mir so sicher, dass es an meinem DLL Code liegt (Eh schon gepostet)...



  • ceplusplus@loggedoff schrieb:

    XP Professional System:
    DLL Injizieren funktioniert

    XP Home System 1:
    DLL Injizieren funktioniert

    XP Home System 2:
    DLL Injizieren funktioniert nicht
    (detoured.dll geht aber zB, nur meine nicht!)

    XP Home System 3:
    DLL Injizieren funktioniert nicht
    (detoured.dll geht aber zB, nur meine nicht!)

    Bei Home System 2 & 3 werden zwar msvcp71.dll und MSVCR71.DLL in den Prozess geladen, meine DLL aber nicht... Was ist da los?

    Falls das immer noch so ist, dann prüf mal mit einem "DependencyWalker" ob die eigene DLL außer den beiden ev. noch eine DLL braucht (die auf dem "Zielsystem" nicht vorhanden ist).



  • Lag tatsächlich an den Abhängigkeiten... daran hatte ich irgendwie nicht gedacht...

    Thx a lot!



  • ich auch nicht, sehr gut 👍


Anmelden zum Antworten