📄 exitwindll.cpp
字号:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <ApiHooks.h>
API_HOOK ApiHookChain[];
typedef BOOL (WINAPI *TExitWindowsEx)(UINT, DWORD);
BYTE ExitWindowsExSpace[32];
TExitWindowsEx OldExitWindowsEx = (TExitWindowsEx)&ExitWindowsExSpace;
TExitWindowsEx OrgExitWindowsEx = NULL;
BOOL WINAPI NewExitWindowsEx(UINT uFlags, DWORD dwReserved) {
if(MessageBoxA(NULL, "Exit Windows?", "ExitWindowsEx", MB_YESNO | MB_ICONQUESTION) == IDYES) {
if(ApiHookChain[1].dwFlags & HOOK_OVERWRITE)
return(OldExitWindowsEx(uFlags, dwReserved));
else
return(OrgExitWindowsEx(uFlags, dwReserved));
}
else
return(FALSE);
}
API_HOOK ApiHookChain[3] = {
{HOOKS_DYNAMIC},
{"USER32.DLL", "ExitWindowsEx", HOOK_ALL_SAFE | HOOK_HARD, &OldExitWindowsEx, NULL, NewExitWindowsEx},
{HOOKS_END}
};
__EXPORT PAPI_HOOK WINAPI GetApiHookChain(DWORD CallerPID) {
if(OrgExitWindowsEx == NULL)
OrgExitWindowsEx = ExitWindowsEx;
if(ApiHookChain[1].dwFlags & HOOK_OVERWRITE)
return(NULL);
else
return(ApiHookChain);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -