Отладка приложений


         

чтобы макрос REAL_FUNC_PRE_CALL размещался непосредственно


//////////////////////////////////////////////////////////*/

 #define HOOKFN_EPILOG(iNumParams) \ 

{ \ 

SetLastError ( dwLastError); /* Установить значение последней */\

/* ошибки реальной функции. */\

 _asm ADD ESP, _LOCAL_SIZE /* Добавить размер локальных */\

/* переменных. */\

_asm MOV EBX, [StRegState.dwEBX]/* Восстановить все регистры так, */\

 _asm MOV ECX, [stRegState.dwECX]/* чтобы данный вызов выглядел */\

 _asm MOV EDX, [stRegState.dwEDX]/* идентично перехваченной */\ 

_asm MOV EDI, [stRegState.dwEDI]/*функции. */\

 _asm MOV ESI, [StRegState.dwESI] \ 

_asm MOV EAX, [StRegState.dwEFL] \ 

_asm SAHF . \ 

_asm MOV EAX, [stRegState.dwEAX] \ 

_asm MOV ESP, EBP /* Передвинуть назад ESP. */\

_asm POP EBP /* Восстановить сохраненный EBP. */\ 

_asm RET iNumParams * 4 /* stdcall восстановление стека */\ 

}

 /*///////////////////////////////////////////////////////

Необходимо, чтобы макрос REAL_FUNC_PRE_CALL размещался непосредственно перед любым вызовом реальной функции, которую обрабатывает функция подключения. Макрос гарантирует, что EDI и ESI возвращаются в том же состоянии, в котором они были при пересылке в функцию подключения.

//////////////////////////////////////////////////////////////////*/

 #define REAL_FUNC_PRE_CALL() \ 

{ \ 

_asm MOV EDI, [stRegState.dwEDI] /* Восстановить реальный EDI. /\

 _asm MOV ESI, [stRegState.dwESI] /* Восстановить реальный ESI. */\ 



/*//////////////////////////////////////////////////////////////

Необходимо, чтобы макрос REAL_FUNC_POST_CALL размещался сразу же после любого вызова реальной функции, который обрабатывает функция подключения. Все значения регистров после вызова реальной функции сохраняются, так что эпилог функции подключения может возвратить те же значения.

//////////////////////////////////////////////////////////////////*/

 #define REAL_FUNC_POST_CALL(} \ 


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий