Хакер
2) Нет, я не имею ввиду это.
Я имею ввиду:
Да, я это и имел ввиду кроме "bRuntimeStarted".
Сейчас я пробую ещё оди метод.... Уже основываясь на ваших подсказках...
Дело в том что я заметил такую вещь:
Есть программа которая делает LoadLibrary что в свою очередь вызывает в VBHook.dll функцию DllEntryPoint с lReason =DLL_PROCESS_ATTACH
Вот а здесь начинаеться самое интересное:
Допустим что мы для проверки поставили в DLL_PROCESS_ATTACH мессадж "ляляляля"...
Так вот этот мессадж выскакивает 2 раза.
1)когда происходи LoadLibrary
2)Когда окно калька обрабатывает какое либо (первое) сообщение...
Т.е. у нас vbhook.dll загружаеться 2 раза один в память программы с вызовом loadlibrary а второй в кальк (с реакцией на сообщения)..
После чего можно спокойно сделать FreeLibrary а хук останеться все равно в кальке....
Глобальный вывод...
Первая загрузка должна быть такой:
ПРИ: MELOAD (или bRuntimeStarted) =False
- Код: Выделить всё
Public Function HookProcName(ByVal nCode As Long, ByVal wParam As Long, lParam As tagMSG) As Long
if MELOAD (или bRuntimeStarted) = ture then
If lParam.message <> WM_NULL Then
Select Case nCode
Case HC_ACTION
If lParam.message = WM_KEYDOWN Then
Если здесь написать какой нибудь код то калькулятор вылетает!!!
End If
Case Else
End Select
End If
HookProcName = CallNextHookEx(hHook, nCode, wParam, lParam)
end if
End Function
Вторая соответственно:
ПРИ: MELOAD (или bRuntimeStarted) =True
- Код: Выделить всё
Public Function HookProcName(ByVal nCode As Long, ByVal wParam As Long, lParam As tagMSG) As Long
if MELOAD (или bRuntimeStarted) = ture then
If lParam.message <> WM_NULL Then
Select Case nCode
Case HC_ACTION
If lParam.message = WM_KEYDOWN Then
Если здесь написать какой нибудь код то калькулятор вылетает!!!
End If
Case Else
End Select
End If
HookProcName = CallNextHookEx(hHook, nCode, wParam, lParam)
end if
End Function
Проверять это можно способом:
CreateToolhelpSnapshot
Process32First
Module32First
если мы узнаем что нашу VBHOOK.dll использует кальк то можно сделать FreeLibrary (В программе) и ловить хуки в кальке...
(Правда метод какой то корявый но иного метода кроме отлова от куда vbhook.dll была вызвана я не знаю)
(Даже не понадобилась TLB)
Вы в этом лучше понимаете. Возможно у вас будут лучше идеи.
В нашем деле главное ЛОГИКА.
косил косой косой косой.