Dll注入技術之登錄檔注入

2021-06-20 09:32:33 字數 2130 閱讀 2908

**:

黑客反病毒論壇

dll注入技術之reg注入

dll注入技術指的是將乙個dll檔案強行載入到exe檔案中,並成為exe檔案中的一部分,這樣做的目的在於方便我們通過這個dll讀寫exe檔案記憶體資料,(例如 hook exe檔案中的api),或以被注入exe的身份去執行一些操作等等。

reg注入原理是利用在windows 系統中,當reg以下鍵值中存在有dll檔案路徑時,會跟隨exe檔案的啟動載入這個dll檔案路徑中的dll檔案。當如果遇到有多個dll檔案時,需要用逗號或者空格隔開多個dll檔案的路徑。

hkey_local_machine\software\microsoft\windows nt\currentversion\windows

我們可以利用這個特性來進行dll的注入,接下來需要解決的就是關於登錄檔操作的windows api了,如下列**所示:

regopenkeyex  

開啟登錄檔鍵值  

regqueryvalueex  

查詢鍵值  

regsetvalueex  

設定鍵值  

regclosekey  

關閉鍵值  

主要**如下:

//開啟鍵值

nreg = regopenkeyex(

hkey_local_machine,

m_szregpath,

0, key_all_access,

&hkey);

if(nreg != error_success)

//查詢鍵值

dword dwreadtype;

dword dwreadcount;

tchar szreadbuff[1000] = ;

nreg = regqueryvalueex(hkey,

null,

&dwreadtype,

(byte*)&szreadbuff,

&dwreadcount);

if(nreg != error_success)

//是否dll名稱已經在內容中

tstring strcmpbuff;

strcmpbuff = szreadbuff;

if (!strcmpbuff.find(injectfilepath))

//有字串就加入空格

if (0 != _tcscmp(szreadbuff,_t("")))

_tcscat_s(szreadbuff,injectfilepath);

//把dll路徑設定到登錄檔中

nreg = regsetvalueex(hkey,

0,reg_sz,

(const byte*)szreadbuff,

(_tcslen(szreadbuff)+1)*sizeof(tchar));

當我們完成了登錄檔的注入時,並不是希望所有程式都執行dll裡面的內容,這時我們就需要在dll中過濾視窗名稱,讓指定視窗名稱的exe檔案執行dll裡的執行緒。所需api如下表所示:

createthread

建立執行緒

sleep

睡眠

enumwindows

遍歷視窗

getwindowtext

得到視窗名稱

getcurrentprocessid

得到當前程序id

getwindowthreadprocessid

由hwnd獲得程序id

主要**如下:

bool callback lpenumfunc(hwnd hwnd, lparam lparam)

; //得到視窗名稱

getwindowtext(hwnd,str,sizeof(str));

//是否名稱是計算器

if(0 == _tcscmp(str,_t("計算器")))

}return true;

}dword threadproc(lpvoid lparam)

bool initinstance()

reg注入操作簡單易懂,甚至不用寫程式都可以完成注入操作,但是正是由於他的簡單性,每個exe都被注入,效率低,程式的擴充套件性差。

DLL注入 使用登錄檔進行DLL注入

實驗原理myhack2.dll原始碼 include windows.h include tchar.h define def cmd l c program files internet explorer iexplorer.exe define def addr l define def dst...

登錄檔防注入病毒

登錄檔是windows作業系統中的乙個核心資料庫,其中存放著各種引數,直接控制著windows的啟動 硬體驅動程式的裝載以及一些windows應用程式的執行,從而在整個系統中起著核心作用。這些作用包括了軟 硬體的相關配置和狀態資訊,比如登錄檔中儲存有應用程式和資源管理器外殼的初始條件 首選項和解除安...

注入Hook技術 DLL注入

winnt win2000 winxp中的遠執行緒技術之一 dll注入 什麼是遠執行緒?我們知道用createthread可以在當前程序裡建立乙個執行緒,遠執行緒與此類似,只不過是在其他程序中建立乙個執行緒,用api函式createremotethread。這個遠執行緒建立後就與建立它的程序無關了,...