![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Антикейлоггер [D7, WinXP]
Blondin © (2009-10-01 17:58:00)Привет Всем! Я пишу антикейлоггер и у меня возникла проблема! Я устанавливая глобальный хук WH_Debug и обрабатываю эти сообщения. Но он у меня почему то не все сообщения ловит. Помогите, скажите в чем дело! Вот код библиотеки!
library Anti_keylogger;
uses
SysUtils, Windows, Messages, forms, Unit3 in 'Unit3.pas' {Form3};
var
SysHook:HHook=0;
Wnd:Hwnd=0;
{$R *.res}
function DebungProc(code:integer; wParam:word; lParam:longint):longint;stdcall;
{Var
windtext: array [0..255] of char;}
begin
if (wParam=WH_KEYBOARD) then
Begin
If form3=nil then Application.CreateForm(TForm3, Form3);
Form3.Show;
Form3.Memo1.Lines.Add(ParamStr(0));
Result:=CallNextHookEx(SysHook, Code, wParam,lParam) ;
End;
Result:=CallNextHookEx(SysHook, Code, wParam,lParam) ;
end;
function SetHook(Hook:Boolean):Boolean; export; stdcall;
begin
Result := false;
if Hook then
begin
if SysHook=0 then
SysHook:=SetWindowsHookEx(WH_KEYBOARD,@DebungProc,HInstance, 0);
Result:=(SysHook<>0);
end
else
begin
if SysHook <> 0 then
begin
UnhookWindowsHookEx(SysHook);
SysHook:=0;
Result:=true;
end;
end;
end;
exports SetHook index 1;
begin
end.
Leonid Troyanovsky (2009-10-01 20:49:00) [1]
> Blondin © (01.10.09 19:19) [6]
> А то я начал только изучать и совсем тупой
Тупое исходним не заточить.
--
Regards, LVT.
Blondin (2009-10-01 19:19:00) [2]Спасибо! А у Вас исходники или примеры на эту тему есть? А то я начал только изучать и совсем тупой в этой облости.
DVM (2009-10-01 19:14:00) [3]
> А как правильно делать?
Либо лог веди и пиши его на диск, либо сделай обмен данными между DLL и приложением через MMF (Memory Mapped Files) и (или) например сообщения.
Примеров тому валом в интернете. Посмотри исходники тех же логгеров с которыми ты борешься.
Blondin (2009-10-01 19:11:00) [4]А как правильно делать?
DVM (2009-10-01 18:57:00) [5]
> Blondin © (01.10.09 18:49) [2]
> что бы знать какие dll или exe используют хуки
Так не делают, ну да ладно, дело твое.
У тебя строка Result:=CallNextHookEx(SysHook, Code, wParam,lParam) ;
если wParam=WH_KEYBOARD два раза вызывается.
Blondin (2009-10-01 18:49:00) [6]Это я использовал для того, что бы знать какие dll или exe используют хуки
DVM (2009-10-01 18:41:00) [7]
> If form3=nil then Application.CreateForm(TForm3, Form3);
>
> Form3.Show;
> Form3.Memo1.Lines.Add(ParamStr(0));
Какого лешего в dll делают все эти визуальные комопоненты?