如何使用UnhookMe分析惡意軟件中未受監(jiān)控的系統(tǒng)調(diào)用問題
關(guān)于UnhookMe
UnhookMe是一款通用的Windows API動(dòng)態(tài)解析工具,可以幫助廣大研究人員分析和處理惡意軟件中未受監(jiān)控的系統(tǒng)調(diào)用問題。
在這個(gè)侵入式反病毒產(chǎn)品和EDR產(chǎn)品盛行的年代,很多網(wǎng)絡(luò)攻擊者必須擁有強(qiáng)大的工具來(lái)繞過這些安全防御工具。而動(dòng)態(tài)導(dǎo)入解析器能夠在運(yùn)行中取消已用函數(shù)的鉤子,這也是增強(qiáng)攻擊者攻擊能力的又一方法。
而UnhookMe可以幫助廣大研究人員在編譯的可執(zhí)行文件的PE頭中保持可視性。
工具下載
廣大研究人員可以使用下列命令將該項(xiàng)目源碼克隆至本地:
- git clone https://github.com/mgeeky/UnhookMe.git
工具使用
我們總共需要在自己的解決方案中引入五個(gè)C++源文件/頭文件。不過,你的主程序文件僅需要引入兩個(gè)必要的頭文件即可,文件描述如下:
- resolver.h - 頭文件中包含了UnhookingImportResolver的大部分實(shí)現(xiàn);
- resolver.cpp - 包含了全局選項(xiàng)的源代碼;
- usings.h - 一個(gè)非常大的頭文件,包含了針對(duì)常見Windows API的using類型定義;
- PE.cpp - 自定義PE解析器源代碼文件;
- PE.h - 自定義PE解析器源頭文件;
必須的頭文件
你的程序僅需要下列兩個(gè)必要的頭文件:
- #include "usings.h"
- #include "resolver.h"
全局選項(xiàng)
下面給出的是解析器的全局配置選項(xiàng),我們可以根據(jù)自己的需要來(lái)進(jìn)行修改,這些參數(shù)全部定義在resolver.cpp文件中:
- globalQuietOption - 如果你不想獲取輸出,則設(shè)置為true;
- globalVerboseOption - 如果你想要獲取詳細(xì)的Verbose輸出,則設(shè)置為true;
- globalAntiSplicingOption - 解除函數(shù)鉤子;
- globalLogFilePath - 重定向輸出日志;
- bool globalQuietOption = false;
- bool globalVerboseOption = true;
- bool globalAntiSplicingOption = true;
- wchar_t globalLogFilePath[MAX_PATH] = L"";
工具使用樣例
項(xiàng)目地址
UnhookMe:【GitHub傳送門】