【黑客免杀攻防】读书笔记6 - PE文件知识在免杀中的应用
0x1 PE文件与免杀思路
基于PE文件结构知识的免杀技术主要用于对抗启发式扫描。
通过修改PE文件中的一些关键点来达到欺骗反病毒软件的目的。
- 修改区段名
1.1 移动PE文件头位置免杀
工具:PeClean
SizeOfOptionalHeader字段来描述扩展头的大小,恒定值为0xE0。
某些程序直接使用0xE0对PE文件进行处理,对于修改过的程序会被识别为非PE文件。
1.2 导入表移动免杀
通过修改程序里导入表ThunkValue值实现。
- 1)通过ThunkValue的偏移地址,找到API函数名
- 2)将原地址的API函数名移动到其他空白处
- 3)00填充掉原地址的API函数名
- 4)修改ThunkValue值为新移动的地址
1.3 导出表移动免杀
通过修改导入表中API函数名的相对偏移地址实现。
- 获取API函数名的RAV(相对虚拟地址)
- 将API函数名移动到新位置
- 将API函数名相对偏移地址填写回原先记录的地方
0x2 PE文件与反启发式扫描
其它非与PE文件相关的启发式扫描请参考第16章“免杀技术前沿”内容。
2.1 最后一个区段为代码段
启发特征:最后一个区段为代码段。这会引发“异常的入口点”。如果入口点被定位在了非正常的代码段上,则会被启发式扫描引擎查杀。
2.2 可疑的区段头部属性
蠕虫在感染一个文件时有三种方案,这些方案都要求会修改代码段具有可写属性。
- 1 增加一个新的可执行区段
- 2 现有的代码段中插入恶意代码
- 3 将恶意代码分别穿插到不同的区段中,并修改相应区段的属性
启发特征:一个正常的可执行程序如果出现多个具有可执行属性的区段,就会制造出这些特征。
2.3 可疑的PE选项头的有效尺寸值
启发特征:这一项启发特征是基于 “移动PE文件头免杀”建立起来的。用于试图修改选项头大小而隐藏更多敏感数据的恶意程序。
2.4 可疑的代码节名称
启发特征:如果产生了编译器厂商之外的区段名,则启发特征判定为恶意程序。
2.5 多个PE头部
启发特征:可执行文件中含有需要释放的DLL或者SYS。
注:一般情况下将其中包含的可执行文件加密即可避免出现这个特征。
2.6 导入表项存在可疑导入
启发特征:
- 无效导入表
- 偏移形式调用API
- 特定恶意行为的API序列
注:黑客一般会使用自己实现的GetProcAddresss函数,以便用散列值寻找并调用相关敏感API
0x3 隐藏导入表
隐藏导入表思路
- 简单异或加密
- 导入表单项移除
- 重构导入表
- 利用HOOK方式打乱其调用
3.1 操作原理与先决条件
原理:
- 1)手工将指定导入项的IAT(Import Address Table)删除掉
- 2)在启动初期用正确的值填充IAT
条件限制:
- OriginalFirstThunk字段是一个以0x00000000结尾的32位数组,将INT填充为0x00000000删掉后,
会导致在此IAT项后面所有由此DLL导入的函数失效。
3.2 修改PE文件
简单的例子
3.3 构造我们的反汇编代码
没看懂RegisterClassExW的起始地址是怎么得到的。
0x4 小结
PE免杀入门技巧
对PE免杀入门技巧的启发式扫描规则
反启发式扫描PE免杀技巧
0x5 参考文章
《黑客免杀攻防》第八章 PE文件知识在免杀中的应用
http://blog.csdn.net/dalerkd/article/details/41144251
转载于:https://www.cnblogs.com/17bdw/p/7377097.html
【黑客免杀攻防】读书笔记6 - PE文件知识在免杀中的应用相关推荐
- 一本建立程序员(其它从业者)世界观、价值观和人生观的书——《黑客与画家》读书笔记
<黑客与画家>读书笔记 这是一本建立程序员世界观.价值观和人生观的书 阅读提示 作者简介 创业哲学 黑客的定义 全书内容一览 重要语句摘抄 第一部分(第1章--第4章)程序员的世界观 读后 ...
- 《黑客与画家》读书笔记(二)
<黑客与画家>读书笔记(二) 软件的bug 在自己刚刚写好的代码中,找出bug往往会比较快.有时,你只要看到出错提示,就知道问题出在哪里,甚至都不用看源码,因为潜意识中你已经在担心那个地方 ...
- 《黑客免杀攻防学习笔记》——反病毒软件与免杀原理
1.反病毒软件原理与反病毒技术介绍 1.1反病毒软件工作原理 反病毒软件一般由扫描器.病毒库与虚拟机组成,并由主程序将他们整合在一起.扫描器用于查杀病毒,大多数反病毒软件基本都由多个扫描器组成,病毒库 ...
- 《黑客与画家》 读书笔记(二)
最近很忙,每天阅读的时间很少,看书进度很慢,想看的书又很多,东看看西看看,一看就会有思考,或是共鸣,或是反省,或是启迪,结果看书进度更慢了.转眼要到9月份了,小朋友都要开学了.今年答应了小朋友,陪他出 ...
- [读书][笔记]WINDOWS PE权威指南《一》PE的原理和基础 之 第一章 环境搭建及简单破解
文章目录 前言 前期准备 1.1 开发语言MASM32 1.1.1 设置开发环境 下载安装masm 环境变量配置 测试是否配置成功 1.1.2 开发第一个源程序HelloWorld.asm 配置 代码 ...
- 《黑客与画家》读书笔记(三)
1. 摘录 致富最好的办法就是创业,创业就像是一个压缩过程,它将几十年的工作压缩到几年,如此高强度的工作,所带来的回报也是丰厚的. 金钱不等于财富 金钱只是财富的一种简便表达方式,它是 ...
- [读书][笔记]WINDOWS PE权威指南《零》PE基础
参考: https://zhuanlan.zhihu.com/p/47075612 https://docs.microsoft.com/zh-cn/windows/win32/debug/pe-fo ...
- MDX Step by Step 读书笔记 - 个人专题(一) 如何理解 MDX 查询中WHERE 条件如何对应Cube 中的切片轴 Slicer Axis...
这篇文章原本应该写在第四章的读书笔记里, 但是篇幅太长,而且主要示例和图解都是基于我自己的理解, 所以单独成文(可以先看看第四章读书笔记内容). 这一部分基础内容我个人觉得非常重要, 之前看过一次 M ...
- OllyDbg笔记-初识PE文件(nag窗口破解)
目录 基本概念 代码与实例 基本概念 这里主要是记录下PE文件结构: PE文件结构,它在硬盘上的存储结构跟载入内存时候的存储结构是一样的. 在PE文件结构里边找出想要的东西,当这个文件映射到内存后, ...
最新文章
- 配置Exchange 2007边缘同步
- 解决mysql插入数据时出现Incorrect string value: '\xF0\x9F...' 的异常
- enum-使用宏管理你的枚举型数据
- 三十四、多线程真的比单线程快?
- XSSFWorkbook 设置单元格样式_如何设置Excel单元格才能只输入数字!
- 微课|中学生可以这样学Python(例5.10):字符串编码与加密
- 蔬菜刀行业调研报告 - 市场现状分析与发展前景预测
- 深度学习 --- 优化入门五(Batch Normalization(批量归一化)二)
- 1.1顺序表的初始化及基本操作(菜单实现)
- java 反编译 exe_Java反编译
- xp计算机考试资源管理,职称计算机WindowsXP必备考点:资源管理器
- 计算机组成原理与汇编语言试题,2069电大《计算机组成原理与汇编语言》试题和答案2005...
- android放大镜无广告,放大镜微件 | Android 开发者 | Android Developers
- Python数据可视化三部曲之 Pyecharts 从上手到上头
- Java获取某年某月的第一天
- net start mysql无法启动数据库的解决办法
- C++ 简易的五子棋游戏 初学者
- Origin画图技巧之回归(标准值与预测值)
- appium startActivity使用方法
- 征信为民守初心!《征信业管理条例》颁布十周年
热门文章
- 51CTO博客移动化意味着什么?IT博主可以搞事情了!
- Android Wear 唤醒热词会比“你好,安卓”好吗?
- 衔接上一学期:排球积分规则
- Java发邮件-QQ服务器认证
- mysql全局变量之max_connections max_user_connections详解
- 给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
- Exchange 2007 接收zip附件邮件时退信
- Windows Vista Upgrade Advisor 1.0
- 查看android数据库sqlite3中的表及数据、直接编辑数据库
- Android 动画(一)---布局动画