Memory patcher

Description

Un petit memory patcher pour modifier un exe em memoir et non le "cracker"
Afin de modifier son comportement

Il est basé sur le "crackme" de Arecibo dans le zip

Source / Exemple :


// cpp_france_mempatch.cpp : Defines the entry point for the console application.
//

#include <windows.h>

int main(void)
{

	
	// On crée la structure startupinfo
	STARTUPINFO startupinfo;
	// On la rempli avec des 0
	memset (&startupinfo, 0, sizeof (STARTUPINFO)) ; 
	// on indique a la structure sa taille
	startupinfo.cb = sizeof(startupinfo);
	
	// On crée la structure process
	PROCESS_INFORMATION process;
	// On la rempli avec des 0
	memset (&process, 0, sizeof (PROCESS_INFORMATION)) ;

	// La ou on va placer la portion de memoire lu
	char memread[1];
	// Si on passe des arguments
	char* cmdline;
	
	// on recupere les arguments
	cmdline = GetCommandLine();
	
	// Nombre de Test d'ecriture
	// Max de test d'ecriture
	// Temps entre chaque tests
	int nb_test = 0,max_test=100,wait_time = 5;

	// on crée le proces
	if (CreateProcess("Crackme.exe", cmdline, NULL, NULL,FALSE, NORMAL_PRIORITY_CLASS,NULL, NULL, &startupinfo, &process))
	{

		//on lit le memoire
		ReadProcessMemory(process.hProcess, (LPVOID) 0x40109F, memread, 1, NULL);

		// tant que la zone != 0x75: jne
		while ( (memread[0] != 0x75) )
		{
			//incremente test
			nb_test++;
			// Sleep
			Sleep(wait_time);
			// on lit
			ReadProcessMemory(process.hProcess, (LPVOID) 0x40109F, memread, 1, NULL);

			// si trop de tests
			if ( nb_test > max_test )
			{
				// héhé bad boy :-)
				MessageBox(NULL,"Imposible à patcher en memoire\nMauvaise Version ou Erreur","Erreur",MB_OK|MB_ICONERROR);
				return 0;
				exit(-1);
			}
		}

		// On ecrit dans la memoide du grog
		WriteProcessMemory (process.hProcess, (LPVOID)0x40109F, "\x74", 1, NULL);

		// On a plus besoin de rien faire on ferme l'handle
		// pas le prog juste l'handle
		CloseHandle (process.hProcess);
		CloseHandle (process.hThread);

	}
	else
	{
		// on a pas pu l'ouvrir
		MessageBox(NULL, "Erreur Imposible d'ouvrir Crackme.exe", "Erreur", MB_OK|MB_ICONERROR);
		exit(-1);
	}

	return 1;

}

Conclusion :


Un pb mailer moi

pix@laposte.net
www.pixdesign.fr.fm

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.