版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
如何獲取Password?蘇曙光.軟件學(xué)院.華中科技大學(xué)1蘇曙光.軟件學(xué)院.華中科技大學(xué)2Windows進(jìn)程虛擬內(nèi)存空間進(jìn)程虛擬內(nèi)存空間(32位)空間大小為4GB(232)用戶區(qū):2GB頁(yè)交換區(qū),可對(duì)換到外存系統(tǒng)區(qū)(2GB)在核心態(tài)可訪問(wèn)的存儲(chǔ)區(qū)頁(yè)面大小為4KB(212)蘇曙光.軟件學(xué)院.華中科技大學(xué)3進(jìn)程空間的分區(qū)用戶區(qū)內(nèi)的空閑區(qū)(free,unallocated)空閑區(qū)空閑區(qū)空閑區(qū)蘇曙光.軟件學(xué)院.華中科技大學(xué)4和虛擬內(nèi)存操作相關(guān)的函數(shù)獲取OS系統(tǒng)信息[頁(yè)面大小,分配粒度]GetSystemInfo()
分配和釋放虛擬內(nèi)存VirtualAlloc()和VirtualFree()獲取內(nèi)存狀態(tài)【虛擬內(nèi)存】GlobalMemoryStatus()確定虛擬地址空間的狀態(tài)VirtualQuery()或VirtualQueryEx()改變頁(yè)面的保護(hù)屬性VirtualProtect()和VirtualProtectEx()虛擬內(nèi)存的讀寫ReadProcessMemory()和WriteProcessMemory()蘇曙光.軟件學(xué)院.華中科技大學(xué)5在應(yīng)用程序中分配虛擬內(nèi)存LPVOIDVirtualAlloc(LPVOIDlpAddress,DWORDdwSize,DWORDflAllocationType,DWORDflProtect);
蘇曙光.軟件學(xué)院.華中科技大學(xué)6在應(yīng)用程序中釋放虛擬內(nèi)存BOOLVirtualFree(LPVOIDlpAddress,DWORDdwSize,DWORDdwFreeType);蘇曙光.軟件學(xué)院.華中科技大學(xué)7改變頁(yè)面的保護(hù)屬性BOOLVirtualProtect(PVOIDpvAddress,DWORDdwSize,DWORDflNewProtect,PDWORDpflOldProtect);BOOLVirtualProtectEx(HANDLEhProcess,PVOIDpvAddress,DWORDdwSize,DWORDflNewProtect,PDWORDpflOldProtect);蘇曙光.軟件學(xué)院.華中科技大學(xué)8虛擬內(nèi)存的讀BOOLReadProcessMemory(
HANDLEhProcess,
LPCVOIDlpBaseAddress,
LPVOIDlpBuffer,
DWORDnSize,
LPDWORDlpNumberOfBytesRead
);
蘇曙光.軟件學(xué)院.華中科技大學(xué)9虛擬內(nèi)存的寫B(tài)OOLWriteProcessMemory(
HANDLEhProcess,
LPVOIDlpBaseAddress,
LPVOIDlpBuffer,
DWORDnSize,
LPDWORDlpNumberOfBytesWritten
);如何獲取Password?蘇曙光.軟件學(xué)院.華中科技大學(xué)10要“讀取”某個(gè)控件的內(nèi)容(例如編輯框)通常都是向其發(fā)送WM_GETTEXT消息。如果該編輯框?qū)儆谶h(yuǎn)程進(jìn)程(并具有ES_PASSWORD式樣,上面方法失效。
問(wèn)題:如何在遠(yuǎn)程進(jìn)程的地址空間執(zhí)行SendMessage(hPwdEdit,WM_GETTEXT,nMaxChars,psBuffer
);蘇曙光.軟件學(xué)院.華中科技大學(xué)11通常有三種方法來(lái)解決這個(gè)問(wèn)題1.將用戶代碼放入某個(gè)DLL,然后通過(guò)Windows鉤子映射該DLL到遠(yuǎn)程進(jìn)程;2.將用戶代碼放入某個(gè)DLL,通過(guò)CreateRemoteThread和LoadLibrary技術(shù)映射該DLL到遠(yuǎn)程進(jìn)程;3.如果不寫單獨(dú)的DLL,可將用戶代碼拷貝到遠(yuǎn)程進(jìn)程(通過(guò)WriteProcessMemory)并用CreateRemoteThread啟動(dòng)它的執(zhí)行。蘇曙光.軟件學(xué)院.華中科技大學(xué)12方法二:方法二:將用戶代碼放入DLL,通過(guò)CreateRemoteThread和LoadLibrary技術(shù)映射該DLL到遠(yuǎn)程進(jìn)程;進(jìn)程通過(guò)LoadLibraryAPI動(dòng)態(tài)加載DLL。問(wèn)題:如何強(qiáng)制一個(gè)遠(yuǎn)程進(jìn)程調(diào)用這個(gè)函數(shù)呢?答案:CreateRemoteThread創(chuàng)建遠(yuǎn)程線程執(zhí)行該函數(shù)。蘇曙光.軟件學(xué)院.華中科技大學(xué)13CreateThread函數(shù)把函數(shù)創(chuàng)建為線程HANDLECreateThread(LPSECURITY_ATTRIBUTES
lpThreadAttributes,DWORD
dwStackSize,LPTHREAD_ROUTINEThreadFunction,//線程函數(shù)LPVOID
lpParameter,//線程函數(shù)的參數(shù)DWORD
dwCreationFlags,
LPDWORD
lpThreadId);線程函數(shù)的原型DWORDThreadFunction(LPVOIDlpParameter//參數(shù))創(chuàng)建遠(yuǎn)程線程:CreateRemoteThread在遠(yuǎn)程進(jìn)程地址空間創(chuàng)建一個(gè)線程HANDLECreateRemoteThread(HANDLE
hProcess,//目標(biāo)進(jìn)程LPSECURITY_ATTRIBUTESlpThreadAttributes,//安全屬性DWORDdwStackSize,//堆棧大小LPTHREAD_START_ROUTINE
ThreadFunc,
//線程函數(shù)LPVOID
lpParameter,//線程參數(shù)DWORDdwCreationFlags,//創(chuàng)建標(biāo)志LPDWORDlpThreadId//線程ID);
把LoadLibrary/FreeLibrary作為CreateRemoteThread函數(shù)的線程例程。問(wèn)題1:LoadLibrary/FreeLibrary的函數(shù)指針?LoadLibrary和FreeLibray兩個(gè)函數(shù)都在kernel32.dll中。且每個(gè)進(jìn)程都加載kernel32.dll,
且LoadLibrary和FreeLibray兩個(gè)函數(shù)加載地址相同。因此,只要獲取該地址然后傳遞到CreateRemoteThread就可以。問(wèn)題2:如果ThreadFunc的參數(shù)lpParameter被解釋為指針,則它必須指向遠(yuǎn)程進(jìn)程內(nèi)的數(shù)據(jù)。如何實(shí)現(xiàn)?通過(guò)WriteProcessMemory在遠(yuǎn)程進(jìn)程虛擬內(nèi)存中寫入DLL模塊名(LoadLibrary需要的DLL名)即可。蘇曙光.軟件學(xué)院.華中科技大學(xué)16實(shí)際要注入的代碼(例如SendMessage代碼被放在DllMain的DLL_PROCESS_ATTACH事件中)現(xiàn)在已經(jīng)被執(zhí)行。蘇曙光.軟件學(xué)院.華中科技大學(xué)17從目標(biāo)進(jìn)程中將DLL卸載蘇曙光.軟件學(xué)院.華中科技大學(xué)18進(jìn)程間通信問(wèn)題:DLL獲取了包含密碼的編輯框的文本,它必須將它發(fā)送回原程序,以便能正確顯示出來(lái)。方法:文件映射WM_COPYDATA剪貼板#pragmadata_seg共享數(shù)據(jù)段……蘇曙光.軟件學(xué)院.華中科技大學(xué)19總結(jié):實(shí)現(xiàn)步驟1.獲取遠(yuǎn)程進(jìn)程(OpenProcess)的HANDLE;2.為遠(yuǎn)程進(jìn)程中的DLL名分配內(nèi)存(VirtualAllocEx);3.將DLL全路徑名寫入分配的內(nèi)存:WriteProcessMemory;4.
CreateRemoteThread和LoadLibrary將DLL映射到遠(yuǎn)程進(jìn)程;在DLL的DLL_PROCESS_ATTACH事件中獲取密碼5.等待線程終止(WaitForSingleObject),即直到LoadLibrary調(diào)用返回;用合適的方法接收和處理獲取的密碼6.獲取遠(yuǎn)程線程的退出代碼(GetExitCodeThread)并釋放分配的虛擬地址(VirtualFreeEx);7.用CreateRemoteThread和FreeLibrary從遠(yuǎn)程進(jìn)程卸載DLL。8.關(guān)閉所有句柄。蘇曙光.軟件學(xué)院.華中科技大學(xué)20新增一個(gè)大作業(yè)編寫一個(gè)程序,能夠獲取普通的第三方進(jìn)程中某個(gè)窗口上的文本編輯框(尤其是密碼框)的內(nèi)容。蘇曙光.軟件學(xué)院.華中科技大學(xué)21蘇曙光.軟件學(xué)院.華中科技大學(xué)22例子功能:在指定進(jìn)程中加載用戶DLL,要進(jìn)行虛擬內(nèi)存讀寫在進(jìn)程中創(chuàng)建一個(gè)遠(yuǎn)程線程(負(fù)責(zé)加載用戶DLL)。遠(yuǎn)程線程:在第三方空間運(yùn)行,需要參數(shù),VM線程函數(shù):LoadLibrary(“用戶編寫的DLL模塊”)相關(guān)函數(shù)OpenProcess:打開目標(biāo)進(jìn)程;VirtualAllocEx/VirtualFreeEx:分配/釋放內(nèi)存;WriteProcessMemory:寫虛擬內(nèi)存;LoadLibrary();裝載DLL模塊CreateRemoteThread–創(chuàng)建遠(yuǎn)程線程。蘇曙光.軟件學(xué)院.華中科技大學(xué)23OpenProcess//
打開目標(biāo)進(jìn)程HANDLE
hProcess
=
OpenProcess(
PROCESS_CREATE_THREAD
|
PROCESS_VM_OPERATION
|
PROCESS_VM_WRITE,
FALSE,
dwProcessID
);
第一個(gè)參數(shù)指定操作權(quán)限:ROCESS_CREATE_THREAD:在該進(jìn)程中創(chuàng)建新線程CreateRemoteThreadPROCESS_VM_OPERATION:分配//釋放內(nèi)存VirtualAllocEx/VirtualFreeExPROCESS_VM_WRITE:向進(jìn)程地址空間寫WriteProcessMemory
蘇曙光.軟件學(xué)院.華中科技大學(xué)24主窗口蘇曙光.軟件學(xué)院.華中科技大學(xué)25蘇曙光.軟件學(xué)院.華中科技大學(xué)26主窗口蘇曙光.軟件學(xué)院.華中科技大學(xué)27蘇曙光.軟件學(xué)院.華中科技大學(xué)28主窗口蘇曙光.軟件學(xué)院.華中科技大學(xué)29UserMonitor.dll蘇曙光.軟件學(xué)院.華中科技大學(xué)30蘇曙光.軟件學(xué)院.華中科技大學(xué)31主窗口查找感興趣的目標(biāo)進(jìn)程szTarget準(zhǔn)備加載Monit
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶工商大學(xué)派斯學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(奪冠)
- 2025年鐘山縣幼兒園教師招教考試備考題庫(kù)附答案解析
- 2025年鎮(zhèn)賚縣招教考試備考題庫(kù)附答案解析(必刷)
- 2025年陜西郵電職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(奪冠)
- 2025年黑龍江省牡丹江市單招職業(yè)傾向性考試題庫(kù)帶答案解析
- 2026年三亞航空旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)帶答案解析
- 2026年一級(jí)市政工程師考試案例分析題及答案解析
- 會(huì)所形象客服培訓(xùn)制度
- 加油站崗前培訓(xùn)制度
- 護(hù)理崗前培訓(xùn)請(qǐng)銷假制度
- 建筑室外亮化施工方案
- 遼寧省盤錦市名校2026屆物理九年級(jí)第一學(xué)期期末考試模擬試題含解析
- 2026屆河北唐山豐南區(qū)物理八年級(jí)第一學(xué)期期末復(fù)習(xí)檢測(cè)模擬試題含解析
- 醫(yī)療器械生產(chǎn)企業(yè)變更控制程序
- 倉(cāng)庫(kù)節(jié)日前安全培訓(xùn)計(jì)劃課件
- 關(guān)于個(gè)人述責(zé)述廉存在問(wèn)題及整改措施
- 2025通信安全員ABC證考試題庫(kù)及答案(1000題)
- 靜脈穿刺血管選擇課件
- 醫(yī)療器械- 純化水系統(tǒng)知識(shí)
- 裝修鋼架租賃合同范本
- 2025首都醫(yī)科大學(xué)附屬北京康復(fù)醫(yī)院招聘36人(第三批)筆試參考題庫(kù)附答案解析
評(píng)論
0/150
提交評(píng)論