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. 一本建立程序员(其它从业者)世界观、价值观和人生观的书——《黑客与画家》读书笔记

    <黑客与画家>读书笔记 这是一本建立程序员世界观.价值观和人生观的书 阅读提示 作者简介 创业哲学 黑客的定义 全书内容一览 重要语句摘抄 第一部分(第1章--第4章)程序员的世界观 读后 ...

  2. 《黑客与画家》读书笔记(二)

    <黑客与画家>读书笔记(二) 软件的bug 在自己刚刚写好的代码中,找出bug往往会比较快.有时,你只要看到出错提示,就知道问题出在哪里,甚至都不用看源码,因为潜意识中你已经在担心那个地方 ...

  3. 《黑客免杀攻防学习笔记》——反病毒软件与免杀原理

    1.反病毒软件原理与反病毒技术介绍 1.1反病毒软件工作原理 反病毒软件一般由扫描器.病毒库与虚拟机组成,并由主程序将他们整合在一起.扫描器用于查杀病毒,大多数反病毒软件基本都由多个扫描器组成,病毒库 ...

  4. 《黑客与画家》 读书笔记(二)

    最近很忙,每天阅读的时间很少,看书进度很慢,想看的书又很多,东看看西看看,一看就会有思考,或是共鸣,或是反省,或是启迪,结果看书进度更慢了.转眼要到9月份了,小朋友都要开学了.今年答应了小朋友,陪他出 ...

  5. [读书][笔记]WINDOWS PE权威指南《一》PE的原理和基础 之 第一章 环境搭建及简单破解

    文章目录 前言 前期准备 1.1 开发语言MASM32 1.1.1 设置开发环境 下载安装masm 环境变量配置 测试是否配置成功 1.1.2 开发第一个源程序HelloWorld.asm 配置 代码 ...

  6. 《黑客与画家》读书笔记(三)

    1. 摘录 致富最好的办法就是创业,创业就像是一个压缩过程,它将几十年的工作压缩到几年,如此高强度的工作,所带来的回报也是丰厚的.     金钱不等于财富     金钱只是财富的一种简便表达方式,它是 ...

  7. [读书][笔记]WINDOWS PE权威指南《零》PE基础

    参考: https://zhuanlan.zhihu.com/p/47075612 https://docs.microsoft.com/zh-cn/windows/win32/debug/pe-fo ...

  8. MDX Step by Step 读书笔记 - 个人专题(一) 如何理解 MDX 查询中WHERE 条件如何对应Cube 中的切片轴 Slicer Axis...

    这篇文章原本应该写在第四章的读书笔记里, 但是篇幅太长,而且主要示例和图解都是基于我自己的理解, 所以单独成文(可以先看看第四章读书笔记内容). 这一部分基础内容我个人觉得非常重要, 之前看过一次 M ...

  9. OllyDbg笔记-初识PE文件(nag窗口破解)

    目录 基本概念 代码与实例 基本概念 这里主要是记录下PE文件结构: PE文件结构,它在硬盘上的存储结构跟载入内存时候的存储结构是一样的.  在PE文件结构里边找出想要的东西,当这个文件映射到内存后, ...

最新文章

  1. 配置Exchange 2007边缘同步
  2. 解决mysql插入数据时出现Incorrect string value: '\xF0\x9F...' 的异常
  3. enum-使用宏管理你的枚举型数据
  4. 三十四、多线程真的比单线程快?
  5. XSSFWorkbook 设置单元格样式_如何设置Excel单元格才能只输入数字!
  6. 微课|中学生可以这样学Python(例5.10):字符串编码与加密
  7. 蔬菜刀行业调研报告 - 市场现状分析与发展前景预测
  8. 深度学习 --- 优化入门五(Batch Normalization(批量归一化)二)
  9. 1.1顺序表的初始化及基本操作(菜单实现)
  10. java 反编译 exe_Java反编译
  11. xp计算机考试资源管理,职称计算机WindowsXP必备考点:资源管理器
  12. 计算机组成原理与汇编语言试题,2069电大《计算机组成原理与汇编语言》试题和答案2005...
  13. android放大镜无广告,放大镜微件  |  Android 开发者  |  Android Developers
  14. Python数据可视化三部曲之 Pyecharts 从上手到上头
  15. Java获取某年某月的第一天
  16. net start mysql无法启动数据库的解决办法
  17. C++ 简易的五子棋游戏 初学者
  18. Origin画图技巧之回归(标准值与预测值)
  19. appium startActivity使用方法
  20. 征信为民守初心!《征信业管理条例》颁布十周年

热门文章

  1. 51CTO博客移动化意味着什么?IT博主可以搞事情了!
  2. Android Wear 唤醒热词会比“你好,安卓”好吗?
  3. 衔接上一学期:排球积分规则
  4. Java发邮件-QQ服务器认证
  5. mysql全局变量之max_connections max_user_connections详解
  6. 给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
  7. Exchange 2007 接收zip附件邮件时退信
  8. Windows Vista Upgrade Advisor 1.0
  9. 查看android数据库sqlite3中的表及数据、直接编辑数据库
  10. Android 动画(一)---布局动画