亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

一種巧妙的刪除程序自己的方法

2019-09-06 23:33:21
字體:
來源:轉載
供稿:網友

                    近日看到網友詢問如何實現程序運行之后把自己刪除的方法,不知大家對木馬甚么的興趣實在太濃,還是想要這樣的效果:用戶只要一運行程序,可執行文件就沒有了,可是程序還是在跑,膽小的只怕要喊"鬼呀!","老婆,快出來看上帝"甚么的
。其實最典型的用法是寫反安裝程序. 閑來無事,Bear掰到一種還算巧妙的“刪除自己”的方法。
 
大家都知道,一般的程序運行的時候,可執行文件本身是被操作系統保護的,不能用改寫的方式訪問,更別提在本身還在運行的時侯刪除自己了。在Lu0的主頁上看到一種UNDOCUMENT的方法,通過改變系統底層的文件訪問模式實現刪除自己,那是實在功夫。我看了很是佩服。但是有沒有一種用在MSDN上就能查到的函數實現呢?有!Jeffrey Richter給我們做了一個范例:
 
DeleteMe.CPP
 
Module name: DeleteMe.cpp
Written by: Jeffrey Richter
Description: Allows an EXEcutable file to delete itself
**************************************************/
 
#include <Windows.h>
#include <stdlib.h>
#include <tchar.h>
 
/////////////////////////////////////////////////
 
int WINAPI WinMain(HINSTANCE h, HINSTANCE b, LPSTR psz, int n) {
 
// Is this the Original EXE or the clone EXE?
// If the command-line 1 argument, this is the Original EXE
// If the command-line >1 argument, this is the clone EXE
 
if (__argc == 1) {
 
// Original EXE: Spawn clone EXE to delete this EXE
// Copy this EXEcutable image into the user's temp directory
 
TCHAR szPathOrig[_MAX_PATH], szPathClone[_MAX_PATH];
GetModuleFileName(NULL, szPathOrig, _MAX_PATH);
GetTempPath(_MAX_PATH, szPathClone);
GetTempFileName(szPathClone, __TEXT("Del"), 0, szPathClone);
CopyFile(szPathOrig, szPathClone, FALSE);
 
//***注意了***:
// Open the clone EXE using FILE_FLAG_DELETE_ON_CLOSE
HANDLE hfile = CreateFile(szPathClone, 0, FILE_SHARE_READ, NULL, OPEN_EXISTI
NG, FILE_FLAG_DELETE_ON_CLOSE, NULL);
 
// Spawn the clone EXE passing it our EXE's process handle
// and the full path name to the Original EXE file.
TCHAR szCmdLine[512];
HANDLE hProcessOrig = OpenProcess(SYNCHRONIZE, TRUE, GetCurrentProcessId());

wsprintf(szCmdLine, __TEXT("%s %d "%s""), szPathClone, hProcessOrig, szPat
hOrig);
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
CreateProcess(NULL, szCmdLine, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
CloseHandle(hProcessOrig);
CloseHandle(hfile);
 
// This original process can now terminate.
} else {
 
// Clone EXE: When original EXE terminates, delete it
HANDLE hProcessOrig = (HANDLE) _ttoi(__targv[1]);
WaitForSingleObject(hProcessOrig, INFINITE);
CloseHandle(hProcessOrig);
DeleteFile(__targv[2]);
// Insert code here to remove the subdirectory too (if desired).
 
// The system will delete the clone EXE automatically
// because it was opened with FILE_FLAG_DELETE_ON_CLOSE
}
return(0);
}
 
看懂了嗎?
 
這一段程序思路很簡單:不是不能在運行時直接刪除本身嗎?好,那么程序先復制(CLONE)一個自己,用復制品起動另一個進程,然后自己結束運行,則原來的EXE文件不被系統保護.這時由新進程作為殺手刪除原來的EXE文件,并且繼續完成程序其他的功能。

 
新進程在運行結束后,復制品被自動刪除。這又是值得介紹的一個把戲了,注意:
// Open the clone EXE using FILE_FLAG_DELETE_ON_CLOSE
HANDLE hfile = CreateFile(szPathClone, 0, FILE_SHARE_READ, NULL,OPEN_EXISTIN
G, FILE_FLAG_DELETE_ON_CLOSE, NULL);
這里面的FILE_FLAG_DELETE_ON_CLOSE標志,這個標志是告訴操作系統,當和這個文件相關的所有句柄都被關閉之后(包括上面這個CREATEFILE創建的句炳),就把這個文件刪除。幾乎所有的臨時文件在創建時,都指明了這個標志。
另外要注意的是:在復制品進程對原始程序操刀之前,應該等待原進程退出.在這里用的是進程同步技術.用HANDLE hProcessOrig = OpenProcess(SYNCHRONIZE, TRUE,GetCurrentProcessId());得到原進程句柄.SYNCHRONICE標志在NT下有效,作用是使OpenProcess得到的句柄可以做為同步對象.復制品進程用WaitForSingleObject函數進行同步,然后一個DeleteFile,以及進行其它銷毀證據(Jeffrey說:比如刪目錄)的工作,打完收工!
 
程序是基于CONSOLE的,通過傳入的參數確定是原始的進程還是復制品新進程,并且得到需要操作的目標文件的信息(主要是路徑),復制品放在系統的TEMP目錄(GetTempPath得到),你也可以隨便找個你認為安全的地方(比如:WINDOWSSYSTEM32等等)。
這里面沒有甚么深的技術.再看其他的一些實現刪除自己的例子,比如說在進程退出前,用fwrite等方法輸出一個.BAT文件,在里面寫幾句DEL,然后WINEXEC一下這個BAT文件即可.
玩兒過DOS的蟲蟲大多都會。今天又學一招,爽。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级电影在线| 国产精品视频999| 成人免费网站在线| 亚洲自拍小视频免费观看| 国产精品免费电影| 欧美日本在线视频中文字字幕| 国产精品视频1区| 国产精品日韩在线一区| 亚洲女人被黑人巨大进入| 伦理中文字幕亚洲| 日韩欧美国产骚| 久久资源免费视频| 久久偷看各类女兵18女厕嘘嘘| 国产在线观看91精品一区| 日韩成人av在线播放| 精品无人国产偷自产在线| 色七七影院综合| 国产一区二区精品丝袜| 精品国产依人香蕉在线精品| 在线观看免费高清视频97| 久久成人人人人精品欧| 欧美日本国产在线| 国产精品丝袜一区二区三区| 亚洲午夜精品久久久久久性色| 亚洲欧美日本伦理| 成人国产精品日本在线| 伊人久久久久久久久久久久久| 最近2019免费中文字幕视频三| 久久视频在线看| 欧美成人午夜剧场免费观看| 97在线免费观看| 色偷偷888欧美精品久久久| 蜜臀久久99精品久久久无需会员| 国产女人18毛片水18精品| 亚洲日本中文字幕| 欧美日韩裸体免费视频| 亚洲精品99999| 国产精品日韩专区| 欧美老少做受xxxx高潮| 秋霞午夜一区二区| 日本中文字幕久久看| 亚洲女人天堂色在线7777| 2021久久精品国产99国产精品| 亚洲免费人成在线视频观看| 亚洲第一精品夜夜躁人人躁| 456亚洲影院| 日韩av综合中文字幕| 欧美精品免费播放| 国产精品国产自产拍高清av水多| 欧美激情综合色| 欧美片一区二区三区| 欧美亚洲视频在线观看| 久久夜色精品国产| 国产精品永久免费| 中文字幕v亚洲ⅴv天堂| 韩剧1988免费观看全集| 午夜精品久久久久久久白皮肤| 精品国产999| 欧美成人午夜激情| 精品国偷自产在线视频| 久久青草精品视频免费观看| 中文字幕综合一区| 亚洲影院色在线观看免费| 一本色道久久综合狠狠躁篇怎么玩| 亚洲国产高清高潮精品美女| 精品久久久久久久久中文字幕| 福利一区视频在线观看| 在线播放亚洲激情| 亚洲一级片在线看| 中文字幕亚洲无线码在线一区| 国产精品96久久久久久| 狠狠躁夜夜躁人人爽超碰91| 国产日本欧美一区二区三区在线| 成人在线国产精品| 欧美性xxxx极品hd满灌| 国产精品第七十二页| 亚洲小视频在线观看| 乱亲女秽乱长久久久| 91免费版网站入口| 亚洲欧洲国产一区| 国产精品777| 亚洲精品资源美女情侣酒店| 欧美在线视频一二三| 国产精品久久久久免费a∨| 亚洲资源在线看| 在线国产精品视频| 国产亚洲美女精品久久久| 这里只有精品丝袜| 国产精品视频久久久久| 国产精品第2页| 日韩欧美中文字幕在线观看| 亚洲欧洲一区二区三区在线观看| 美女久久久久久久| 久久人人爽亚洲精品天堂| 国产成人一区二区| 疯狂做受xxxx欧美肥白少妇| 成人激情综合网| 最近中文字幕2019免费| 国产亚洲成精品久久| 国产精品吹潮在线观看| 国产专区欧美专区| 国产精品久久久久久久久久久久| 国产成人精品久久二区二区91| 日韩欧美一区二区三区| 热草久综合在线| 欧美激情欧美激情在线五月| 日本午夜人人精品| 国产精品美乳一区二区免费| 欧美日韩中文在线观看| 亚洲黄色av网站| 最近更新的2019中文字幕| 亚洲美女在线看| 日韩有码在线电影| 亚洲成人国产精品| 中文字幕亚洲欧美| 久久视频在线观看免费| 久久久久久久97| 日韩视频免费观看| 国产97在线亚洲| 日本一本a高清免费不卡| 欧美日韩激情小视频| 黄色一区二区在线| 久久精品2019中文字幕| 国产成人涩涩涩视频在线观看| 欧美国产日韩视频| 一区二区欧美亚洲| 狠狠躁夜夜躁人人爽超碰91| 69av视频在线播放| 97久久精品国产| 国产精品偷伦视频免费观看国产| 不卡伊人av在线播放| 国产成人91久久精品| 国产精品自拍偷拍| 韩国视频理论视频久久| 亚洲欧洲高清在线| 国产成人综合精品在线| 91精品国产免费久久久久久| 精品小视频在线| 亚洲在线免费看| 欧美视频在线免费| 久久精品国产91精品亚洲| 国产97在线观看| 欧美精品久久久久久久| 欧美性生活大片免费观看网址| 亚洲精品视频在线播放| 免费97视频在线精品国自产拍| 国产一区二区丝袜高跟鞋图片| 国产日韩欧美在线视频观看| 日韩hd视频在线观看| 日韩精品免费在线播放| 欧美高清视频在线观看| 欧美性猛交xxxx乱大交极品| 91美女片黄在线观看游戏| 中文字幕综合在线| 亚洲香蕉伊综合在人在线视看| 色哟哟亚洲精品一区二区| 97香蕉超级碰碰久久免费软件| 亚洲日本中文字幕免费在线不卡| 久久久久久亚洲精品中文字幕| 66m—66摸成人免费视频| 久久影视三级福利片| 亚洲精品456在线播放狼人| 亚洲网站在线播放| 日韩高清电影好看的电视剧电影|