boutaba-motezeballah/ASM-Anti-Debugging-Shield

GitHub: boutaba-motezeballah/ASM-Anti-Debugging-Shield

该项目是一个用纯 x86_64 汇编实现的 Linux 反调试防护层,通过直接内核系统调用检测并阻断调试器的动态分析。

Stars: 0 | Forks: 0

# ASM-Anti-Debugging-Shield # Boutaba-ASM-Anti-Debugging-Shield v1.0 ## 概述 **Boutaba-ASM-Anti-Debugging-Shield** 是一个高性能、底层的安全子系统,完全使用 **纯汇编 (x86_64 ASM)** 为 Linux 环境精心打造。该实用程序原生运行在硬件和内核边界,注入了一个主动的反调试防御层,旨在检测、拦截和缓解未经授权的反汇编程序和调试器(例如 GDB、Radare2)的动态分析尝试。 其执行模型完全绕过了高级运行时环境,利用直接的内核软件中断(**Syscalls**)来维持零知识足迹,并确保最大程度的运行时隐蔽性。 ## 技术架构与核心执行流程 核心防御逻辑利用了操作系统进程跟踪子系统的架构不变性。通过与 CPU 寄存器和内核接口直接交互,该实用程序建立了一个操作防线,一旦检测到插桩环境,便会强制立即终止进程。 ``` graph TD A[Process Initialization] --> B[Syscall 101: sys_ptrace Verification] B --> C{Evaluate RAX Register} C -->|RAX >= 0: Status SECURE| D[Execute Standard Payload] C -->|RAX < 0: Debugger Detected| E[Trigger Algorithmic Anti-Analysis] E --> F[Syscall 60: sys_exit Code 1] F --> G[Immediate Memory & Process Purge] style A fill:#1f1f1f,stroke:#333,stroke-width:2px,color:#fff style B fill:#1f1f1f,stroke:#ff5555,stroke-width:2px,color:#fff style C fill:#0052cc,stroke:#333,stroke-width:2px,color:#fff style D fill:#00875a,stroke:#333,stroke-width:2px,color:#fff style E fill:#de350b,stroke:#333,stroke-width:2px,color:#fff style F fill:#de350b,stroke:#333,stroke-width:2px,color:#fff style G fill:#1f1f1f,stroke:#333,stroke-width:2px,color:#fff ``` ### 动态跟踪预防 (ptrace 颠覆) 在基于 Linux 的内核空间中,一个进程在任何给定时间只能附加到单个跟踪父进程上。该防护盾使用 `PTRACE_TRACEME` 请求选项触发内部的 `sys_ptrace` 执行: - **正常执行:** 内核安全地注册该进程,并向 `RAX` 累加器寄存器返回整数状态码 `0`。 - **插桩执行:** 如果分析师或自动化沙箱在执行前尝试附加调试器,内核将拒绝冗余的跟踪请求,并返回负的错误偏移量(`EPERM`)。系统立即使用微架构分支指令(`cmp` 和 `jl`)评估此条件,以将执行流重定向到防御例程。 ## 实现细节与编译标准 ### 架构上下文 - **目标微架构:** x86_64 AMD64 ISA。 - **执行 Ring:** Ring 3(与 Ring 0 内核包装器交互的用户空间接口)。 - **二进制接口:** Linux 系统调用约定(Syscall ABI)。 ### 系统调用寄存器映射 防御层直接填充硬件寄存器,消除了对标准共享对象(`libc.so`)或运行时包装器的依赖: | 寄存器 | 用途 | 分配(活动状态) | | :--- | :--- | :--- | | `RAX` | Syscall 标识符 | `101` (`sys_ptrace`) / `60` (`sys_exit`) | | `RDI` | 第一个参数 | `0` (`PTRACE_TRACEME`) / 错误返回向量 | | `RSI` | 第二个参数 | `0` (Null PID 引用) | | `RDX` | 第三个参数 | `0` (内存地址清零) | ## 部署与验证 要将源代码编译为优化的、无依赖的静态二进制文件,请在任何兼容的 Linux 终端上执行以下编译器命令: ``` # 1. 将原始 ASM 文件汇编为 ELF64 object nasm -f elf64 shield.asm -o shield.o # 2. 将 object 文件链接为没有 libc wrapping 的独立静态二进制文件 ld shield.o -o boutaba_shield # 3. 从最终 artifact 中剥离调试符号以确保操作安全性 strip --strip-all boutaba_shield ``` ## 工程规范 - **核心技术:** 纯汇编 (x86_64 ASM 100.0%) - **开发标准:** 零知识操作完整性,算法级最优规避。 - **目标 OS 部署:** Arch Linux 架构与最小化内核部署。 *由 **Boutaba Motezeballah** — 系统架构师与逆向工程师 — 开发及维护。*
标签:DOM解析, x86_64, 内核系统调用, 反调试, 安全报告生成, 汇编, 逆向工程防护