使用UnhookMe分析惡意軟體中未受監控的系統呼叫問題

hjavn發表於2021-09-26

工具與資源中心

幫助開發者更加高效的工作,提供圍繞開發者全生命週期的工具與資源

developer.aliyun.com/tool/?spm=a1z...

簡介: 關於UnhookMe UnhookMe是一款通用的Windows API動態解析工具,可以幫助廣大研究人員分析和處理惡意軟體中未受監控的系統呼叫問題。 在這個侵入式反病毒產品和EDR產品盛行的年代,很多網路攻擊者必須擁有強大的工具來繞過這些安全防禦工具。而動態匯入解析器能夠在執行中取消已用函式的鉤子,這也是增強攻擊者攻擊能力的又一方法。 而UnhookMe可以幫助廣大研究人員在編譯的可執行檔案的PE頭中保持可視性。

工具下載

廣大研究人員可以使用下列命令將該專案原始碼克隆至本地:

git clone https://github.com/mgeeky/UnhookMe.git

工具使用

我們總共需要在自己的解決方案中引入五個C++原始檔/標頭檔案。不過,你的主程式檔案僅需要引入兩個必要的標頭檔案即可,檔案描述如下:

resolver.h - 標頭檔案中包含了UnhookingImportResolver的大部分實現;

resolver.cpp - 包含了全域性選項的原始碼;

usings.h - 一個非常大的標頭檔案,包含了針對常見Windows API的using型別定義;

PE.cpp - 自定義PE解析器原始碼檔案;

PE.h - 自定義PE解析器源標頭檔案;

必要的標頭檔案

你的程式僅需要下列兩個必要的標頭檔案:

#include "usings.h" #include "resolver.h"

全域性選項

下面給出的是解析器的全域性配置選項,我們可以根據自己的需要來進行修改,這些引數全部定義在resolver.cpp檔案中:

globalQuietOption - 如果你不想獲取輸出,則設定為true;

globalVerboseOption - 如果你想要獲取詳細的Verbose輸出,則設定為true;

globalAntiSplicingOption - 解除函式鉤子;

globalLogFilePath - 重定向輸出日誌;

bool globalQuietOption = false; 
bool globalVerboseOption = true; 
bool globalAntiSplicingOption = true; 
wchar_t globalLogFilePath[MAX_PATH] = L"";

原文連結:developer.aliyun.com/article/79219...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章