?? hookjmp.cpp
字號:
// HookJmp.cpp:使用JMP法進行掛鉤.
//
#include "stdafx.h"
#include <afxdllx.h>
#include "HookApi_Jmp.h"
void WINAPI ExampleJmp();
CHookApi_Jmp myJmp;
static AFX_EXTENSION_MODULE HookJmpDLL = { NULL, NULL };
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
ExampleJmp();
}
else if (dwReason == DLL_PROCESS_DETACH)
{
myJmp.SetHookOff();
TRACE0("HOOKJMP.DLL Terminating!\n");
// Terminate the library before destructors are called
AfxTermExtensionModule(HookJmpDLL);
}
return 1;
}
//---------------------------------------------------------------------------
// 首先關閉攔截,然后才能調用被攔截的Api 函數.
int WINAPI JmpMessageBoxA(HWND hWnd, LPCTSTR lpText,LPCTSTR lpCaption,UINT uType )
{
int nReturn=0;
myJmp.SetHookOff();
nReturn=MessageBoxA(hWnd,"Hooking MessageBox by Jmp",lpCaption,uType);
myJmp.SetHookOn();
return(nReturn);
}
//---------------------------------------------------------------------------
void WINAPI ExampleJmp()
{
myJmp.HookOneAPI("user32.dll","MessageBoxA",(FARPROC)JmpMessageBoxA);
myJmp.SetHookOn();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -