anti-reversing-techniques

anti-reversing-techniques

热门

理解软件分析过程中遇到的反逆向、混淆和保护技术。在分析恶意软件规避技术、为CTF挑战实现反调试保护、逆向加壳二进制文件或构建需要检测虚拟化环境的安全研究工具时,使用此技能。

3.8万Star
4102Fork
更新于 2026/7/22
SKILL.md
readonly只读
name
anti-reversing-techniques
description

理解软件分析过程中遇到的反逆向、混淆和保护技术。在分析恶意软件规避技术、为CTF挑战实现反调试保护、逆向加壳二进制文件或构建需要检测虚拟化环境的安全研究工具时,使用此技能。

仅限授权使用:本技能包含双重用途的安全技术。在进行任何绕过或分析之前:

  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或AV挂钩导致系统调用延迟增加时,时间检查会触发。在启动时校准阈值:测量受保护路径3次,并使用 mean + 3*stddev。对于ptrace检查,在退出前通过 /proc/<pid>/comm 验证TracerPid的comm名称——它可能是无关的监控工具,而非调试器。

绕过补丁导致崩溃而非继续执行

在NOP掉条件跳转之前,完整跟踪“检测到”分支。如果该分支初始化或释放了后续需要的堆状态,修补跳转会跳过该设置并破坏状态。相反,将比较操作数修补为预期的“干净”值,或在断点上使用x64dbg的“将条件设置为始终为假”,而不是修改字节。


相关技能

  • binary-analysis-patterns — ELF/PE/Mach-O的静态和动态分析工作流
  • memory-forensics — 进程内存获取、工件提取和实时分析
  • protocol-reverse-engineering — 解码自定义二进制协议和加密网络流量