Retour


invoke wsprintf, addr buffer, \
		 addr ProcessInfo, \	
		 DBEvent.u.CreateProcessInfo.hFile, \
		 DBEvent.u.CreateProcessInfo.hProcess, \
		 DBEvent.u.CreateProcessInfo.hThread, \
		 DBEvent.u.CreateProcessInfo.lpBaseOfImage, \
		 DBEvent.u.CreateProcessInfo.lpStartAddress, \
		 offset1, \
		 patch1

Cette fonction est suivie d'une MessageBox qui s'ouvrira pour informer l'utilisateur de quelques éléments concernant le programme cible, comme le Handle de son Process, le Handle de son lien primaire, leurs n°IDs... J'y ai aussi rajouté l'offset à patcher dans la cible et ce qu'on écrit à cet Offset.
Donc cette fonction ne sert qu'à récupérer ces difféfrents chiffres.

Par la suite la MessageBox qui la suit y ferra appelle pour afficher c'est valeurs.


Cette partie aurait très bien pu être supprimée sans aucun inscident, mais le fait de pouvoir afficher des résultats comme ça, permet lors de la conception du programme d'avoir une confirmation visuelle des données qu'on utilise. Par exemple si une partie de votre programme sert à créer un code et qu'en fait il en donne un autre car il n'est pas encore au point, avec ça, vous pouvez voir les valeurs et donc ce qui cloche.

invoke wsprintf, addr buffer, \...

addr buffer, si vous vous souvenez est de 512octets et c'est le nom et le chemin du programme cible qui sont dedans, mais maintenant on s'en fout car ça ne nous servira plus pour la suite. Alors ce qui se passe ici, c'est qu'on écrase les données du buffer pour y placer (512 octets y a de la place) à la fois le texte de l'autre buffer nommé ProcessInfo c'est à dire:
Handle du Fichier:
Handle du Process:
Handle du Lien:
Image Base:
Start Address:
---------------------------------------
Offset a patcher:
ecriture de:


et les valeurs qu'elles doivent représentés et qui appartiennent principalement à la structure DEBUG_EVENT :
DBEvent.u.CreateProcessInfo.hFile
DBEvent.u.CreateProcessInfo.hProcess
DBEvent.u.CreateProcessInfo.hThread
DBEvent.u.CreateProcessInfo.lpBaseOfImage
DBEvent.u.CreateProcessInfo.lpStartAddress
offset1
         <-- Sauf ces deux là qui proviennent des .data
patch1



En définitive La fonction wsprintf écrasera l'ancien Buffer et placera ceci dedans:

Handle du Fichier: Sa valeur
Handle du Process: Sa valeur
Handle du Lien: Sa valeur
Image Base: Sa valeur
Start Address: Sa valeur
---------------------------------------
Offset a patcher: Sa valeur
ecriture de: Sa valeur




Retour