日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IAT-Hook 劫持进程Api调用

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IAT-Hook 劫持进程Api调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?ω?
劫持API的各種Hook方式的時候,IAT-Hook應該算是最簡單的一個。比IAT-Hook更難的是R3的5字節Hook,然后是熱補丁Hook,SSDT-Hook…
5字節Hook在前兩篇進程隱藏中用過了,7字節主要是對API的要求比較高,這篇就更新IAT-Hook的實現代碼,后續再更新復制原始API部分代碼的熱補丁Hook和SSDT-Hook

T_T
本來昨晚打算花個40分鐘左右搞定的,結果出了各種奇怪的問題,調試到2點搞定!結果宿舍還有1/3的人還沒睡…當代大學生日常???

Tips & Problems
1.原理很簡單啊,把DLL注入到想Hook的進程(進程隱藏有注入器代碼),然后DLL在進程空間找到程序進程句柄,句柄指向的就是MZ頭的指針,然后就可以通過各種結構體操作找到輸入表,找到IID結構體,找到需要修改的IAT,然后把它改掉~~OVER!!,再具體一些,IAT-Hook的原理就是程序call func的實現是call [func所在的IAT],對這個iat取地址值然后call,這個地址值是PE Loader在PE裝載的時候動態獲取的。
2.遇到的第一個問題是編譯器的優化問題,為了偷懶我沒用DLL注入工具注入DLL而是編寫了一個程序直接LoadLibrary,然后再彈窗,DLL負責劫持MessageBoxW函數,但是怎么都劫持不了…后來一步步調試發現編譯器把調用MessageBoxW函數寫成 call esi,然后esi=[MessageBoxW的iat地址],但是Loadlibrary在esi=[MessageBoxW的iat地址]之后,也就是說不管怎么修改call esi最終都會調用原本的MessageBoxW…
3.字符串比較函數strcmp(char *,char *)結果只比了一個字符…我記得這個函數應該是不到’\0’不返回的啊…花了5s,手擼一個字符串比較函數
4.Hook原函數到新函數的時候一定要注意處理好堆棧平衡問題
5.因為基本MZ頭結構PE頭結構中的關鍵值都是RVA,直接加上進程句柄就得到VA了,真的超級方便
6.因為DLL沒有需要卸載的需要,一般注入的DLL被卸載進程也退出了,所以沒啥必要寫UnHook函數

下面是代碼

IAT.h

#include "windows.h"HMODULE Current_Handle; //進程句柄 PBYTE pfile; //指向MZ PIMAGE_DOS_HEADER Dos_Header; //Dos頭 PIMAGE_NT_HEADERS Nt_Header; //NT頭 DWORD IATSection_Base; //IAT所在段基址 DWORD IATSection_Size; //IAT所在段大小BOOL str_cmp(char *a,char *b);void PeInit();BOOL IatHook(LPCSTR DllName,LPCSTR ProcName);int WINAPI NewMessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);

IAT.cpp

#include "IAT.h"BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {switch (fdwReason) {case DLL_PROCESS_ATTACH:Current_Handle = NULL;pfile = NULL;Dos_Header = NULL;Nt_Header = NULL;IATSection_Base = 0;IATSection_Size = 0;PeInit();IatHook("USER32.dll","MessageBoxW");break;case DLL_PROCESS_DETACH:break;}return TRUE; }BOOL str_cmp(char *a,char *b){while(*a==*b && *a!='\0' && *b!='\0'){a++;b++;}if(*a=='\0' && *b=='\0') return true;return false; }int WINAPI NewMessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType) {return MessageBoxW(NULL,L"123",L"123", NULL); }BOOL IatHook(LPCSTR DllName,LPCSTR ProcName) {DWORD oldprotect = 0;FARPROC ori_func = GetProcAddress(GetModuleHandleA(DllName), ProcName);PIMAGE_THUNK_DATA pthunk=NULL;PIMAGE_IMPORT_DESCRIPTOR Current_IID = (PIMAGE_IMPORT_DESCRIPTOR)(pfile + IATSection_Base);while (Current_IID) {if (str_cmp((char *)DllName,(char *)(pfile + Current_IID->Name))) {pthunk = (PIMAGE_THUNK_DATA)(pfile+Current_IID->FirstThunk);while (pthunk->u1.Function) {if (pthunk->u1.Function == (DWORD)ori_func) {VirtualProtect((LPVOID)&pthunk->u1.Function, 4, PAGE_EXECUTE_READWRITE, &oldprotect);pthunk->u1.Function = (DWORD)NewMessageBoxW;VirtualProtect((LPVOID)&pthunk->u1.Function, 4, oldprotect, &oldprotect);break;}pthunk++;}return true;}Current_IID++;}return false; }void PeInit() {Current_Handle = GetModuleHandle(NULL); pfile = (PBYTE)Current_Handle;Dos_Header = (PIMAGE_DOS_HEADER)pfile;if (Dos_Header->e_magic != IMAGE_DOS_SIGNATURE){OutputDebugString(L"Is Not PE");return;}Nt_Header = (PIMAGE_NT_HEADERS)(pfile + Dos_Header->e_lfanew);if (Nt_Header->Signature != IMAGE_NT_SIGNATURE) {OutputDebugString(L"Is Not PE");return;}IMAGE_DATA_DIRECTORY IAT_Section = (IMAGE_DATA_DIRECTORY)(Nt_Header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]);IATSection_Base = IAT_Section.VirtualAddress;IATSection_Size = IAT_Section.Size; }

總結

以上是生活随笔為你收集整理的IAT-Hook 劫持进程Api调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕免费高清 | 91美女视频 | 亚洲欧美国产精品久久久久久久 | 日本免费一区二区三区 | 国产中文字幕在线观看 | 快色网站 | 潘金莲一级淫片a.aaaaa播放 | 秋霞影院午夜 | av亚洲在线 | 色婷婷综合视频 | 中国浓毛少妇毛茸茸 | 少妇三级 | 欧美jizz19性欧美 | 青青草成人在线 | 亚洲精品无吗 | 99热精品在线播放 | 97视频久久 | 欧美熟妇激情一区二区三区 | 农村少妇| 无码任你躁久久久久久老妇 | 牲欲强的熟妇农村老妇女视频 | 蜜臀久久99精品久久久久久宅男 | melody在线高清免费观看 | 国产成人精品一区二区无码呦 | 一级片黄色片 | 放荡的美妇在线播放 | 日日操视频 | 精品777| 免费一级淫片aaa片毛片a级 | 国产黄色小视频在线观看 | 日韩美女免费线视频 | 欧美午夜精品久久久久久人妖 | 亚洲资源在线观看 | 69久久夜色精品国产69 | 麻豆蜜桃91| 成人免费看片载 | 国产又粗又猛视频免费 | 农村偷人一级超爽毛片 | 女人扒开腿免费视频app | 亚洲av无一区二区三区怡春院 | 中文字幕亚洲激情 | 国产aⅴ无码片毛片一级一区2 | 日本熟女一区二区 | 干日本少妇 | 欧美色炮 | 免费观看美女裸体网站 | av电影在线观看 | 美国黄色网址 | av国产网站 | 亚洲中文字幕无码一区 | 女人张开腿让男人插 | 日韩欧美在线视频免费观看 | 欧美美女啪啪 | 操老女人视频 | 五月天青青草 | 黄色大片网站在线观看 | 欧美日韩视频 | 欧美成人三级 | 久久视频网 | 欧美成人精品在线 | 最近中文字幕在线mv视频在线 | 91操操操| 久久久精品人妻一区二区三区四 | 色婷久久| 欧美精品乱码久久久久久按摩 | 精品国产乱码久久 | 嫩草午夜少妇在线影视 | 日韩高清一级片 | 99色国产 | 国产精品秘入口18禁麻豆免会员 | 99精品国产成人一区二区 | 三级黄色小视频 | 人妻在客厅被c的呻吟 | 久久久xxx | 岛国色图 | 日韩一区在线视频 | 黄色三级小视频 | 最新一区二区三区 | 奇米久久久 | 色综合av | 91在线看黄 | 狠狠干在线视频 | 日韩在线电影一区二区 | 午夜黄色在线 | 亚洲第一成人网站 | 国产夜夜夜 | 久久久久久久久久国产精品 | 国内视频自拍 | 影音先锋中文字幕在线 | 亚洲乱色熟女一区二区 | 日本免费网址 | 成人黄色免费视频 | 亚洲人成电影在线播放 | 在线观看入口 | 中国老头性行为xxxx | 男人在线视频 | 91麻豆蜜桃一区二区三区 | 岛国片在线免费观看 | 国产色图片 |