国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VC下揭開“特洛伊木馬”的隱藏面紗
 一、引言

  “特洛伊木馬”曾在網(wǎng)上造成很大恐慌,此類黑客程序通過欺騙手段在普通網(wǎng)絡用戶端安裝木馬的服務端,使用戶的計算機在上網(wǎng)時留有后門,而黑客則可以通過這個后門對被感染的計算機隨心所欲地進行監(jiān)視、破壞。顯然這種黑軟對于普通網(wǎng)絡用戶的危害是非常嚴重的。

  就本質(zhì)而言黑客軟件仍然屬于應用程序,是基于套接字的網(wǎng)絡通訊程序。因此黑客能成功攻擊被感染計算機的一個非常必要的先決條件就是此時被攻擊方已經(jīng)有木馬程序的服務端在運行。由于木馬程序是一種惡意程序,能在被攻擊者沒有察覺的情況下悄悄啟動運行為攻擊者打開后門,故顯然不能象其他程序一樣堂而皇之的顯示在任務欄和任務列表中,否則會立即為用戶所察覺而將其關閉,也就失去了為攻擊者提供后門的作用。本文下面就針對其隱藏程序的機理展開討論。

  二、程序在任務欄中的隱藏原理

  程序在任務欄的隱藏比較簡單,首先要保證程序主界面的隱藏,一般是通過修改應用程序類的初始化實例函數(shù)InitInstance()的ShowWindow()語句的SW_SHOW參數(shù)為SW_HIDE來實現(xiàn)的。主界面隱藏的同時任務欄雖然也會消失,但在程序啟動時會閃一下,因此需要修改程序的擴展屬性。一種方法是SDK的寫法,即直接利用GetWindowLong()獲取到當前的擴展屬性然后通過邏輯運算去掉原有的WS_EX_APPWINDOW屬性,并新添加一個WS_EX_TOOLWINDOW屬性,這樣系統(tǒng)會將其認為是一個工具條窗口而不會再在任務欄中加以顯示。最后需要將修改過的擴展屬性通過SetWindowLong()函數(shù)將其寫回。這兩個函數(shù)的聲明分別如下:

LONG GetWindowLong(HWND hWnd,int nIndex);
LONG SetWindowLong(HWND hWnd,int nIndex,LONG dwNewLong);

  另一種很簡便的是MFC的寫法:在程序框架類的預創(chuàng)建窗口函數(shù)里通過直接對CREATESTRUCT結(jié)構(gòu)對象的邏輯操作而將程序?qū)傩赃M行改變:

cs.style=WS_POPUP;
cs.dwExStyle|=WS_EX_TOOLWINDOW;

  這兩種寫法雖然表現(xiàn)形式各不相同,其本質(zhì)都是一樣的。

  三、程序在任務列表中的隱藏原理

  任務列表(Ctrl+Alt+Del時彈出的對話框)顯示了當前系統(tǒng)正在運行的一些應用程序,如果實現(xiàn)了上一步,雖然在任務欄看不見程序,但有經(jīng)驗的用戶可以通過觀察任務列表而發(fā)現(xiàn)一些值得懷疑的應用程序而在此將其關閉。所以大多數(shù)黑軟也都通過較復雜的手段實現(xiàn)了自身在任務列表中的隱藏,使被發(fā)現(xiàn)的機會大大降低。

  在Win9x/2000中,一般每個應用程序都要通過一個API(應用程序接口)函數(shù)RegisterServiceProcess()向系統(tǒng)申請注冊成為一個服務進程,并且也是通過這個函數(shù)注銷其服務進程來結(jié)束這個服務進程的運行。如果一個進程注冊為一個服務進程,通過Ctrl+Alt+Del就可以在任務列表里看見該進程的標題。而如果一個進程運行了但沒有向系統(tǒng)申請注冊成為服務進程那么就不會在任務列表里顯示。黑軟也正是利用這個原理使自身在運行時能在任務列表中實現(xiàn)隱藏。該函數(shù)存放于系統(tǒng)內(nèi)核Kernel32.dll中,具體聲明如下:

DWORD RegisterServiceProcess(DWORD dwProcessId,DWORD dwType);

  其第一個參數(shù)指定為一個服務進程的進程標識,如果是0則注冊當前的進程;第二個參數(shù)指出是注冊還是注銷當前的進程,其狀態(tài)分別為:RSP_SIMPLE_SERVICE和RSP_UNREGISTER_SERVICE。黑軟一般是在程序啟動初始化時首先從Kernel32.dll動態(tài)連接庫中將RegisterServiceProcess()函數(shù)加載到內(nèi)存,然后再通過該函數(shù)將程序從任務列表中隱藏:

//從Kernel32.dll中加載RegisterServiceProcess()
HMODULE m_hKernel=::GetModuleHandle("Kernel32.DLL");
RSP m_rsp=(RSP)::GetProcAddress(m_hKernel,"RegisterServiceProcess");
m_rsp(::GetCurrentProcessId(),1);//此時為隱藏,當?shù)诙€參數(shù)為0時顯示

  另外,還有一部分黑軟是通過ShowWindowAsync()函數(shù)啟動一個新的線程來顯示一個新窗口的。該函數(shù)的原形為:

BOOL ShowWindowAsync(HWND hWnd,int nCmdShow);

  而黑軟正是鉆了該函數(shù)的第二個參數(shù)可以設置窗體顯示狀態(tài)的空子,在設置成SW_HIDE時就可以使目標窗體(黑軟)從任務列表中隱藏。

  四、小結(jié)

  以上就是Win9x/2000下的黑客程序所具備的一些基本功能,在此基礎上我們可以借助于其實現(xiàn)技巧來編寫出一些諸如后臺監(jiān)控之類的實用程序。并且可以通過對黑客類軟件的隱藏機理的分析能使廣大用戶對此類黑軟采取一些必要的措施,通過加強防范來使自己的損失防患于未然。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
~~~黑客編程基礎~~~ - 安全編程 - 非安全 - 普及本土安全知識,推動網(wǎng)絡文明進程
Windows添加應用程序到任務欄
VC窗體設計集錦
屏蔽
Delphi 全面控制Windows任務欄
c語言,return,exit
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服