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. |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!