
16.07.2023, 16:47
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от ччбчлчлчъ ччччшчьпьппзвжв
C++:
Код:
#include
#include
#include
static
HMODULE
(
WINAPI
*
TrueLoadLibrary
)
(
LPCWSTR lpLibFileName
)
=
LoadLibraryW
;
HMODULE WINAPI
DetouredLoadLibrary
(
LPCWSTR lpLibFileName
)
{
HMODULE res
=
TrueLoadLibrary
(
lpLibFileName
)
;
MessageBoxW
(
NULL
,
lpLibFileName
,
L
"Detoured!"
,
MB_OK
|
MB_ICONEXCLAMATION
)
;
return
res
;
}
void
SetGlobalHook
(
)
{
// Получение адреса оригинальной функции LoadLibraryW из kernel32.dll
TrueLoadLibrary
=
reinterpret_cast
(
GetProcAddress
(
GetModuleHandle
(
TEXT
(
"kernel32.dll"
)
)
,
"LoadLibraryW"
)
)
;
// Установка хука
DetourTransactionBegin
(
)
;
DetourUpdateThread
(
GetCurrentThread
(
)
)
;
DetourAttach
(
&
(
PVOID
&
)
TrueLoadLibrary
,
DetouredLoadLibrary
)
;
DetourTransactionCommit
(
)
;
}
// Функция для удаления глобального хука
void
RemoveGlobalHook
(
)
{
// Удаление хука
DetourTransactionBegin
(
)
;
DetourUpdateThread
(
GetCurrentThread
(
)
)
;
DetourDetach
(
&
(
PVOID
&
)
TrueLoadLibrary
,
DetouredLoadLibrary
)
;
DetourTransactionCommit
(
)
;
}
int
main
(
)
{
// Установка глобального хука
SetGlobalHook
(
)
;
// Ждем нажатия клавиши перед удалением хука
std
::
cout
(
GetProcAddress
(
GetModuleHandle
(
TEXT
(
"kernel32.dll"
)
)
,
"LoadLibraryW"
)
)
;
и все работает
а в чем смысл? ты же в своем приложении хукаешь
|
|
|