[C++]AoB Scan

  • Partenaires

Utilisateurs qui regardent le poste (Total: 0, Members: 0, Invité: 0)

Nayres

Nayres

Membre Banni
15 Avr. 2012
3,429
0
341
Quelque part.
Bonjour à tous et à toutes, donc voilà puisque le nom du topic vous a attiré vous serez sûrement intéressé par la suite bref commençons.

Introduction
- La fonction FindPattern, comment son nom l'indique est une fonction qui permet de rechercher l'addresse d'une signature ou AoB que vous avez.

Fonction | Explication
Tous d'abord voici notre fonction
PHP:
 // La fonction n'est aucunement créé par moi 
BOOL bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
	for(;*szMask;++szMask,++pData,++bMask)
		if(*szMask=='x' && *pData!=*bMask) 
			return false;
	return (*szMask) == NULL;
}

DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
{
	for(DWORD i=0; i < dwLen; i++)
		if( bCompare((BYTE*)(dwAddress+i),bMask,szMask))
			return (DWORD)(dwAddress+i);
	return 0;
}

Comme vous avez vu la fonction a 4 paramètres :
PHP:
(DWORD dwAddress,
DWORD dwLen,
BYTE *bMask,
char * szMask)

Je ne vais quand même pas vous laisser sans explications !

PHP:
DWORD dwAddress, DWORD dwLen // Le block de mémoire qu'on va scan, évitez de scanner toute la mémoire (très déconseillé)

PHP:
BYTE *bMask // Array of byte

PHP:
char * szMask // Ici on représente les bytes statique par un X, et les dynamiques par un ? .

Exemple
PHP:
FindPattern(0x00400000, 0x7FFFFFFF, (PBYTE)"\x65\xB5\46\CC\CC", xxxxx); // Bytes donnés aux hasard.

Voici la fin de ce tutoriel, j’espère que ce tutoriel vous servira pour vos prochains projets.​
 
Dernière édition:
Pikachu

Pikachu

Level 5
Level 4
Level 3
Level 2
Level 1
18 Janv. 2013
7,738
3
944
Phœnix Land
Merci de ton aide, sa me sera d'une grand utilité pour progresser dans mon apprentissage du C++.
 
Cyrion

Cyrion

._.
Level 5
Level 4
Level 3
Level 2
Ancien staff
Level 1
8 Juil. 2010
2,523
2
944
www.bufferoverflow.fr
Il serrait peut-être utile de montrer comment trouver la signature à chercher aussi, ça apparaît pas comme par magie. :mdr1:
 
davydavekk

davydavekk

Level 5
Level 4
Level 3
Level 2
Level 1
23 Mai 2013
508
0
322
'merica
Les bytes qui rendent la fonction "unique".