免杀技术
此條目需要补充更多来源。 (2020年8月18日) |
免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高,一般人不会或没能力接触这技术的深层内容。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。[1]
分类
技术概览
加壳脱壳与加密解密
- 參見加殼壓縮,在免杀技术里所谓的壳与伪装壳其实就是压缩与外层数据伪装,其实是利用特殊的算法,对可执行文件与动态库裡的资源进行压缩与对文件的描述、版本号、创建日期、修改软件、系统执行需求等外层数据进行伪装。
- 脱壳就是把已压缩与伪装的文件完全或近似还原到未压缩与伪装的状态。最常用的加壳软件就是WinRAR。
- 加密是将明文信息隐匿起来,使之在缺少特殊信息时全部或部分数据不可读,令杀毒软件无从下手。
- 而解密就是令在宿主电脑中的病毒得到密钥,从而突然发作。
加花指令与程序入口点修改
- 加花指令就是在程序开头加入一段计算用的汇编指令和一些入口点内存地址的乱跳转,或加上其他常用程序特有的入口指令来迷惑杀毒软件。因为计算与跳转的最后结果是没有实质的意义的,所以这么做并不影响程序的正常运行。但能使一些杀毒软件无法正确识别木马程序,从而达到免杀的效果。
- 程序入口点修改就是改变入口点,通常用到的方法是在入口点的地址加1或把入口点地址拆开,也有加花指令之后把原入口点修改到花指令的入口点上令电脑先处理那段没意义的指令,再在花指令后再加跳转代码,跳转到程序执行数据的入口点上,令程序正常运行。
例: (汇编语言)
mov ebp,esp
push ebp ;把基址指针寄存器压入堆栈
pop ebp ;把基址指针寄存器弹出堆栈
push eax ;把数据寄存器压入堆栈
pop eax ;把数据寄存器弹出堆栈
nop ;不执行
add esp,1 ;指针寄存器加1
sub esp,1 ;指针寄存器减1
inc ecx ;计数器加1
dec ecx ;计数器减1
sub esp,1 ;指针寄存器加1
sub esp,-1 ;指针寄存器加-1
push 321BA ;跳到内存入口地址321BA
retn ;反回到入口地址
jb 456CD ;跳到内存入口地址456CD
jnb 321BA ;跳到内存入口地址321BA
mov eax,456CD ;跳到内存入口地址456CD
jmp eax ;跳到程序入口地址
jmp 321BA ;跳到程序入口地址321BA
push 123AB ;把入口地址123AB压入堆栈
mov eax,123AB ;把入口地址123AB转送到数据寄存器中。
jmp 123AB ;跳到入口地址123AB(程序执行数据的真正入口点)
内存、文件特征码的定位与修改
众所周知大部分杀毒软件查杀病毒的根据就是对比特征码,而这个过程一般发生在内存与硬盘中。对比硬盘中储存着的文件的特征码,能全面地查杀计算机中的可疑文件;对比在内存中储存着的文件的特征码,能快速地查杀正在运行的程序是否带有病毒,另外病毒文件一旦进入内存即运行中,很可能会现出原形被杀毒软件查杀。针对杀毒软件这一特性,骇客们发明了内存、文件特征码修改免杀法。通常首先用特征码定位软件定位文件特征码的所在之处,再用UltraEdit对被定位的特征码段进行修改。
一般修改方法有:
- 十六进制的特征码直接修改法,就是把十六进制的特征码加1;
- 字符串大小写修改法,就是特征码所对应的内容是字符串的时候,把大小字互换;
- 等价替换法,就是当特征码所对应的是汇编指令时,把指令替换成功能类拟的指令;
- 指令顺序调换法,把特征码对应的汇编指令的顺序互换;
- 通用跳转法,用跳转的方法把特征码对应的汇编指令跳转走,犹如加花一样。
修改特征码的方法针对性很强很有用,但一次修改只能对一款杀毒软件免杀;要令另一款软件免杀,就要重新针对该软件修改特征码,因为各家杀毒软件公司使用的特征码基本上都不相同。
文件植入与捆绑
免杀工具
常用工具有[2]:
注释
- ^ >黑客炫耀“免杀”技术 专家称已有破解方法. news.xinhuanet.com. [2009-10-19]. (原始内容存档于2015-04-25).
- ^ >免杀技术之特征码修改常识. news.newhua.com. [2009-10-19]. (原始内容存档于2012-08-08).