鍵盤間諜(二)

2021-04-06 17:44:04 字數 1167 閱讀 7210

阻止鍵盤間諜

不被**的edit控制項

不被**的edit控制項在每次使用者敲鍵以後都會產生一些隨機鍵盤事件。鍵盤間諜將會捕捉到使用者的鍵盤事件和控制項建立的虛假事件,從而很難判斷真實敲鍵的內容。另一方面,使用者的輸入是被儲存在控制項的成員變數中的,應用程式不會受到影響。虛假鍵盤事件是利用sendinput api函式產生的。我分別實現了mfc和c#可用的控制項。

不被**的edit控制項假定sendinput產生鍵盤事件的速度遠快於使用者本身的輸入,但這可能導致在一些較慢的機器上, 控制項會返回錯誤的使用者輸入,尤其是c#的實現中。

mfc csafeedit:

void csafeedit::onkeyup(uint nchar, uint nrepcnt, uint nflags)

if (m_state == 0)

else

cedit::onkeyup(nchar, nrepcnt, nflags);}/

cstring csafeedit::getrealtext()/

int csafeedit::senddummykeystrokes()

return ikeystrokecount;

}刪除間諜類庫(spyremover)

基於鉤子的間諜程式都是依賴於存放鉤子程式的dll檔案的,因此應用程式的程序中通過呼叫freelibrary api移除掉鉤子dll,將會使鍵盤間諜鉤子失效。spyremover的建構函式中建立乙個授權模組的列表,然後通過列舉程序所有已載入的模組來檢測未授權的模組,鍵盤間諜的鉤子dll也在其中。

void spyremover::timerproc(hwnd hwnd, uint umsg,

unsigned int idevent, dword dwtime)//

spyremover::spyremover(char* szauthorizedlist)//

void spyremover::enummodules()

//walk the module list of the process

do } while( module32next( hmodulesnap, &me32 ) );

closehandle(hmodulesnap); }//

bool spyremover::i**oduleauthorized(char* szmodulename)

間諜軟體 Spyware

spyware 在使用者不知情的情況下,在其電腦上安裝後門,收集使用者的個人資訊的軟體,能夠消弱使用者對其使用經驗,隱私及系統安全的物質控制能力 消耗電腦資源包括安裝包上的程式一般編寫十分簡陋 收集或散布使用者的個人資訊。甚至能夠在使用者不知情的情況下對裝置進行控制,並在使用者同意情況下通過cook...

C NOIP模擬題 間諜網路

由於外國間諜的大量滲入,正處於高度危機之中。如果a間諜手中掌握著關於b間諜的犯罪證據,則稱a可以揭發b。有些間諜接 賂,只要給他們一定數量的美元,他們就願意交出手中掌握的全部情報。所以,如果我們能夠收買一些間諜的話,我們就可能控制間諜網中的每一分子。因為一旦我們逮捕了乙個間諜,他手中掌握的情報都將歸...

動態規劃 城市裡的間諜

解題思路 本題利用動態規劃解決,時刻i和所在的車站j構成了乙個狀態,每個狀態都有三種決策 1 等待1分鐘。2 搭乘向右開的車 如果有 3 搭乘向左開的車 如果有 如果用d i,j 表示在時刻i,位於車站j時最少的等待時間,那麼對於三種決策,可得到如下的狀態轉移方程 1 d i,j d i 1,j 1...