遠端注入
1.向目標程序中申請記憶體
2.向目標記憶體中寫入shellcode(沒有特徵碼,但編碼麻煩)
3.建立遠端執行緒執行shellcode
–>
dll:獲取dll的路徑,然後載入dll
dll的載入dll匯出函式1.靜態呼叫,通過在我們程式中新增標頭檔案,以lib檔案來完成呼叫
2.動態呼叫,乙個dll即可
法1:新增def檔案
exports
ceshi
()
法2:
extern
"c"}
這樣匯出的dll有名稱粉碎
呼叫約定
特點傳參方式
平棧例子
_stdcall
標準棧傳參
函式內部
大部分windowsapi
_cdecl
c棧傳參
函式外部
wsprintf
_fastcall
快速暫存器傳承
_thiscall
類的thiscall呼叫約定
使用ecx傳遞this指標
載入dll
1.將目標dll載入到我們的程序
char
*p=r"(\t\r\n)"
//去除轉義
hmodule hdll=
loadlibrarya
(r"(路徑)"
);
2.計算dll中匯出函式的位址
pfn_foo lpfoo=
(pfn_foo)
getprocadress
(hdll,"ceshi')
;
3.執行函式
lpfoo
()
實現遠端注入,建立遠端執行緒,載入loadlibrary,loadlibrary函式就在kernel32,大家的kernel32是一樣的,所以這個loadlibrary在kernel32裡的位置差是固定的,利用固定位位置差,實現載入loadlibrary。 windows下 遠端DLL注入
核心函式 createtoolhelp32snapshot createtoolhelp32snapshot函式為指定的程序 程序使用的堆 heap 模組 module 執行緒 thread 建立乙個快照 snapshot handle winapi createtoolhelp32snapshot...
windows平台實現dll遠端注入的簡單例子
最新看了下關於dll遠端注入的東西,這個技術原來是用來隱藏木馬很好的方式,現在貌似很難通過了,一般的殺軟都能檢測到相關的行為,乙個dll的 隨便加了乙個messagebox函式,僅用來測試注入時候成功的,注入成功會彈出這個對話方塊 include stdafx.h include bool apie...
注入系列 遠端執行緒注入
1.使用程序pid開啟程序,獲得控制代碼 2.使用程序控制代碼申請記憶體空間 3.把dll路徑寫入記憶體 4.建立遠端執行緒,呼叫loadlibrary 5.釋放收尾工作或者解除安裝dll 實現 bool cinjectdlg zwcreatethreadexinjectdll dword dwpr...