CRC32 Checksum Scan einer zuvor in die Memory geladenen Byte Array DLL



  • Ich habe eine Unicode DLL die sich selbst mit einem CRC32 Check auf ihre File Integrität überprüfen kann(AntiHexedit). Wenn ich die DLL in einen Prozess lade, findet die DLL erst mal ihren Pfadnamen

    GetModuleFileNameA((HMODULE) hDll, bfr, sizeof(bfr));
    		dll_name = bfr;
    

    und benutzt dann fopen

    pDLLFile = fopen(bfr, "rb");
    

    um ihre eigene CRC32 Checksumme auszulesen, die wird dann verglichen mit einem HashStempel der zuvor am Ende der DLL nach dem kompilieren hinzugefügt wurde.

    Bis hierhin läuft alles gut, nun habe ich aus dieser DLL eine DLL_ARRAY.h header datei gemacht, also ein Byte Array als

    static unsigned char ARRAY_DLL[] = {etc....
    

    mit der definierten Grösse

    #define ARRAY_SIZE 17408
    

    Diesen Byte Array der DLL füge ich nun meinem MFC DLLInjector Projekt hinzu (nicht als Ressource, sondern als Header), der dann bei einem Tastendruck die DLL in einen bestimmten Prozess lädt.

    Nun ist das Problem, das die DLL sich nicht mehr selbst überprüfen kann, sie findet den Pfad zu sich selbst nicht mehr. Gibt es hier einen Weg das die DLL ihren eigenen Byte Array Header in der Injector.exe überprüfen kann, oder ihr eigenes Image in der Memory, wenn ja wie?


Anmelden zum Antworten