免杀初探(三)
字数 1559 2025-08-09 15:23:08
免杀技术初探:汇编基础与实战绕过
一、汇编语言基础
1. x86汇编体系结构
汇编语言作为低级编程语言,直接与计算机硬件交互,特别是CPU。x86架构定义了多种寄存器:
通用寄存器
- EAX:算术运算,存储返回值
- EBX:存储内存地址
- ECX:循环操作和比较的计数器
- EDX:算术除法和乘法运算,I/O操作地址
索引和指针寄存器
- ESI:源索引,数据传输源
- EDI:目标索引,数据传输目标
- ESP:指向堆栈顶部
- EBP:指向堆栈底部
- EIP:指向下一条要执行的指令
2. 内存类型
堆栈(Stack)
- 后进先出(LIFO)原则
- 存储变量和函数参数
- 由ESP和EBP寄存器管理
堆(Heap)
- 动态分配内存
- 可随时分配和释放
- 用于程序运行时执行
3. CPU模式
- 实模式:16位寄存器(AX, BX, DX)
- 保护模式:32位寄存器(EAX, EBX, EDX)
- 长模式:64位寄存器(RAX, RBX, RDX)
二、关键汇编指令
- MOV:值复制
MOV eax,1 - ADD:值相加
ADD eax,1 - SUB:值相减
SUB eax,1 - CMP:值比较
CMP eax,2 - XOR:逻辑异或
XOR EAX,EAX(寄存器清零) - PUSH:压栈
PUSH EAX - POP:出栈
POP eax - RET:函数返回
- JMP:无条件跳转
JMP EAX - JE/JZ:等于/为零时跳转
- JNE/JNZ:不等于/非零时跳转
三、免杀技术实战
1. 二进制文件修改技术
调试项目技术
- 使用x32dbg等调试工具修改二进制文件
- 示例:修改
sub esp,18为sub esp,17 - 修补文件(Ctrl+P → Patch File)
- 效果:可减少防病毒引擎检测数量
时间戳修改
- 使用工具如BulkFileChanger修改文件创建时间
- 原理:破坏防病毒软件的静态签名检测
2. XOR对称加密实现
IDEAL
MODEL SMALL
STACK 100h
DATASEG
data db 101B
key db 110B
CODESEG
encrypt:
xor dl, key
mov bl, dl
ret
decrypt:
xor bl, key
mov dl, bl
ret
start:
mov ax, @data
mov ds, ax
mov bl, data
mov dl, bl
call encrypt
call decrypt
exit:
mov ah, 4ch
int 21h
END start
执行流程:
- 初始化数据和密钥
- 调用encrypt:用密钥XOR加密数据
- 调用decrypt:用相同密钥XOR解密数据
- 程序退出
3. 垃圾代码技术
实现方法:
- 添加不执行的条件跳转
- 插入无关变量名和空函数
- 添加影响硬盘驱动器的操作
- 加载不存在的DLL
- 创建合法但无用的注册表值
示例对比:
- 原始代码:直接建立C2连接
- 混淆后:添加多个空函数和无效条件判断
四、开发环境配置
1. NASM汇编器
- 下载:https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-installer-x64.exe
- 默认安装后配置环境变量
2. GCC编译器
- 下载:http://mingw-w64.org/doku.php/download
- 默认安装后配置环境变量
3. Turbo汇编器(TASM)
- 下载:https://sourceforge.net/projects/guitasm8086/
- 使用F9快捷键运行代码
五、简单汇编程序示例
global _main
extern _printf
section .text
_main:
push string
call _printf
add esp, 4
ret
string:
db 'Hello World!', 10, 0
编译命令:
nasm -fwin32 HelloWorld.asm
gcc HelloWorld.obj -o HelloWorld.exe
代码分析:
- 声明主函数和外部printf函数
- 定义text段包含指令
- _main子例程:
- 推送字符串到栈
- 调用printf
- 清理栈(add esp,4)
- 返回(ret)
- string段定义消息内容
六、总结与关键点
- 汇编基础:必须掌握寄存器用途和关键指令
- 免杀核心:修改而不破坏文件功能
- XOR加密:简单有效的对称加密方法
- 混淆技术:垃圾代码增加分析难度
- 环境工具:NASM、GCC、TASM、x32dbg等
- 关键思路:通过微小改动绕过特征检测
核心原则:免杀的关键在于思路要灵活多变,结合多种技术实现有效规避。