一、新建乙個用於攔截的mfc的dll,**如下:
//不同instance共享的該變數hinst
#pragma data_seg("shared")
static hinstance hinst = null; //本dll的例項控制代碼 (injectdll.dll)
#pragma data_seg()
#pragma comment(linker, "/section:shared,rws")
handle hprocess = null; //所處程序的控制代碼
bool bhook = false; //是否hook了函式
bool inject_status = false; //是否對api進行了hook
byte oldcode[5]; //老的系統api入口**
byte newcode[5]; //要跳轉的api** (jmp ***x)
中的messagebox函式定義
typedef int (winapi *mymsg)(hwnd hwnd, lpctstr lptext, lpctstr lpcaption, uint utype);
mymsg m_msg; 中的messagebox函式
farproc pf_msg; //指向messagebox函式的遠指標
void hookon(); //開啟鉤子,切換成自己的函式入口位址
void hookoff(); //關閉鉤子,切換成系統的函式入口位址
void getentryaddr();//獲取新舊函式的入口位址
//我們定義的新的mymessagebox()函式
int winapi mymessagebox(hwnd hwnd, lpctstr lptext, lpctstr lpcaption, uint utype);
void getentryaddr()
newcode[0] = 0xe9;//第乙個位元組0xe9相當於jmp指令
//獲取mymessagebox()的相對位址
_asm
}}void hookon()
//將所屬程序中messagebox()的入口**恢復
void hookoff()
int winapi mymessagebox(hwnd hwnd, lpctstr lptext, lpctstr lpcaption, uint utype)
二、新建乙個exe程式,呼叫上面的dll,對本程式進行hook,攔截messagebox
hmodule hm = ::loadlibrarya("d:\\injectdll.dll");
typedef void(*funchookon)();
funchookon hookon = (funchookon)getprocaddress(hm, "hookon");
hookon();
三、解除安裝hook這種攔截行為
hmodule hm = ::loadlibrarya("d:\\injectdll.dll");
typedef void(*funchookoff)();
funchookoff hookoff = (funchookoff)getprocaddress(hm, "hookoff");
hookoff();
四、結合注入的部分,簡單陳述下,如何注入後攔截
把以上dll程式寫在前兩章的待注入的dll中,通過傳送鍵盤訊息來開啟或者關閉hook,還是比較簡單的。
新or注入教程
記得一年前火狐有一位朋友問,如果乙個站過濾了and和 的話,改怎麼注入啊?當時我隨口說了句 or注入 後來又一次看貼的時候,看到他問我該怎麼利用呢?我就寫了幾個簡單的語句給他,叫他自己變換,他很感激我,還說網上沒有這種方法。我到網上查了查,還真沒有or注入專題呢 or 1 1除外 呵呵,所以,一年後...
SQLmap注入教程
一次sqlmap注入點並且dump出賬號密碼全程 判斷注入點 sqlmap.py u 存在注入url 爆出所有資料庫名字 sqlmap.py u 存在注入url dbs 檢視當前使用賬號 sqlmap.py u 存在注入url current user 1 檢視當前資料庫 sqlmap.py u 存...
程式注入教程集合
遠端執行緒注入dll 遠執行緒注入原理是利用windows 系統中createremotethread 這個api,其中第4個引數是準備執行的執行緒,我們可以將loadlibrary 填入其中,這樣就可以執行遠端程序中的loadlibrary 函式,進而將我們自己準備的dll載入到遠端程序空間中執行...