Hey Leute,
ich habe mich mal entschieden einen kleinen Hack für die US-Version von RaiderZ zu schreiben.
Da der Client mit ASProtect gepackt ist und Gameguard benutzt, würde ich gerne eine dll injecten bevor Gameguard sich ans Spiel hängt... Gesagt, getan mit einem sehr einfachen Dll-Aufbau:
Da der Client sich während der Laufzeit selbst entpackt, warte ich einfach bis der default Wert an einer bestimmten Stelle gespeichert ist, um ihn dann zu ändern....
Nun würde ich gerne eine Patternsuche für die genutzte Adresse einfügen, um das ganze nicht ständig manuell updaten zu müssen.
Bevor das ganze gestartet werden kann, muss der Client sich aber vollständig entpackt haben.
Zur eigentlichen Frage: Wie kann ich am besten/einfachsten generell überprüfen, ob der benutzte Packer das Hauptmodul komplett entpackt hat?
ich habe mich mal entschieden einen kleinen Hack für die US-Version von RaiderZ zu schreiben.
Da der Client mit ASProtect gepackt ist und Gameguard benutzt, würde ich gerne eine dll injecten bevor Gameguard sich ans Spiel hängt... Gesagt, getan mit einem sehr einfachen Dll-Aufbau:
Code:
#include "windows.h"
#include <iostream>
// variables
HMODULE myModule;
void *zoomOutMax = (void*)(0xDB9414);
// threads
DWORD WINAPI HackThread(LPVOID unused)
{
// wait for zoomOutMax to get set to default
while(*(float*)(zoomOutMax)!=540.0);
// increase zoomOutMax
*(float*)(zoomOutMax) = FLT_MAX;
// exit thread and unload dll
FreeLibraryAndExitThread(myModule, 0);
}
// main
bool WINAPI DllMain(HMODULE hModule, DWORD ulReason, LPVOID lpReserved)
{
myModule = hModule;
if(ulReason==DLL_PROCESS_ATTACH) CreateThread(0, 0, &HackThread, 0, 0, 0);
return true;
}
Nun würde ich gerne eine Patternsuche für die genutzte Adresse einfügen, um das ganze nicht ständig manuell updaten zu müssen.
Bevor das ganze gestartet werden kann, muss der Client sich aber vollständig entpackt haben.
Zur eigentlichen Frage: Wie kann ich am besten/einfachsten generell überprüfen, ob der benutzte Packer das Hauptmodul komplett entpackt hat?