Problème de hooking [C/C++/ASM] - C++ - Programmation
MarshPosté le 12-01-2005 à 23:26:33
Bonjour bonjour !
Voila, j'ai un petit probleme, je m'explique:
j'ai un processus qui tourne, dont l'adresse de début (virtuelle) est 0x00401000 Ensuite, avec un autre programme, je crée dans le premier processus une zone mémoire en 0x00350000. Je copie du code asm dedans et j'aimerais l'executer, mais pas à n'importe quel moment !
Voici une partie du code asm du premier processus:
:05AF523 8A8314010000 mov al, byte ptr [ebx+00000114] :005AF529 84C0 test al, al :005AF52B 7477 je 005AF5A4
Ce que jveux faire donc, c'est remplacer le mov xxxx par un Call qui pointerais sur l'espace mémoire que j'ai alloué. Ensuite, dans cet espace mémoire, j'execute mon code et je fini par le mov xxxx et un ret.
La question est donc: Comment créer le Call ? J'ai essayé en mettant l'adresse 0x00350000 mais il veut pas ( a la limite si qqun a la solution avec un jmp, pas de probleme)
Marsh Posté le 12-01-2005 à 23:26:33
Bonjour bonjour !
Voila, j'ai un petit probleme, je m'explique:
j'ai un processus qui tourne, dont l'adresse de début (virtuelle) est 0x00401000
Ensuite, avec un autre programme, je crée dans le premier processus une zone mémoire en 0x00350000.
Je copie du code asm dedans et j'aimerais l'executer, mais pas à n'importe quel moment !
Voici une partie du code asm du premier processus:
:05AF523 8A8314010000 mov al, byte ptr [ebx+00000114]
:005AF529 84C0 test al, al
:005AF52B 7477 je 005AF5A4
Ce que jveux faire donc, c'est remplacer le mov xxxx par un Call qui pointerais sur l'espace mémoire que j'ai alloué. Ensuite, dans cet espace mémoire, j'execute mon code et je fini par le mov xxxx et un ret.
La question est donc: Comment créer le Call ?
J'ai essayé en mettant l'adresse 0x00350000 mais il veut pas ( a la limite si qqun a la solution avec un jmp, pas de probleme)
Merci