女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]程序運(yùn)行之后把自己刪除的方法

  近日看到網(wǎng)友詢問(wèn)如何實(shí)現(xiàn)程序運(yùn)行之后把自己刪除的方法,不知大家對(duì)木馬甚么的興趣實(shí)在太濃,還是想要這樣的效果:用戶只要一運(yùn)行程序,可執(zhí)行文件就沒(méi)有了,可是程序還是在跑,膽小的只怕要喊"鬼呀!","老婆,快出來(lái)看上帝"甚么的

  。其實(shí)最典型的用法是寫反安裝程序. 閑來(lái)無(wú)事,Bear掰到一種還算巧妙的“刪除自己”的方法。

  大家都知道,一般的程序運(yùn)行的時(shí)候,可執(zhí)行文件本身是被操作系統(tǒng)保護(hù)的,不能用改寫的方式訪問(wèn),更別提在本身還在運(yùn)行的時(shí)侯刪除自己了。在Lu0的主頁(yè)上看到一種UNDOCUMENT的方法,通過(guò)改變系統(tǒng)底層的文件訪問(wèn)模式實(shí)現(xiàn)刪除自己,那是實(shí)在功夫。我看了很是佩服。但是有沒(méi)有一種用在MSDN上就能查到的函數(shù)實(shí)現(xiàn)呢?有!Jeffrey Richter給我們做了一個(gè)范例:

  DeleteMe.CPP

  Module name: DeleteMe.cpp

  Written by: Jeffrey Richter

  Description: Allows an EXEcutable file to delete itself

  **************************************************/

  #include

  #include

  #include

  /////////////////////////////////////////////////

  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());[!--empirenews.page--]

  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);

  }

  看懂了嗎?

  這一段程序思路很簡(jiǎn)單:不是不能在運(yùn)行時(shí)直接刪除本身嗎?好,那么程序先復(fù)制(CLONE)一個(gè)自己,用復(fù)制品起動(dòng)另一個(gè)進(jìn)程,然后自己結(jié)束運(yùn)行,則原來(lái)的EXE文件不被系統(tǒng)保護(hù).這時(shí)由新進(jìn)程作為殺手刪除原來(lái)的EXE文件,并且繼續(xù)完成程序其他的功能。

  新進(jìn)程在運(yùn)行結(jié)束后,復(fù)制品被自動(dòng)刪除。這又是值得介紹的一個(gè)把戲了,注意:

  // 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標(biāo)志,這個(gè)標(biāo)志是告訴操作系統(tǒng),當(dāng)和這個(gè)文件相關(guān)的所有句柄都被關(guān)閉之后(包括上面這個(gè)CREATEFILE創(chuàng)建的句炳),就把這個(gè)文件刪除。幾乎所有的臨時(shí)文件在創(chuàng)建時(shí),都指明了這個(gè)標(biāo)志。

  另外要注意的是:在復(fù)制品進(jìn)程對(duì)原始程序操刀之前,應(yīng)該等待原進(jìn)程退出.在這里用的是進(jìn)程同步技術(shù).用HANDLE hProcessOrig = OpenProcess(SYNCHRONIZE, TRUE,GetCurrentProcessId());得到原進(jìn)程句柄.SYNCHRONICE標(biāo)志在NT下有效,作用是使OpenProcess得到的句柄可以做為同步對(duì)象.復(fù)制品進(jìn)程用WaitForSingleObject函數(shù)進(jìn)行同步,然后一個(gè)DeleteFile,以及進(jìn)行其它銷毀證據(jù)(Jeffrey說(shuō):比如刪目錄)的工作,打完收工!

  程序是基于CONSOLE的,通過(guò)傳入的參數(shù)確定是原始的進(jìn)程還是復(fù)制品新進(jìn)程,并且得到需要操作的目標(biāo)文件的信息(主要是路徑),復(fù)制品放在系統(tǒng)的TEMP目錄(GetTempPath得到),你也可以隨便找個(gè)你認(rèn)為安全的地方(比如:WINDOWSSYSTEM32等等)。

  這里面沒(méi)有甚么深的技術(shù).再看其他的一些實(shí)現(xiàn)刪除自己的例子,比如說(shuō)在進(jìn)程退出前,用fwrite等方法輸出一個(gè).BAT文件,在里面寫幾句DEL,然后WINEXEC一下這個(gè)BAT文件即可.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

Wefi的WeConnect和OpenRoaming提供自動(dòng)、無(wú)縫和安全的連接,為網(wǎng)絡(luò)運(yùn)營(yíng)商和用戶提供價(jià)值驅(qū)動(dòng)的網(wǎng)絡(luò)體驗(yàn) 洛杉磯2022年10月19日 /美通社/ -- W...

關(guān)鍵字: PEN Wi-Fi NEC STORE

南京2022年10月19日 /美通社/ -- 10月16日是第42個(gè)世界糧食日,今年世界糧食日的主題是"不讓任何人掉隊(duì),更好生產(chǎn)、更好營(yíng)養(yǎng)、更好環(huán)境、更好生活",向全社會(huì)倡導(dǎo)愛(ài)惜糧食,拒絕浪...

關(guān)鍵字: 西門子 SE OS 可持續(xù)發(fā)展

蘇州2022年10月19日 /美通社/ -- 2022年10月18日,全球光學(xué)及光電技術(shù)領(lǐng)軍者蔡司在蘇州工業(yè)園區(qū)奠基啟動(dòng)"鳳棲"工程建設(shè),這是蔡司在國(guó)內(nèi)首次購(gòu)地自建項(xiàng)目,標(biāo)志著蔡司在中國(guó)本土化進(jìn)程的進(jìn)...

關(guān)鍵字: 光學(xué) 顯微鏡 進(jìn)程 中國(guó)制造

強(qiáng)生公司(Johnson & Johnson)公布最近結(jié)束的季度銷售額和利潤(rùn)實(shí)現(xiàn)增長(zhǎng),即使美元走強(qiáng)和勞動(dòng)力成本上升削弱了業(yè)績(jī)。這家保健用品公司周二下調(diào)了全年銷售指引,因美元相對(duì)于全球其他貨幣的上漲帶來(lái)的持續(xù)影響。...

關(guān)鍵字: JOHNSON SE OS

蔡司在蘇州工業(yè)園區(qū)奠基啟動(dòng)"鳳棲"工程建設(shè),這是蔡司在國(guó)內(nèi)首次購(gòu)地自建項(xiàng)目,標(biāo)志著蔡司在中國(guó)本土化進(jìn)程的進(jìn)一步深化與擴(kuò)展。 "鳳棲"工程建成后,蔡司蘇州將成為蔡司在中國(guó)更高規(guī)格的研發(fā)與制造的重要據(jù)點(diǎn),為其工業(yè)質(zhì)量、研究顯...

關(guān)鍵字: 顯微鏡 進(jìn)程

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

2019年上映的《復(fù)仇者聯(lián)盟4:終局之戰(zhàn)》無(wú)疑是漫威和超級(jí)英雄粉絲心中的劇痛,該片中最受觀眾喜愛(ài)的鋼鐵俠為了打敗滅霸,一個(gè)響指也奪走了自己的生命。影片最后,復(fù)聯(lián)成員們還為鋼鐵俠舉辦了一個(gè)葬禮,一眾英雄出席讓人淚奔。鋼鐵俠...

關(guān)鍵字: 漫威 HELLO TI OS

通過(guò)第二項(xiàng)3nm設(shè)計(jì)選用擴(kuò)展技術(shù)領(lǐng)先地位 第三季度強(qiáng)勁的貿(mào)易和設(shè)計(jì)選用反映出我們結(jié)合了IP和定制硅的混合業(yè)務(wù)模式 自2022年9月1日起,OpenFive首次并入集團(tuán) 盡管宏觀環(huán)境困難,但管理層仍對(duì)業(yè)務(wù)...

關(guān)鍵字: BSP ALPHA PEN Silicon

上海2022年10月17日 /美通社/ -- 近日,第17屆中國(guó)研究生電子設(shè)計(jì)競(jìng)賽(下簡(jiǎn)稱:研電賽)全國(guó)總決賽評(píng)審工作圓滿完成。今年,來(lái)自全國(guó)63個(gè)高校的114支參賽隊(duì)伍報(bào)名了TI企業(yè)命題,創(chuàng)下歷史新高。并且,...

關(guān)鍵字: TI 德州儀器 OS 模擬

(全球TMT2022年10月13日訊)Bossard柏中推出的亮燈揀選系統(tǒng)(Pick by Light and Put to Light)幫助客戶減少尋料和補(bǔ)貨時(shí)間。這種“摘果式”燈光揀選系統(tǒng)采用LED信號(hào)燈引導(dǎo)物料員...

關(guān)鍵字: SAR 亮燈揀選系統(tǒng) OS LIGHT

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉