亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號(hào)

黑客技巧談之EXE程序的自刪除實(shí)現(xiàn)
2007-01-29   賽迪網(wǎng)

程序的自刪除已經(jīng)不是什么新鮮的話題了,它廣泛運(yùn)用于木馬、病毒中。試想想,當(dāng)你的程序還在運(yùn)行中(通常是完成了駐留、感染模塊),它就自動(dòng)地把自己從磁盤中刪掉,這樣一來(lái),就做到了神不知鬼不覺(jué),呵呵,是不是很cool呢?

自刪除(Self Deleting)最早的方法是由 Gary Nebbett 大蝦寫的,太經(jīng)典了,不能不提。程序如下:

#include "windows.h"

int main(int argc, char *argv[])
{
char buf[MAX_PATH];
HMODULE module;

module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
CloseHandle((HANDLE)4);

__asm 
{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}

return 0;
}

試試編譯它,運(yùn)行。怎么樣?從你的眼皮底下消失了吧?是不是很神奇?

Gary Nebbett 鉆了系統(tǒng)的一個(gè)漏洞,他的程序是關(guān)閉了 exe 文件的 IMAGE(硬編碼為4),然后用 UnmapViewOfFile 解除了 exe 文件在內(nèi)存中的映象,接著通過(guò)堆棧傳遞當(dāng)前程序的 Handle 給 DeleteFile() ,實(shí)現(xiàn)了程序的自刪除。

Gary Nebbett 果然不愧為 WIN 系統(tǒng)下頂尖的底層高手。那么是否還有其他的方法實(shí)現(xiàn)程序的自刪除呢?答案是肯定的。

在 Win9x/ME 下,還可以利用 WININIT.INI 的一些特性。在 WININIT.INI 文件里面有一個(gè)節(jié) [Rename] ,只要在里面寫入要 “Nul=要?jiǎng)h除的文件”,那么下次系統(tǒng)重新啟動(dòng)的時(shí)候,該文件就會(huì)被自動(dòng)刪除了。以下是一個(gè)例子:

[Rename]
NUL=c:\SelfDelete.exe

利用這個(gè)特性,我們就可以在程序中對(duì)這個(gè) ini 文件進(jìn)行操作。值得注意的是,當(dāng)需要自刪除的文件多于一個(gè)的時(shí)候,就不能使用 WritePrivateProfileString 來(lái)實(shí)現(xiàn),因?yàn)檫@個(gè) API 會(huì)阻止多于一個(gè)“NUL=”這樣的入口在同一個(gè)節(jié)里面出現(xiàn),所以最好還是自己手動(dòng)實(shí)現(xiàn)。

第三種方法是利用批處理文件。先讓我們做一個(gè)試驗(yàn):

創(chuàng)建一個(gè) a.bat ,給它寫入以下內(nèi)容:

del %0.bat

現(xiàn)在運(yùn)行它吧,屏幕一閃而過(guò),最后留下一串字符:“The batch file cannot be found”。這時(shí)候它已經(jīng)從你的硬盤中消失了。

這說(shuō)明,批處理文件是可以刪除自己的,于是我們可以把這個(gè)小技巧運(yùn)用在自己的程序當(dāng)中:

:Repeat
del "C:\MYDIR\SelfDelete.exe"
if exist "SelfDelete.exe" goto Repeat
rmdir "C:\MYDIR"
del "\DelUS.bat"

它會(huì)重復(fù)不斷地搜索是否有 SelfDelete.exe 這個(gè)文件,直到刪除了它為止;當(dāng)刪除完畢后,這個(gè)批處理文件就會(huì)把自己刪除。

(注:本方法可以支持所有的 Windows 版本,即 Win9x/Me/NT/2000/XP)

用批處理文件的方法有一個(gè)缺陷,就是會(huì)突然彈出一個(gè) DOS 窗,冷不防的嚇人一跳,不過(guò)據(jù)我所知這是目前唯一可以在 WinXP 下起作用的方法。當(dāng)然,最理想的方法是用 Gary Nebbett 的那種,不過(guò)它的缺陷是沒(méi)法在 WinXP 下起作用。

熱詞搜索:

上一篇:提供幾個(gè)有用的Javascript驗(yàn)證腳本
下一篇:不同寬帶接入下的路由器如何進(jìn)行設(shè)置

分享到: 收藏