[C/C++] Problem mit dll injekt Funktion...

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von NobodyPerfect, 5. August 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. August 2009
    Problem mit dll injekt Funktion...

    Hi, ich habe ein Problem mit meiner dll injekt Funktion....
    1. Ich habe fehler drinne (man mag es vllt. nicht glauben )
    2. Ich weiss nich wie ich die größe übermittel sizeof ist ja nur für die variablen größe..

    hier mal mein Code^^...vllt. kann ja wer helfen

    Vielen Dank

    PHP:
    void Injekt ( char Window , char DllPath ){
        
    int Inject ;
        
    LPVOID DLLVirtLoc ;
        
    FARPROC LibAddress ;
        
    LPDWORD ThreadID ;
        
    HANDLE hProcess FindWindow ( NULL Window ),  CreateThread ;
        
    DLLVirtLoc  VirtualAllocEx (( HANDLE ) hProcess 0 sizeof ( DllPath ), ( DWORD ) 0x1000 , ( DWORD ) 0x4 );
        
    Inject  WriteProcessMemory (( HANDLE ) hProcess DLLVirtLoc DllPath sizeof ( DllPath ),  NULL );
        
    LibAddress  GetProcAddress (( HMODULE ) GetModuleHandle ( "kernel32.dll" ), ( LPCSTR ) "LoadLibraryA" );
        
    CreateThread  CreateRemoteThread (( HANDLE ) hProcess NULL 0 ,( LPTHREAD_START_ROUTINE ) LibAddress , ( LPVOID ) DLLVirtLoc 0 , ( LPDWORD ) ThreadID );
    }
     
  2. 5. August 2009
    AW: Problem mit dll injekt Funktion...

    Ich hab mir deinen Code nur ungefähr 5 Sekunden angeschaut. Aber wie wärs, wenn du mal die Fehler genauer abfängst (Jede Funktion hat einen Rückgabewert, den man auswerten kann). Dadurch kannst du dann feststellen, bei welcher Funktion der Fehler auftritt und evtl. Google bemühen, ob andere schon Probleme damit hatten.

    Aber deine Überlegung ist schon richtig. sizeof liefert nur die Größe der Variable zurück. Da DllPath ein Pointer ist, ergibt sizeof(DllPath) auch nur 4 (auf 32bit systemen). Um die Stringlänge herauszufinden, musst du strlen() benutzen.
     
  3. 5. August 2009
    AW: Problem mit dll injekt Funktion...

    Hmm, joar also genau das ist mein Problem.. die Funktion benötigt ja ne größe der Datei, und diese weiss ich mir nicht zu ermitteln...bekomme nur Hilfe von der MSDN ^^...aber dort finde ich nichts wie ichs machen könnte, deshalb wollte ich hier mal nachfragen...an sich sollte es dann eig funktionieren
     
  4. 5. August 2009
    AW: Problem mit dll injekt Funktion...

    Naja wenn du die MSDN benutzt, dann schau dir mal jede einzelne Funktion an und fang deren Rückgabewert ab. Bei VirtualAllocEx steht z.B.
    Du weißt ja nichtmal genau, wo der Fehler auftritt, also wie willst du ihn beheben?
     
  5. 5. August 2009
    AW: Problem mit dll injekt Funktion...

    Schau dir die Funktionen OpenFile, GetFileSize, ReadFile und evtl. MapViewOfFile an.

    Und wie pyro gesagt hat schau dir die Funktionsweiße der Funktionen an die du bereits verwendest.

    Des weiteren wird wohl die Injektiert DLL nich lange laufen das sie bestimmt nicht ihn ihrem Addressraum geladen wird und deswegen neu "gemapped" werden sollte obs das mit MapViewOfFile geht weiß ich jetzt nicht.

    Mfg Rushh0ur
     
  6. 5. August 2009
    AW: Problem mit dll injekt Funktion...

    Hmm, okay... es hapert schon beim VirtualAllocEx es gibt ne 0 und der CallError gibt ne 6

    ich glaube ich gebe dem nen falschen Handle?!
    Brauch er vllt...?^^

    hwnd = FindWindow(....)
    GetWindowThreadProcessId(hwnd, ProcessID)
    bla= OpenProcess(PROCESS_ALL_ACCESS, false, ProcessID)

    EDIT: Ich melde mich gleich nochmal..

    EDIT2: Alles kla, habs hinbekommen... *CLOSED* ?!^^
     
  7. 6. August 2009
    AW: Problem mit dll injekt Funktion...

    Wie wärs wenn du deine lösung auch posten würdest ? Ich könnte mir vorstellen, dass dies hier einige interessieren würde....
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.