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, 内核系统调用, 反调试, 安全报告生成, 汇编, 逆向工程防护