2.2节提到神经网络用于病毒文件的识别,特别是对于EPO(入口点模糊技术)具有较好的检出能力.
笔记:
因为几乎所有的病毒检测软件都会针对PE文件的入口点位置的合理性进行判断,如果入口点不在段代码中,程序会被标记.
一种可行的方法是:在距离正常入口点较近的地方jmp处跳转到病毒体或者call调用api函数时候跳转到病毒体.
更有效的方法,也就是EPO,通过对距离入口点区域有一定距离的随机地方寻找call申请一个指针,将指针修改成指向病毒模块的地方.
2.3PE文件
PE文件
具有PE结构的文件包括但不限于
exe,src,dll,sys,ocx扩展
PE全称Portable Executable(可移植的执行体)
庞特棒,A个然凯特帮
结构:
DOS文件头
DOS文件加载模块
PE文件头
区段(节)表:
.text
.data
.rsrc
位置,区段大小,读写权限
关于PE格式的更深的内容在书中第七章.
2.4免杀原理:
1文件免杀原理
a改特征码:
特征码,校验和
b花指令:
变更程序偏移量,
扰乱程序执行顺序,
为反病毒者布下陷阱.
c加壳免杀:
压缩体积,保护内容
运行前的罩子,逐步还原到内存中最后执行
详情见第6章
2内存免杀原理
类似于文件查杀基于内存特征
3行为免杀原理
文件防火墙>主动防御>云查杀
对抗方法:0day漏洞,本地缓冲区溢出等
总结为:条条大路通罗马.
4工具脱壳技巧
a压缩壳UPX
b加密壳
代码乱序,代码混淆
c虚拟机保护壳
自定义了CPU-软件CPU
遵照自己约定的TextCode
CPU本身指令很复杂:
OpCode(Intel机内码01)对应的虚拟机保护编码格式可能是随机生成的.
虚拟机:
1模拟虚拟机
如VM
2反病毒虚拟机
以引擎的形式出现,为应用程序提供必要环境,捕捉目标程序的行为
3软件保护虚拟机
加密的目的,只提供简单的解码和堆栈模拟操作,将解码后的操作提供给"软件CPU"去处理.
只有和被保护软件需要与实际操作系统交互时才将准备好的请求和及堆栈环境提交给系统执行.
VMUnpacker不错(超级巡警病毒分析工具)
PEID
强悍的QuickUnpack
扩展概念:导入表,导出表
本章结束.