
SystemInformer DLL注入完整溯源指南從遠程線程到進程反射的三代實現【免費下載鏈接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars Solutions, Inc. https://windows-internals.com項目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer升級 SystemInformer 后老版本給進程打補丁、注入 DLL的操作入口消失了有人甚至懷疑功能被砍掉。先把結論說清楚注入相關能力沒有被刪除而是整體換代——從往目標進程里塞遠程線程逐步遷移到內核驅動的進程反射方案。功能速覽30秒定位功能名當前實現位置依賴組件操作入口進程反射式內存讀取替代注入線程SystemInformer/heapinfo.c 中PhpEnumerateProcessHeaps驅動克隆進程 用戶態服務右鍵進程 → 堆對話框遠程線程創建已廢棄注釋保留同文件 1204~1252 行整段注釋CreateRemoteThread/RtlCreateUserThread無界面入口內核 APC 投遞KSystemInformer/ksidll.c 的KsiInsertQueueApcKSI 驅動內核內部調用用戶態→內核消息通道phlib/kph.c 的KphCommsSendMessagekphlib/ 消息庫各功能對話框當前架構拆解四層各司其職按底層→封裝層→上層接口看現在的鏈路是內核驅動層KSystemInformer/ 里的 KSI 驅動把內核系統調用封裝成導出函數。KSystemInformer/ksidll.def 全文只有 18 行但導出了 APC 入隊、工作項、DPC 等原語這是所有跨進程操作的地基。消息定義層kphlib/kphmsg.c 負責內核與用戶態之間的消息結構打包保證驅動與 UI 兩邊字段對齊。通信封裝層phlib/kph.c 把幾百個操作統一收斂到KphCommsSendMessage上層代碼不再關心端口細節。UI 層SystemInformer/ 各對話框如堆詳情只發一條消息等應答后填表。演進時間線三代方案如何一路遷移階段一經典 CreateRemoteThread最早的做法是在目標進程里開一條遠程線程讓它去調加載器。SystemInformer/heapinfo.c 第 1204 行往下有一整段注釋代碼if (!(threadHandle CreateRemoteThread( processHandle, NULL, 0, PhGetModuleProcAddress(Lntdll.dll, RtlDestroyHeap), // …省略…這段被整體注釋保留是第一代注入路線的化石。遠程線程特征明顯安全軟件一抓一個準最終退役。階段二內核 APC 化第二代把動作下沉到驅動。KSystemInformer/ksidll.def 導出KsiInsertQueueApc實現在 KSystemInformer/ksidll.c 第 191 行內部直接調內核的KeInsertQueueApc。APC異步過程調用是把代碼投遞到目標線程隊列、不新建線程的技術檢測特征比遠程線程小一個量級。驅動同時注冊了線程創建通知KSystemInformer/informer_object.c 第 188 行的KphMsgHandlePreCreateThread任何新線程出現都逃不過審計。階段三進程反射當前默認第三代干脆不再進目標進程。SystemInformer/heapinfo.c 第 441 行注釋寫得很直白RtlQueryProcessDebugInformation會往進程里注入線程偶發死鎖所以改為反射。流程是if (PhGetIntegerSetting(SETTING_ENABLE_HEAP_REFLECTION)) status PhCreateProcessReflection( reflectionInfo, processHandle); // 之后所有查詢指向克隆進程驅動克隆出目標進程查詢在克隆體上進行查完銷毀原進程零侵入。這是現在默認路徑。實戰驗證一鍵復現反射式讀取打開主程序在進程列表右鍵目標進程選堆——對應heapinfo.c的對話框入口勾選使用進程反射——對應SETTING_ENABLE_HEAP_REFLECTION判斷刷新列表——PhpEnumerateProcessHeaps先PhOpenProcess拿PROCESS_CREATE_THREAD | PROCESS_DUP_HANDLE權限再調PhCreateProcessReflection克隆數據回填到列表——克隆體的堆信息經用戶態服務序列化后返回 UI 填入驗證零侵入——克隆進程創建瞬間驅動側的KphMsgHandlePreCreateThread會把它登記在冊。新舊方案對比維度階段一遠程線程階段二內核 APC階段三進程反射對目標進程侵入高注入新線程中投遞 APC無操作發生在克隆體檢測特征面大模式成熟小基本為零性能快中克隆有開銷維護成本單文件注釋代碼驅動 通信層三處聯動分層清晰新手門檻需懂LoadLibrary細節需懂 APC 語義UI 上只是一個勾選項延伸閱讀通信主鏈路phlib/kph.c驅動導出清單KSystemInformer/ksidll.def線程通知審計KSystemInformer/informer_object.c構建說明HACKING.md接下來你可以先讀 phlib/kph.c挑一個KphCommsSendMessage調用追完打包→內核→應答全鏈路再打開 KSystemInformer/informer_object.c 看KphMsgHandlePreCreateThread是怎么掛上內核通知的最后按上文步驟跑一遍堆詳情親眼看克隆體出現又消失的全過程。【免費下載鏈接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars Solutions, Inc. https://windows-internals.com項目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考