Суть такая: Устанавливаешь хук например на клавиатуру( как в примере ), и если пользователь нажал клавишу, например Enter, то к программе будет приатаченна длл с твоей процедурой обработки. Она будет автоматически отатачена когда процедура обработки закончится. В процедуру обработки вписываешь LoadLibrary и вот он успех: длл будет приатачена к приложению
FASM (.exe)
Код:
format pe gui 4.0
entry start
include 'win32a.inc'
section '.data' data readable writeable
Dll_Name db 'Hook.dll',0
msg db 'good',0
section '.code' code readable executable
start:
invoke GetModuleHandleA,Dll_Name
invoke SetWindowsHookExA,WH_KEYBOARD,Hooking,eax,0
invoke MessageBoxA,0,msg,msg,MB_OK
invoke ExitProcess,0
Fasm (.dll)
Код:
format PE GUI 4.0 DLL
entry DllEntryPoint
include 'win32a.inc'
section '.data' data readable writeable
msg db 'Hook Works!',0
msg1 db 'Nice',0
section '.code' code readable executable
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
invoke DisableThreadLibraryCalls,[hinstDLL]
invoke MessageBox,0,msg,msg1,MB_OK
mov eax,1
ret
endp
proc Hooking
ret
endp
В атаче добавил скомпилинные исходники
Как использовать
1 Запустить 1.exe
2 Нажать 1 раз Ок
3 В любом приложении нажать кнопку клавиатуры.
4 Посмотреть через PETool что к этому приложению будет приатачена Hook.dll
5 Нажать остальные кнопки Ок
P.S. Щас попробую присвоить создаваемый поток engine.dll с помощью GetModuleHandleA
Отключить уведомления к сожалению не вариант, т к в этой dll еще и шифрация вроде бы
Вопрос: а как проверить есть ли хуки на CreateThread