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

HookAgnt.dpr

 

Code:

library HookAgent;

 

uses

Windows, KeyboardHook in 'KeyboardHook.pas';

 

exports

KeyboardProc;

 

var

hFileMappingObject: THandle;

fInit: Boolean;

 

{----------------------------\

| |

| DLL_PROCESS_DETACH |

| |

\----------------------------}

 

procedure DLLMain(Reason: Integer);

begin

if Reason = DLL_PROCESS_DETACH then

begin

   UnmapViewOfFile(lpvMem);

   CloseHandle(hFileMappingObject);

end;

end;

 

{----------------------------\

| |

| DLL_PROCESS_ATTACH |

| |

\----------------------------}

 

begin

DLLProc := @DLLMain;

 

hFileMappingObject := CreateFileMapping(

THandle($FFFFFFFF), // use paging file

nil, // no security attributes

PAGE_READWRITE, // read/write access

0, // size: high 32 bits

4096, // size: low 32 bits

'HookAgentShareMem' // name of map object

);

 

if hFileMappingObject = INVALID_HANDLE_VALUE then

begin

   ExitCode := 1;

   Exit;

end;

 

fInit := GetLastError() <> ERROR_ALREADY_EXISTS;

 

lpvMem := MapViewOfFile(

hFileMappingObject, // object to map view of

FILE_MAP_WRITE, // read/write access

0, // high offset: map from

0, // low offset: beginning

0 // default: map entire file

);

 

if lpvMem = nil then

begin

   CloseHandle(hFileMappingObject);

   ExitCode := 1;

   Exit;

end;

 

if fInit then

   FillChar(lpvMem, PASSWORDSIZE, #0);

 

end.

 

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

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

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

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


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