一、基本信息
  • 样本名称:1q8JRgwDeGMofs.exe
  • 病毒名称:Worm.Win32.Agent.ayd
  • 文件大小:165384 字节
  • 文件MD5:7EF5D0028997CB7DD3484A7FBDE071C2
  • 文件SHA1:DA70DDC64F517A88F42E1021C79D689A76B9332D
二、分析样本使用的工具
  • IDA5.5
  • OnlyDebug
  • RadASM
  • Notepad++以及EditPlus
三、样本文件信息简介
  • PE文件的感染的方式比较多,很多PE感染的方式是你意向不到,而且还比较巧妙,对于PE感染病毒的分析,有利于对于PE文件格式的熟悉以及病毒感染方式的原理的理解,还是蛮有意思。这样病毒样本的感染PE文件的方式是通过附加数据的方式感染的,和吾爱破解论坛的一篇PE感染病毒的分析很相似,只是那个样本的附加数据的感染方式非常的明显,而这个样本的PE感染机制不是那么的明显,需要仔细的分析才能琢磨出来。
  • 其实,对于一个出色的病毒分析人员,对于病毒样本的通透的分析只是一方面,更重要的是将病毒的运作过程,用图文并茂以及通俗的语言告诉看病毒分析报告的人员。经过多次的报告的撰写,发现作者不是这样一个病毒分析人员,有时候更多的喜欢用汇编代码的形式来表达自己的意思。
四、PE附加数据感染的样本分析

1.      获取当前模块感染1q8JRgwDeGMofs.exe文件的路径,然后将该文件的数据读到内存缓冲区

  • 获取当前模块的感染1q8JRgwDeGMofs.exe文件的路径
  • 读取感染1q8JRgwDeGMofs.exe文件的数据到内存

  • 函数0040AB80的功能:读取感染1q8JRgwDeGMofs.exe文件的数据到内存返回内存缓冲区指针

2.      获取临时文件的目录,拼接字符串构造文件路径:"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\感染1q8JRgwDeGMofs.exe”。

  • 获取系统临时文件的目录"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\

  • 拼接字符串得到:"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\感染1q8JRgwDeGMofs.exe”


3.      对字符串标记"%A1%FBI"进行解密得到一个特征字符串,然后通过该特征字符串定位到感染1q8JRgwDeGMofs.exe文件的附加数据段,获取附加数据,再将该附加数据回写到感染1q8JRgwDeGMofs.exe文件中构建一个新的感染1q8JRgwDeGMofs.exe文件,然后调用函数CreateProcess创建一个感染1q8JRgwDeGMofs.exe进程

  • 解密字符串"%A1%FBI"。
  • 备份原来的感染1q8JRgwDeGMofs.exe文件到系统临时文件目录下
  • 打开创建新的感染1q8JRgwDeGMofs.exe文件

  • 创建进程 "感染1q8JRgwDeGMofs.exe"

4.      PE感染文件的其他的行为:

  • 设置感染样本文件感染1q8JRgwDeGMofs.e的属性
  • 判断文件"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\感染1q8JRgwDeGMofs.exe.lj是否存

  • 存在该文件--删除"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\感染1q8JRgwDeGMofs.exe.lj”文件
  • 将感染病毒样本的文件数据拷贝并创建文件"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\感染1q8JRgwDeGMofs.exe.lj" 。
  • 拼接字符串得到文件路径字符串 ""C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\感染1q8JRgwDeGMofs.exe1".
  • 将感染样本的文件数据拷贝到文件"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\感染1q8JRgwDeGMofs.exe1"中


  • 其实整个PE病毒样本的分析的关键在于它的附加数据段,附上感染样本的附加数据的截图:
五、后记
  • 本来这个样本的汇编分析多达20多页,由于分析记录太多,仅仅将关键的地方记录了下来。虽然从程序逆向反汇编的角度能够很好的去了解一个程序的内部的运行流程,但是多少还是有失误的地方,分析的不足的地方见谅,高手飘过。
  • 对于本文的题目容易产生误解,解释一下:本文的意思是PE文件感染病毒将其病毒的数据放在被感染的目标PE文件的附加数据里,而上一篇博文的意思是PE文件感染病毒将其病毒的数据放在被感染的目标PE文件的最后一个节中,先执行完病毒感染代码以后,再jmp去执行被感染目标文件的原来的代码。

PE文件附加数据感染之Worm.Win32.Agent.ayd病毒分析的更多相关文章

  1. PE文件加节感染之Win32.Loader.bx.V病毒分析

    一.病毒名称:Win32.Loader.bx.V 二.分析工具:IDA 5.5.OllyDebug.StudPE 三.PE文件加节感染病毒简介 PE病毒感染的方式比较多,也比较复杂也比较难分析,下面就 ...

  2. Worm.Win32.DownLoader.ns病毒主进程新式输入法注入分析(IME Inject)

    1.病毒会在system32目录生成一个以tmp结尾的随机数命名的文件. 2.然后挂钩HOOK本进程空间的imm32.dll导出的ImmLoadLayout函数和ntdll.dll导出的ZwQuery ...

  3. C++PE文件格式解析类(轻松制作自己的PE文件解析器)

    PE是Portable Executable File Format(可移植的运行体)简写,它是眼下Windows平台上的主流可运行文件格式. PE文件里包括的内容非常多,详细我就不在这解释了,有兴趣 ...

  4. 解析PE文件的附加数据

    解析程序自己的附加数据,将附加数据写入文件里. 主要是解析PE文件头.定位到overlay的地方.写入文件. 常应用的场景是在crackme中,crackme自身有一段加密过的附加数据.在crackm ...

  5. 下载额外数据文件失败 以下软件包要求安装后下载附加数据,但其数据无法下载或无法处理 ttf-mscorefonts-installer

    故障显示: 一些软件包的数据文件无法下载 以下软件包要求安装后下载附加数据,但其数据无法下载或无法处理. ttf-mscorefonts-installer 这是一个永久错误,系统中的这些软件包将无法 ...

  6. 深入学习PE文件(转)

    PE文件是Win32的原生文件格式.每一个Win32可执行文件都遵循PE文件格式.对PE文件格式的了解可以加深你对Win32系统的深入理解. 一. 基本结构. 上图便是PE文件的基本结构.(注意:DO ...

  7. 深入剖析PE文件

    不赖猴的笔记,转载请注明出处. 深入剖析PE文件 PE文件是Win32的原生文件格式.每一个Win32可执行文件都遵循PE文件格式.对PE文件格式的了解可以加深你对Win32系统的深入理解. 一.   ...

  8. 浅谈脱壳中的附加数据问题(overlay)

    Author:Lenus -------------------------------------------------- 1.前言 最近,在论坛上看到很多人在弄附加数据overlay的问题,加上 ...

  9. PE文件学习系列三-PE头详解

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q  Q:408365330     E-Mail:egojit@qq.com 最近比较忙 ...

随机推荐

  1. CVE-2020-1938 -Tomcat-AJP任意文件读取/包含

    为什么这个漏洞被称作 Ghostcat(幽灵猫)? 这个漏洞影响全版本默认配置下的 Tomcat(在我们发现此漏洞的时候,确认其影响 Tomcat 9/8/7/6 全版本,而年代过于久远的更早的版本未 ...

  2. 死磕Spring之IoC篇 - @Autowired 等注解的实现原理

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  3. 性能追击:万字长文30+图揭秘8大主流服务器程序线程模型 | Node.js,Apache,Nginx,Netty,Redis,Tomcat,MySQL,Zuul

    本文为<高性能网络编程游记>的第六篇"性能追击:万字长文30+图揭秘8大主流服务器程序线程模型". 最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让 ...

  4. 计算机二级Python学习笔记(一):温度转换

    今天通过一个温度转换的十行代码,理解了一些Python的基本元素. 所谓温度转换,就是摄氏度和华氏度的转换,要求输入摄氏度,可以输出华氏度,反之一样能实现.代码如下: #TempConvert.py ...

  5. 多租缓存实现方案 (Java)

    多租缓存实现方案 (Java) 缓存在系统中是不可少的,缓存的实现是一个从无到有的过程,最开始,单应用的,缓存都是应用内部的,Map基本就能满足,实现简单.但是当上了微服务之后,应用是多部署的,应用之 ...

  6. 001-HashMap源码分析

    HashMap源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如 memcached)的核心其实就是在内存中维护一张大的哈希表. 一.什 ...

  7. java二叉树遍历——深度优先(DFS)与广度优先(BFS) 递归版与非递归版

    介绍 深度优先遍历:从根节点出发,沿着左子树方向进行纵向遍历,直到找到叶子节点为止.然后回溯到前一个节点,进行右子树节点的遍历,直到遍历完所有可达节点为止. 广度优先遍历:从根节点出发,在横向遍历二叉 ...

  8. 2019HDU多校第七场 HDU6656 Kejin Player H 【期望递归】

    一.题目 Kejin Player H 二.分析 因为在当前等级$i$,如果升级失败可能会退回到原来的某一等级$x$,相当于就是失败的期望就是$E + (Sum[i-1] - Sum[x-1]) + ...

  9. 编写自己的代码库(css3常用动画的实现)

    编写自己的代码库(css3常用动画的实现) 1.前言 在月初的时候,发了CSS3热身实战--过渡与动画(实现炫酷下拉,手风琴,无缝滚动).js的代码库也发过两次,两篇文章.之前也写了css3的热身实战 ...

  10. css盒布局-省份选择盘的实现

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...