亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

用Delphi5.0實現注冊表監視

2019-11-18 18:42:43
字體:
來源:轉載
供稿:網友

用Delphi5.0實現注冊表監視


中南大學湘雅二醫院信息中心 朱洪濤

 

隨著Internet的不斷普及,網絡安全越來越受到人們的重視。除了計算機病毒以外,網上不斷出現的的各類黑客軟件、遠程控制軟件等,更讓人們對自己的機器越來越不放心。而這類軟件的多樣性及不斷更新等,使得單靠一些防病毒軟件已不能完全保護自己的機器。

有沒有什么好的方法防止來歷不明的軟件安裝在自己的機器上呢?答案就是密切注意系統關鍵文件的變化。大家都知道,一個程序如果要在Windows啟動時自動運行,一般有三種方法:
1.在開始菜單的[啟動]組中加入快捷方式
2.在Win.ini中加入相關項目
3.在注冊表的 HKEY_Local_Machine/SoftWare/Microsoft/Windows/CurrentVersion/Run主鍵下加入指向自己的鍵值。
而第一種方法太明顯,很容易發現。所以一般的黑客程序使用后兩種方法啟動自己。筆者在此介紹一個自己編寫的簡單的注冊表監視器,用于實時監視注冊表中鍵值的變化,以發現不明來歷的程序。讀者有興趣的可以在此基礎上進一步完善。
程序設計思路
本程序用Delphi5.0開發。Delphi是Borland公司出品的快速可視化Windows程序開發工具,功能強大,易于使用。程序中通過一個定時器來實現每隔一定時間對注冊表比較一次。程序在啟動時保留一份原始的注冊表相關鍵值的數據備份,然后定時和當前的鍵值進行比較,如果發現變化,則提示用戶查看。
程序實現
1、在Delphi中建立一個新的PRoject,將Form1改名為FormMain
2、在FormMain上放置一個定時器控件TTimer,將Project保存為PiRegWatch.Dpr
3、修改PiRegWatch.Dpr中的代碼:
 application.Initialize;
Application.CreateForm(TFormMain, FormMain);
//使主窗口啟動時不顯示
Application.ShowMainForm:=False;
Application.Run;
在FormMain中增加幾個對象。
對象類型說明
RegTregistry用于注冊表的訪問
IniFileTiniFile用于保存原始注冊表數據
LogTstringList用于記錄變化的日志
RegKeysTstringList用于存放Run分支下的主鍵名
4、在FormMain:OnCreate事件中保留原始注冊表數據,主要代碼如下:
……
self.Reg:=TRegistry.Create;
with self.Reg do
begin
RootKey:=HKEY_Local_Machine;
If OpenKey('Software/Microsoft/Windows/CurrentVersion/Run',false)
then
begin
RegKeys:=TStringList.Create;
GetValueNames(RegKeys); //取得Run下面的所有主鍵名
if not self.IniFile.SectionExists('RunList') then //如果沒有保存過數據
begin
for i:=0 to Regkeys.Count-1 do //保存原始數據
if (self.Reg.GetDataType(RegKeys.Strings[i])=rdString)
or(self.Reg.GetDataType(RegKeys.Strings[i])=rdExpandString)
then begin
value:=self.Reg.ReadString(RegKeys.Strings[i]);
self.IniFile.WriteString('RunList',RegKeys.Strings[i],value);
end;
end;
end;
end;
……
5、在TTimer1.OnTmer事件中加入比較注冊表的代碼。主要代碼如下:
procedure TFormMain.Timer1Timer(Sender: TObject);
var i:integer;
RegVal,IniVal:string;
begin
self.Timer1.Enabled:=False;
self.Reg.GetValueNames(RegKeys);
for i:=0 to RegKeys.Count-1 do //檢查新加的和已修改了的鍵值
if (self.Reg.GetDataType(RegKeys.Strings[i])=rdString)
or (self.Reg.GetDataType(RegKeys.Strings[i])=rdExpandString)
then begin
RegVal:=self.Reg.ReadString(RegKeys.Strings[i]);
IniVal:=self.IniFile.ReadString('RunList',RegKeys.Strings[i],'');
if RegVal<>IniVal then
begin
self.LogMsg('Item Add:'+RegKeys.Strings[i]+'='+RegVal);
self.IniFile.WriteString('RunList',RegKeys.Strings[i],RegVal);
try
//提示用戶
SendMsg('ABC','','注冊表被改變:新增項目'+RegKeys.Strings[i]+'='+RegVal);
finally
end;
end;
end;
self.IniFile.ReadSection('RunList',RegKeys);
for i:=0 to RegKeys.Count-1 do //檢查已被刪除的鍵值
begin
IniVal:=self.IniFile.ReadString('RunList',RegKeys.Strings[i],'');
if self.Reg.ValueExists(RegKeys.Strings[i]) and
((self.Reg.GetDataType(RegKeys.Strings[i])=rdString)
or (self.Reg.GetDataType(RegKeys.Strings[i])=rdExpandString) )
then
RegVal:=self.Reg.ReadString(RegKeys.Strings[i])
else
RegVal:='';
if (IniVal<>'') and (RegVal='') then
begin
self.LogMsg('Item Del:'+RegKeys.Strings[i]+'='+IniVal);
self.IniFile.DeleteKey('RunList',RegKeys.Strings[i]);
try
SendMsg('ABC','','注冊表被改變:項目刪除'+RegKeys.Strings[i]+'='+IniVal);
finally
end;
end;
end;
self.IniFile.UpdateFile;
self.Timer1.Enabled:=True;
end;
6、在FormMain:OnClose事件中進行對象釋放及必要的清理工作
procedure TFormMain.FormClose(Sender: TObject; var Action:TCloseAction);
begin
if Assigned(self.Reg) then self.Reg.Free;
if Assigned(self.IniFile) then self.IniFile.Free;
if Assigned(self.LogFile) then self.LogFile.Free;
if Assigned(self.RegKeys) then self.RegKeys.Free;
end;
經過實際運行,該程序在發現來歷不明的程序方面確實能起到一定的作用。當然,它的功能也很單一,如果要進一步完善,增加監視系統其他關鍵文件的變化,則效果會更好。希望能與有興趣的讀者交流。

上一篇:《delphi高手突破》節選一

下一篇:delphi函數參考手冊

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品福利无圣光在线一区| 亚洲精品成人免费| 亚洲自拍小视频免费观看| 精品亚洲夜色av98在线观看| 久久精品电影网| 欧美视频裸体精品| 久久五月天综合| 精品中文视频在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品人成电影| 欧美成人精品一区二区| 最近更新的2019中文字幕| 国产精品欧美日韩| 国产视频亚洲视频| 中文一区二区视频| 国产精品成人国产乱一区| 91免费看片在线| 91精品国产91久久久| 国产精品一区二区在线| 色青青草原桃花久久综合| 国产成人av在线播放| 不卡av日日日| 少妇高潮久久77777| 91在线免费观看网站| 欧美午夜精品久久久久久浪潮| 97成人超碰免| 在线观看欧美www| 久热爱精品视频线路一| 亚洲成人性视频| 精品一区电影国产| 8050国产精品久久久久久| 亚洲美女av黄| 欧美国产在线视频| 亚州av一区二区| 日韩经典一区二区三区| 亚洲男人的天堂在线| 亚洲精品一区中文字幕乱码| 国产成人福利夜色影视| 亚洲精品按摩视频| 国产精品揄拍一区二区| 久久av在线播放| 九九久久精品一区| 亚洲国产精品va在线观看黑人| 日韩精品免费一线在线观看| 亚洲人成在线播放| 日韩成人在线电影网| 国产精品精品视频一区二区三区| 欧美日韩精品在线观看| 色悠悠久久88| 色综合久久88| 另类专区欧美制服同性| 欧美高清一级大片| 66m—66摸成人免费视频| 欧美激情精品久久久久久免费印度| 亚洲aaaaaa| 成人亚洲欧美一区二区三区| 青青青国产精品一区二区| yw.139尤物在线精品视频| 亚洲自拍高清视频网站| 美女av一区二区三区| 亚洲美女av黄| 一本大道香蕉久在线播放29| 久久人人爽人人爽人人片av高清| 欧美韩日一区二区| 色老头一区二区三区在线观看| 伊人久久久久久久久久久| 日韩欧美视频一区二区三区| 国内精品久久久久久| 亚洲视频在线免费观看| 欧美国产第一页| 97视频网站入口| 中文字幕日韩欧美在线| 国产精品日韩欧美大师| 成人www视频在线观看| 国产精品久久一区| 久久久久久久一| 亚洲欧美日韩视频一区| 国产精品自拍视频| 97av视频在线| 日韩中文字幕欧美| 亚洲色图35p| 亚洲网站在线观看| 精品国产自在精品国产浪潮| 性亚洲最疯狂xxxx高清| 91产国在线观看动作片喷水| 久久久久久69| 久久夜色精品亚洲噜噜国产mv| 国产va免费精品高清在线| 欧美午夜无遮挡| 久久精品国产96久久久香蕉| 日韩av一区二区在线观看| 久久精品视频在线观看| 亚洲一级黄色片| 久久视频免费观看| 久久色免费在线视频| 上原亚衣av一区二区三区| 精品久久久久久亚洲国产300| 欧美激情aaaa| 国产精品一区=区| 日韩免费高清在线观看| 中文字幕在线观看亚洲| 国产精品无av码在线观看| 亚洲国产婷婷香蕉久久久久久| 国产日韩精品在线观看| 91av视频在线| 亚洲精品电影网| 欧美午夜精品久久久久久浪潮| 国产精品v片在线观看不卡| 亚洲美女av电影| 久久久欧美精品| 国产精品91久久久| 欧美激情一区二区三区在线视频观看| 国产精品成人av性教育| 一区二区三区回区在观看免费视频| 日韩高清av一区二区三区| 成人亚洲欧美一区二区三区| 亚洲国产成人爱av在线播放| 亚洲美女精品成人在线视频| 欧美老肥婆性猛交视频| 国产日韩亚洲欧美| 91在线观看免费高清完整版在线观看| 久久全国免费视频| 亚洲专区国产精品| 午夜欧美不卡精品aaaaa| 久久久视频免费观看| 精品视频—区二区三区免费| 亚洲精品自拍偷拍| 在线观看成人黄色| 91在线视频精品| 中文字幕免费国产精品| 欧美激情三级免费| 国产成人精品一区二区在线| 国产91色在线播放| 欧美精品手机在线| 久久99精品久久久久久琪琪| 欧美精品激情在线观看| 欧美韩日一区二区| 亚洲精品美女视频| 欧美极品少妇xxxxx| 久久精品国产99国产精品澳门| 91免费国产网站| 91久久国产综合久久91精品网站| 日韩天堂在线视频| 中文字幕久热精品视频在线| 国产99久久久欧美黑人| 国产精品青青在线观看爽香蕉| 国产精品嫩草影院一区二区| 亚洲一区二区三区xxx视频| 97视频在线观看视频免费视频| 国产成人精品一区二区| 色系列之999| 亚洲一区二区三区sesese| 亚洲欧美三级在线| 在线精品国产成人综合| 久久久91精品国产一区不卡| 日韩精品视频免费在线观看| 搡老女人一区二区三区视频tv| 国产精品吹潮在线观看| 亚洲欧美制服丝袜| 永久免费精品影视网站| 日韩在线激情视频| 欧美日本精品在线| 亚洲伊人一本大道中文字幕| 日韩视频免费中文字幕|