溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

發(fā)布時(shí)間:2021-12-29 16:44:56 來源:億速云 閱讀:163 作者:柒染 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

前言

   在Win10 x64環(huán)境下替換正常的進(jìn)程,是一個(gè)比較高超的技術(shù)。使用該技術(shù),可以內(nèi)存執(zhí)行病毒、木馬。在文件層面實(shí)現(xiàn)免殺。可以把一個(gè)木馬使用DES加密,放在資源里。執(zhí)行時(shí),從資源里釋放出來,在內(nèi)存里進(jìn)行DES解密,注入到一個(gè)系統(tǒng)的進(jìn)程中。

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

環(huán)境

1.  VisualStudio 2015 企業(yè)版

2.  普通程序 Notepad.exe (C:\windows\system32\Notepad.exe)

3.  木馬程序 MalWare.exe

4.  源碼下載地址,http://www.isafe.cc/article.asp?id=77

5.  EXE下載地址,http://www.isafe.cc/article.asp?id=77

步驟

創(chuàng)建一個(gè)掛起的進(jìn)程notepad.exe->讀取線程上下文->讀取進(jìn)程內(nèi)存->讀取Notepad.exe原始入口點(diǎn)->卸載Notepad.exe占用的內(nèi)存->將MalWare.exe二進(jìn)制放入內(nèi)存緩沖區(qū)->在Notepad.exe進(jìn)程中分配一個(gè)內(nèi)存空間->將MalWare.exe注入到Notepad.exe的進(jìn)程里->修改Notepad.exe的區(qū)段->修改Notepad.exe的入口點(diǎn)->恢復(fù)主線程->成功注入。

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

代碼實(shí)現(xiàn)

一.創(chuàng)建一個(gè)掛起的進(jìn)程notepad.exe

BOOL WINAPI CreateProcess(  _In_opt_    LPCTSTR              lpApplicationName,  _Inout_opt_ LPTSTR               lpCommandLine, _In_opt_    LPSECURITY_ATTRIBUTESlpProcessAttributes, _In_opt_    LPSECURITY_ATTRIBUTESlpThreadAttributes, _In_        BOOL                 bInheritHandles, _In_        DWORD                dwCreationFlags,  _In_opt_    LPVOID               lpEnvironment,  _In_opt_    LPCTSTR              lpCurrentDirectory, _In_        LPSTARTUPINFO        lpStartupInfo, _Out_       LPPROCESS_INFORMATIONlpProcessInformation);

a.) lpApplicationName 這個(gè)參數(shù)是可執(zhí)行文件的路徑。例如

      c:\programfiles\sub dir\program.exe

      c:\program files\a.exe

      netstat

b.) lpCommandLine 這個(gè)表示應(yīng)用程序的參數(shù)。例如 -an

c.) lpProcessAttributes 進(jìn)程屬性結(jié)構(gòu)體變量

d.) lpThreadAttributes  線程屬性結(jié)構(gòu)體變量

e.) bInheritHandles     指定當(dāng)前進(jìn)程內(nèi)句柄不可以被子進(jìn)程繼承

f.) dwCreationFlags     進(jìn)程創(chuàng)建標(biāo)識符,CREATE_SUSPENEDE 表示創(chuàng)建一個(gè)掛起的進(jìn)程。

g.) lpEnvironment       指向一個(gè)新進(jìn)程的環(huán)境塊。如果此參數(shù)為空,新進(jìn)程使用調(diào)用      進(jìn)程的環(huán)境。

h.) lpCurrentDirectory  指向一個(gè)以NULL結(jié)尾的字符串,這個(gè)字符串用來指定子進(jìn)程的  工作路徑。這個(gè)字符串必須是一個(gè)包含驅(qū)動(dòng)器名的絕對路徑。如果這個(gè)參數(shù)為NULL,新進(jìn)程將使用與調(diào)用進(jìn)程相同的驅(qū)動(dòng)器和目錄。

i.) lpStartupInfo       指向一個(gè)用于決定新進(jìn)程的主窗體如何顯示的STARTUPINFO結(jié) 構(gòu)體。

j.) lpProcessInformation保存進(jìn)程所有信息的結(jié)構(gòu)體變量。

CreateProcess函數(shù)用于創(chuàng)建一個(gè)進(jìn)程,cAppName為C:\\Windows\\notepad.exe,是程序文件的路徑,第6個(gè)參數(shù)為CREATE_SUSPENDED,表示創(chuàng)建一個(gè)掛起的進(jìn)程。最后2個(gè)參數(shù)si,pi保存了進(jìn)程的相關(guān)信息(進(jìn)程的句柄,線程的句柄等)。

二. 讀取線程上下文

GetThreadContext函數(shù)用于獲取線程上下文。

Pi.hThread為線程句柄,

context線程信息結(jié)構(gòu)體。

三. 讀取Notepad.exe原始入口點(diǎn)

ReadProcessMemory函數(shù)用于讀取另一個(gè)進(jìn)程的內(nèi)存。這里dwVictimBaseAddr存放讀取的數(shù)據(jù),大小為4個(gè)字節(jié)。

原型

BOOL ReadProcessMemory(HANDLE hProcess,LPCVOIDlpBaseAddress,LPVOID lpBuffer,DWORD nSize,LPDWORDlpNumberOfBytesRead);

第一個(gè)參數(shù)hProcess,要讀取的進(jìn)程句柄。

第二個(gè)參數(shù)lpBaseAddress,要讀取的進(jìn)程的內(nèi)存首址。開始地址。

第三個(gè)參數(shù)lpBuffer,接收數(shù)據(jù)內(nèi)容的緩沖區(qū)。

第四個(gè)參數(shù) nSize,從內(nèi)存中讀取的字節(jié)數(shù)。

第五個(gè)參數(shù)lpNumberOfBytesRead,已經(jīng)讀取的字節(jié)數(shù)。

函數(shù)返回0表示調(diào)用失敗。

四. 卸載Notepad.exe占用的內(nèi)存

pfnNtUnmapViewOfSection函數(shù)用于卸載進(jìn)程占用的內(nèi)存

五. 在Notepad.exe進(jìn)程中分配一個(gè)內(nèi)存空間

VirtualAllocEx函數(shù)用于在指定進(jìn)程中分配一個(gè)內(nèi)存空間。

函數(shù)原型:

LPVOIDVirtualAllocEx(HANDLE hProcess,LPVOIDlpAddress,SIZE_T dwSize,DWORDflAllocationType,DWORD flProtect);

第一個(gè)參數(shù)hProcess,需要在其中分配空間的進(jìn)程的句柄。

第二個(gè)參數(shù)lpAddress,分配的內(nèi)存首址。

第三個(gè)參數(shù) dwSize,分配的內(nèi)存大小。

第四個(gè)參數(shù)flAllocationType,內(nèi)存區(qū)域的類型。

第五個(gè)參數(shù)flProtect,內(nèi)存保護(hù)屬性。

六. 將MalWare.exe注入到Notepad.exe的進(jìn)程里,修改Notepad.exe的區(qū)段和PE文件頭

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

WriteProcessMemory函數(shù)用于向Notepad.exe進(jìn)程寫入任何數(shù)據(jù)。

函數(shù)原型:

BOOL WINAPI WriteProcessMemory(
   HANDLE  hProcess,
  LPVOID  lpBaseAddress,
  LPCVOID lpBuffer,
  SIZE_T  nSize,
  SIZE_T  *lpNumberOfBytesWritten
);

第一個(gè)參數(shù)hProcess,待操作的進(jìn)程句柄。

第二個(gè)參數(shù) lpBaseAddress,要寫入數(shù)據(jù)的起始地址。

第三個(gè)參數(shù)lpBuffer,要寫入數(shù)據(jù)的緩沖區(qū)首址。

第四個(gè)參數(shù) nSize,  要寫入數(shù)據(jù)的長度。

第五個(gè)參數(shù)lpNumberOfBytesWritten,已寫入的數(shù)據(jù)長度。

七. 修改Notepad.exe的入口點(diǎn) RCX存放的是入口點(diǎn)。

八.   恢復(fù)主線程

SetThreadContext()函數(shù)用于恢復(fù)線程上下文,這里指定了新的入口點(diǎn)地址 Rcx

ResumeThread ()函數(shù)用于啟動(dòng)掛起的線程。

編譯為EXE

必須用Visual Studio 2015進(jìn)行編譯。源碼下載(http://www.isafe.cc/article.asp?id=77)

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

在“解決方案資源管理器”中,右鍵->重新生成

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

在輸出窗口中看到成功1個(gè)(注意這里生成的是一個(gè)Release版的64位程序)

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

MalWare.exe編譯為EXE

源碼下載(http://www.isafe.cc/article.asp?id=77)

打開VS2015,點(diǎn)擊菜單[文件]->[打開]->[項(xiàng)目/解決方案]。

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

打開Malware.vcxproj工程文件,進(jìn)行編譯,模式為Release,平臺為x64。

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

在輸出窗口中,提示成功1個(gè)。

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

Win10平臺測試

將ProcessReplacement.exe拖入虛擬機(jī)。

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

雙擊,提示

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

看樣子是缺少什么文件?將VS2015環(huán)境下的文件vcruntime140.dll,復(fù)制到虛擬機(jī)

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

雙擊執(zhí)行ProcessReplacement.exe

如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)

小編介紹的Win10 x64進(jìn)程鏤空技術(shù),可以在文件層面實(shí)現(xiàn)木馬免殺。

上述就是小編為大家分享的如何實(shí)現(xiàn)Windows 10進(jìn)程鏤空技術(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI