[quote=Yegor;88284]GoldFinch, это то я напишу, но вот Delphi для отладки dll хочет сама запускать процесс в который её будет загружать.
Я например отладчик не пользую - ну так получилось.
В качестве отладчика использую ту-же внедряемую dll
Удалось перехватить какую функцию - хук начинает логировать
адреса вызова этой функции и параметры вызова.
Потом ползаю по дизассемблированой engine.dll по соотв. адресам и смотрю че и как.
static DWORD HookProcAdr;
void __declspec(naked) __stdcall HookProcE9()
{
static DWORD SavedRetAddr,SavedArg0,SavedArg4,SavedArg8;
__asm push ebp
__asm mov ebp,esp
__asm pushad
__asm mov eax,[ebp+4] //RetAddr
__asm mov SavedRetAddr,eax
__asm mov eax,[ebp+8] //Arg0
__asm mov SavedArg0,eax
__asm mov eax,[ebp+12] //Arg4
__asm mov SavedArg4,eax
__asm mov eax,[ebp+16] //Arg8
__asm mov SavedArg8,eax
static char str[100];
_snprintf(str,100,"%u",*(PBYTE)SavedArg0);
MappedText(str,0xFFFFFF00);
fprintf(LogFile,"HookE9 %x %x %x %x %02x\n",SavedRetAddr,SavedArg0,SavedArg4,SavedArg8 ,*(PBYTE)SavedArg0);
__asm popad
__asm pop ebp
__asm push HookProcAdr
__asm retn
}
Последний раз редактировалось Эдвадко, 12.05.2010 в 07:46.
|