[C++] MessageBoxA (user32.dll API HOOKING )

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Salut tout le monde !

J'ai pas trop le temps d'expliquer en quoi consiste l'api hooking ni de trop présenter le problème en lui même...

Ci-join, 2 projet C++, créer avec Visual Studio 2010. Le premier étant un logiciel simple qui lance une messageboxA après la validation, l'autre qui est une DLL a injecté dans le programme d'avant.

Le but est qu'une fois la méthode MessageBoxA appelé (je rappelle que le module utilisé est user32.dll) il faut que ça change le texte de la MessageBoxA du programme.

Seulement... ça ne changes rien.. Et je ne comprends pas pourquoi. J'ai un petit peu leech le code (j'vous rassure, c'était à la base pour voir si ça marchait).

Les liens:

Win32 App: Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
C++HookMessageBoxA: Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
 

Antilopes

Membre
Nov 17, 2013
9
0
121
34
Je m'excuse de répondre si tard, mais après avoir vu ton code je te suggère d'apprendre le c++ d'abord, vu ton emploie des fonctions je doute fort que tu connais les bases du langage.
 

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
Je pense avoir un conseil tout aussi simple, au lieu d'uniquement copié les sources de tuto sur l'api hooking, essai réellement de la comprendre !
 

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Oups là, j'avais oublier ce poste !

THB, le fameux fantôme de la section programmation m'a donc répondu.
J'ai essayer de comprendre, et je comprend la façon de faire (et encore + maintenant après avoir un peu approfondis). Le problème étant que je n'ais pas toute les bases du C++, donc j'ai du mal, sur ce point je suis d'accord => j'retourne apprendre le C++.

Merci quand même, je réparerais ça tout seul !
 

Nayres

Membre Banni
Apr 15, 2012
3,431
0
341
Quelque part.
Je vois que tu as pris le src de mon tutoriel, ce que je déconseille, le source code est vraiment ancien, tu peux maintenant facilement faire du hooking à l'aide du header "detour.h" ou bien cette fonction :

PHP:
void* detourFunc(BYTE *src, const BYTE *dst, const int len)
{
	BYTE *jmp = (BYTE*)malloc(len+5);
	DWORD dwback;

	VirtualProtect(src, len, PAGE_READWRITE, &dwback);

	memcpy(jmp, src, len);	jmp += len;

	jmp[0] = 0xE9;
	*(DWORD*)(jmp+1) = (DWORD)(src+len - jmp) - 5;

	src[0] = 0xE9;
	*(DWORD*)(src+1) = (DWORD)(dst - src) - 5;

	VirtualProtect(src, len, dwback, &dwback);

	return (jmp-len);
}

tu définis la fonction que tu veux hook par exemple Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Et tu n'as qu'a crée ta fonction, puis mettre un jmp grâce à la fonction que je t'ai donné précédemment.
 
Status
Not open for further replies.