文章插圖

文章插圖
本文將詳細討論一個鍵盤監視器的C++/c#開發過程并針對反窺探提出一些建議,希望讀者理解基于鉤子技術的窺探軟件的工作原理以便更好地對自己的軟件加以保護 。
基于軟件的鍵盤事件記錄器是一個嚴重的安全威脅,因為它們通過捕獲擊鍵操作來監控用戶的行動 。監控器可以用于一些惡意的行為,諸如盜竊信用卡號碼等 。擊鍵記錄器是Trojans病毒的個基本組成部分,它們在后臺安靜地運行 。伺機捕獲用戶的擊鍵操作 。擊鍵事件被保存在經過良好隱藏的文件中,通過電子郵件或者FTP方式發送給窺探者 。下面是一個簡單的、直接使用鉤子技術實現的例子 。
鍵盤監視器體系結構
鍵盤監視器由3個模塊組成:主模塊、鉤子過程和FTP模塊 。主模塊負責安裝一個全局鉤子過程 。該鉤子的任務是把每次按鍵事件向主模塊匯報,由主模塊把所有的擊鍵保存到一個文件中 。當記錄文件達到預定的大小時,主模塊命令FTP模塊把記錄文件上載給一個FTP服務器 。3個模塊間的通訊是通過Windows消息機制實現的,如圖1所示 。
一段DLL共享內存區域實際上是一個所有的DLL實例都可以看到的內存變量 。主模塊把它的窗口句柄保存在鉤子DLL的共享內存區域中,該DLL使所有的鉤子過程實例能夠把窗口消息郵寄回主模塊中 。鉤子過程共享內存區域并輸出函數
任務管理器盜竊
ADS(Alternate Data Streams)是一項NTFS文件系統特性,它能使你把文件數據送于存在的文件中而不影響它們的功能,資源管理器等瀏覽工具對它們的顯示,帶有ADS的文件用本地文件瀏覽技術幾乎是不可能檢測到的 。一旦文件被注入該項特性,ADS即可被諸如傳統的命令type等執行 。在激活時.ADS執行體以原始文件的方式出現并運行可以用Windows資源管理器等進程觀察器來試驗 。使用這種技術后,不僅能隱藏一個文件.而且能隱藏個非法進程的執行體部分 。事實上,如果安裝了NTFS系統,你是不可能本地探測出以ADS方式隱藏的文件的 。ADS特性不能夠被取消(dlsabled).目前為止還沒有辦法來針對用戶已經對其具有存取權限的文件限制這種特性 。示例程序為了簡明目地沒有使用ADS 。你可以用下列方式手工操作ADS 。
大多數的防火墻軟件都能探測和阻攔不經授權的程序接入因特網 。主模塊通過使用FTP模塊把記錄文件上載到一個FTP服務器 。防火墻通過把FTP模塊DLL注入到另外一個已經安裝的應用程序中來實現盜竊 。DLL注入意味著強制一個不能被掛起的進程必須接受一個自己從來沒有要求的DLL文件 。示例中,我選擇把FTP模塊注八或者Internet Explorer或者FireFox 。DLL注入將會越過大多數防火墻軟件的檢測.特別在FTP服務器在監聽80端口時 。鉤子過程DLL (它由函數SetWindowsHookEx自動加載進入所有正運行進程)檢查是被裝入到Internet Explorer還是FireFox并加載(用LoadLibrary)了FTP模塊DLL 。從DliMain中調用LoadLibrary函數是不允許的,因此DIIMain設置了一個布爾變量來讓鉤子過程調用LoadLibrary庫函數 。
下面是模塊DlIMain中的鉤子過程
下面介紹兩種簡單的技術來幫助你的應用程序反擊基于鉤子技術的鍵盤監視程序.具有防范監視功能的密碼編輯控件 。如圖2所示 。
該編輯安全的控件假定函數Sendlneut生成擊鍵的速度快于用戶擊鍵的速度,這可能導致編輯安全的控件在較慢的機器上返回錯誤的用戶數據,特別是在運行c#實現版本時 。先看VC++ MFC版本的CsafeEdlt類:
本文以軟件保護為背景,詳細討論了一個鍵盤監視器的開發并針對反監視提出了一些建議 。希望讀者理解基于鉤子技術的窺探軟件的工作原理.更好地針對自己的軟件加以保護
- 央行開展8000億MLF操作 央行5000億元MLF操作
- 小紅鳥qq聊天記錄查看器 qq聊天記錄查看器破解版手機版
- 電腦錄屏步驟 電腦操作怎樣錄屏
- 手機ppt轉換word文檔怎么操作 電腦ppt轉換word文檔怎么操作
- 電腦鍵盤錄制軟件 機械鍵盤錄制功能是什么
- 游戲機械鍵盤哪個好 nga 游戲機械鍵盤哪個好用
- 電視什么操作系統好用 電視機的操作系統哪一種好一點
- dos工具箱有什么用 電腦系統dos工具箱怎么操作
- arcgis核密度估計操作 arcgis核密度圖結果描述
- 曖昧期的聊天記錄是怎么樣的 曖昧期怎么聊天
