殺毒軟件常靜態掃描敏感 API 字符串(如 CreateRemoteThread)。通過 GetProcAddress 運行時解析函數地址,配合函數指針類型重定義與字符串拆分混淆,可有效繞過靜態特徵匹配。
CreateRemoteThreadxx);LoadLibrary + GetProcAddress 獲取真實入口;yyCreateRemoteThread)。// 1. 原型 (來自 WinBase.h)
WINBASEAPI HANDLE WINAPI CreateRemoteThread(
HANDLE hProcess,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
// 2. 重定義函數指針類型
typedef HANDLE (WINAPI *CreateRemoteThreadxx)(
HANDLE, LPSECURITY_ATTRIBUTES, SIZE_T,
LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD
);
// 3. 運行時解析
CreateRemoteThreadxx yyCreateRemoteThread =
(CreateRemoteThreadxx)GetProcAddress(
LoadLibrary("kernel32.dll"), "CreateRemoteThread"
);
// 4. 調用
HANDLE hThread = yyCreateRemoteThread(hProcess, attrs, stack, start, param, flags, &tid);
"CreateRemote" "Thread" 或運行時拼接,阻斷字符串掃描。CreateRemoteThreadA,Unicode 用 CreateRemoteThreadW,避免載入錯誤版本。GetProcAddress,減少內存駐留特徵。本技術旨在合法安全研究、紅隊授權演練、自我保護機制測試。未經授權繞過安全產品檢測屬違法行為。請嚴格遵守《網絡安全法》及相關法規,僅在合法授權範圍內使用。
免殺是攻防博弈的單點技術,**系統級防禦繞過需組合多層次技術**,且必須在法律框架內進行。