Мне было интересно, знает ли кто-нибудь, как получить адрес функции, в которой вы находитесь. Допустим, я перехватываю MessageBoxA ().Когда вызывается MessageBoxA (), я называю меня псевдо-функцией hookMessageboxA ().Изнутри hookMessageBoxA () я хочу показать, откуда была вызвана MessageBoxA ().Имеет ли это смысл?Использование ассемблера, вероятно, необходимо, но я не уверен, как это можно сделать.
Приведенный ниже код неверен, я думаю, что это нужно сделать.Любая помощь о том, как сделать это в ассемблере и C ++, с благодарностью !!!!!
DWORD address = 0x00;
_asm {
mov address, ebp
}
DWORD keyPointerAddr = (DWORD)hInstance + 0x1000 - address + 0x00401000;
char str[255];
sprintf(str,"That call is coming from [%d]\n", keyPointerAddr);