[C++] Datei modifizieren
-
Hey, ich habe eine Frage. Wie kann ich den Entry Point eines Programmes auf eine andere Adresse setzen? Ich habe bereichts den Entry Point herausgefunden.
char* Path = "C:\\lol.exe"; LARGE_INTEGER largefilesize; HANDLE hwnd = CreateFile(Path, FILE_SHARE_READ, NULL, NULL, OPEN_EXISTING, NULL, NULL); GetFileSizeEx(hwnd, &largefilesize); DWORD dwSize; dwSize = (DWORD)largefilesize.QuadPart; BYTE* myFile = new BYTE[ dwSize ]; DWORD dwBytesRead; if(ReadFile(hwnd, (LPVOID)myFile, dwSize, &dwBytesRead, NULL) == TRUE) { cout << "Datei konnte gelesen werden!" << endl; } else { cout << "Fehler beim lesen der Datei!" << endl; return -1; } IMAGE_DOS_HEADER* DOSHeader = (IMAGE_DOS_HEADER*)myFile; IMAGE_NT_HEADERS* NTHeader = (IMAGE_NT_HEADERS*)(myFile + DOSHeader->e_lfanew); IMAGE_OPTIONAL_HEADER Header = NTHeader->OptionalHeader; DWORD MyEntryPoint = Header.AddressOfEntryPoint; DWORD MyImageBase = Header.ImageBase; DWORD MyEntry = MyImageBase + MyEntryPoint; cout << "Entry Point ist bei: " << hex << MyEntry << endl;
Wie kann ich aber jetz den Rest des Codes der nach den Entry Point kommt ansehen? Und den Entry Point oder andere modifikationen erstellen?
-
Beschäftige Dich mal mit dem PE-Dateiformat...
http://www.microsoft.com/whdc/system/platform/firmware/pecoff.mspx...und natürlich damit, wie man Viren schreibt...