DLL注入程序的一般步驟:
(1)取得宿主進程(即要注入木馬的進程)的進程ID dwRemoteProcessId;
(2)取得DLL的完全路徑,并將其轉(zhuǎn)換為寬字符模式pszLibFileName;
(3)利用Windows API OpenProcess打開宿主進程,應(yīng)該開啟下列選項:
a.PROCESS_CREATE_THREAD:允許在宿主進程中創(chuàng)建線程;b.PROCESS_VM_OPERATION:允許對宿主進程中進行VM操作;
c.PROCESS_VM_WRITE:允許對宿主進程進行VM寫。
(4)利用Windows API VirtualAllocEx函數(shù)在遠程線程的VM中分配DLL完整路徑寬字符所需的存儲空間,并利用Windows API WriteProcessMemory函數(shù)將完整路徑寫入該存儲空間;(5)利用Windows API GetProcAddress取得Kernel32模塊中LoadLibraryW函數(shù)的地址,這個函數(shù)將作為隨后將啟動的遠程線程的入口函數(shù);
(6)利用Windows API CreateRemoteThread啟動遠程線程,將LoadLibraryW的地址作為遠程線程的入口函數(shù)地址,將宿主進程里被分配空間中存儲的完整DLL路徑作為線程入口函數(shù)的參數(shù)以另其啟動指定的DLL;(7)清理現(xiàn)場。
posted on 2009-03-13 19:56
幽幽 閱讀(435)
評論(0) 編輯 收藏 引用 所屬分類:
Windows