Infizieren



  • Hallo hab ein Problem mit dem infizieren einer dll in ein Process. Also Der Code lässt sich builden und starten. Nachdem ich die Process ID angebe und die Adresse des Handles sowie Memory bekommen habe, strüzt das ZielProgramm ab.

    #include <windows.h>
    #include <cstdio>
    
    typedef HINSTANCE (*fpLoadLibrary)(char*);
    typedef LPVOID (*fpGetProcAddress)(HINSTANCE, char*);
    typedef void (*fpFunktion)(void);
    
    struct INJECTSTRUCT
    {
           fpLoadLibrary loadlib;
           fpGetProcAddress getprocaddress;
           char path[255];
           char func[255];
    };
    
    DWORD WINAPI threadstart(LPVOID addr)
    {
    	HINSTANCE hDll;
    	fpFunktion funktion;
    	INJECTSTRUCT * is = (INJECTSTRUCT*)addr;       
    	hDll = is->loadlib(is->path);
    	funktion = (fpFunktion)is->getprocaddress(hDll, is->func);
    	funktion();
    	return 0;
    
    }
    void threadend()
    {
    }
    
    int main()
    {
        HANDLE hProc;    
    	LPVOID start, thread;    
    	DWORD funcsize, written;   
    	HINSTANCE hDll;    
    	INJECTSTRUCT is;  
    	DWORD id;
    
    	hDll = LoadLibrary("KERNEL32");   
    	is.loadlib = (fpLoadLibrary)GetProcAddress(hDll, "LoadLibraryA");   
    	is.getprocaddress = (fpGetProcAddress)GetProcAddress(hDll, "GetProcAddress");  
    	strcpy(is.path, "C:\\DLL.dll");  
    	strcpy(is.func, "Funktion");
    
    	funcsize = (DWORD)threadend-(DWORD)threadstart;
    
    	printf("ID: ");	
    	scanf("%d",&id);
    
    	hProc = OpenProcess(PROCESS_ALL_ACCESS, false, id);   
    	printf("Prozess Handle:       %x\n", hProc);
    
    	start = VirtualAllocEx(hProc, 0, funcsize+sizeof(INJECTSTRUCT), MEM_COMMIT, PAGE_EXECUTE_READWRITE);	
    	printf("Memory:               %x\n", start);
    
    	WriteProcessMemory(hProc, start, (LPVOID)&is, sizeof(INJECTSTRUCT), NULL);
    
    	thread = (LPVOID)((DWORD)start+sizeof(INJECTSTRUCT));	
    
    	WriteProcessMemory(hProc, thread, (LPVOID)threadstart, funcsize, NULL);	
    	CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)thread, start, 0, 0);
    
    	CloseHandle(hProc);
    
    	return 0;
    }
    

    die DLL

    #include <windows.h>
    
    extern "C" void __declspec(dllexport) Funktion()
    {
         Beep(2000, 2000);
    }
    
    BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
    {
        return TRUE;
    }
    

    kennt sich jemand damit aus? Warum stürzt das HANDLE hProc ab? Ich hab als zeil zb Editor genommen und der stürzt immer ab.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.




Anmelden zum Antworten