anti-reversing-techniques

anti-reversing-techniques

熱門

了解軟體分析中遇到的防逆向、混淆與保護技術。在分析惡意軟體規避技術、為 CTF 挑戰實作反除錯保護、逆向加殼二進位檔,或建構需要偵測虛擬化環境的安全研究工具時,使用此技能。

3.8萬星標
4102分支
更新於 2026/7/22
SKILL.md
readonlyread-only
name
anti-reversing-techniques
description

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

僅限授權使用:此技能包含雙用途安全技術。在進行任何繞過或分析之前:

  1. 驗證授權:確認您已獲得軟體所有者的明確書面許可,或是在合法的安全情境下操作(CTF、授權滲透測試、惡意軟體分析、安全研究)
  2. 記錄範圍:確保您的活動在授權範圍內
  3. 法律遵循:了解未經授權繞過軟體保護可能違反法律(CFAA、DMCA 反規避條款等)

合法使用案例:惡意軟體分析、授權滲透測試、CTF 競賽、學術安全研究、分析您擁有或擁有權利的軟體

防逆向技術

了解在授權軟體分析、安全研究和惡意軟體分析中遇到的保護機制。這些知識有助於分析師繞過保護,完成合法的分析任務。

進階技術請參閱 references/advanced-techniques.md


輸入 / 輸出

您提供的內容:

  • 二進位檔路徑或樣本:正在分析的可執行檔、DLL 或韌體映像
  • 平台:Windows x86/x64、Linux、macOS、ARM — 影響適用的檢查
  • 目標:動態分析繞過、識別保護類型、建構偵測程式碼、為 CTF 實作

此技能產出的內容:

  • 保護識別:命名技術(例如 RDTSC 時間檢查、PEB BeingDebugged)及其在二進位檔中的位置
  • 繞過策略:特定的修補位址、掛鉤點或工具指令,以消除每個檢查
  • 分析報告:結構化發現,列出每個保護層、嚴重性及建議的繞過方式
  • 程式碼產出:Python/IDAPython 腳本、GDB 指令序列或 C 語言存根,用於繞過或實作檢查

詳細模式與實例

詳細模式文件位於 references/details.md。當上述導航層級不足時,請閱讀該檔案。

疑難排解

偵測技術在 x86 上有效,但在 ARM 上無效

RDTSC 和 CPUID 僅限 x86。在 ARM 上,使用 MRS x0, PMCCNTR_EL0(需要核心 PMU 存取)或 clock_gettime(CLOCK_MONOTONIC)。PEB/TEB 在 ARM 上不存在 — 請改用 /proc/self/status(Linux)或 task_info(macOS)。使用平台專用 API 重建偵測邏輯。

合法除錯器或分析工具造成誤判

當 Process Monitor 或防毒軟體掛鉤導致系統呼叫延遲增加時,時間檢查會觸發。在啟動時校準閾值:測量受保護路徑 3 次,並使用 mean + 3*stddev。對於 ptrace 檢查,在退出前透過 /proc/<pid>/comm 驗證 TracerPid 的 comm 名稱 — 它可能是無關的監控工具,而非除錯器。

繞過修補導致崩潰而非繼續執行

在將條件跳轉 NOP 掉之前,完整追蹤「已偵測」分支。如果該分支初始化或釋放了後續需要的堆積狀態,修補跳轉會跳過該設定並破壞狀態。請改為將比較運算元修補為預期的「乾淨」值,或使用 x64dbg 的「將條件設為永遠為假」於中斷點,而非修改位元組。


相關技能

  • binary-analysis-patterns — ELF/PE/Mach-O 的靜態與動態分析工作流程
  • memory-forensics — 程序記憶體擷取、工件提取與即時分析
  • protocol-reverse-engineering — 解碼自訂二進位協定與加密網路流量