在 Debian 上避免被反汇编的可行做法
一 基础防护 删除符号与调试信息
二 运行时反调试 让 GDB 等工具难以附着
#include <stdio.h>
#include <unistd.h>
#include <sys/ptrace.h>
int main() {
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL) < 0) {
printf("Anti-debug: ptrace failed, likely under debugger.\n");
return -1;
}
printf("Hello, world.\n");
return 0;
}
三 静态反汇编对抗 让线性扫描“看错”
.global _start
_start:
jmp label+1 # 跳过下一字节
label:
.byte 0xe9 # 伪装成指令操作码,实际被跳过
mov $1, %eax
mov $2, %ebx
add %eax, %ebx
四 加壳与代码虚拟化 提升分析与动态调试门槛
五 合规与风险提示