在研究恶意软件分析时找到一个数据集,发现网上公开的能用的数据集不太好找,其中一篇论文声称提供了20m的巨量恶意软件样本
github链接:
https://github.com/sophos-ai/SOREL-20M
下载了一部分样本后发现,样本是zlib压缩然后修改了PE头的,解压后
也无法用沙箱跑也无法用,ida分析会提升报错:
You forgot to call set_processor_type()

这个报错直接查是查不到什么信息的,再去重新看这篇文章的论文,提到了对恶意样本进行了“无害化处理”,把
optional_headers.subsystem 和 file_header.machine 标志设置为 0,这两个字段Subsystem是用来指示可执行文件期望的子系统,machine则是指示这个PE文件是跑在什么操作系统上的(32位、64位),具体对应字段如下


因此通过脚本重新修改这两个字段即可,可以用lief或者pefile包来进行修改,个人认为pefile更方便一点,可以直接通过字段赋值,lief则是查看字段和各种信息总结更方便(pefile打印是16进制的,lief打印会转化成可读字符串),因此先用pefile修改,再用lief查询信息看修改结果,发现machine字段改变了

if __name__ == "__main__":import pefileimport liefpe = pefile.PE("rawdata")pe.FILE_HEADER.Machine=0x014cpe.OPTIONAL_HEADER.Subsystem=0x2pe.write("newdata")binary = lief.PE.parse("newdata")header = binary.headerprint(binary)


最后把文件上传进云沙箱看是否能正常运行,能正常运行表示修改成功

python 修改PE文件头相关推荐

  1. 怎样修改PE文件头大小

    转载请注明版权:http://a1pass.blog.163.com/    作者:A1Pass 黑客反病毒论坛 http://bbs.hackav.com 不知道通过上一节的学习与大家自己的努力,许 ...

  2. 直接修改PE文件头PE标识字段的实验

    PE是Microsoft为了让程序在Windows上可移植而做的一种文件格式规定. Windows在执行exe程序的时候,PE文件加载器会按照约定加载exe程序,所以程序就正常地运行起来了. 比如像E ...

  3. 分享:bbed修改数据文件头推进scn与其他数据文件相同

    2019独角兽企业重金招聘Python工程师标准>>> 场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据 ...

  4. PE学习(三)第三章:PE文件头

    第三章:PE文件头 PE中涉及的地址有四类,它们分别为: 虚拟内存地址(VA) 相对虚拟内存地址(RVA) 文件偏移地址(FOA) 特殊地址  没有物理内存对应的页面被标记为dirty的页面,一般存储 ...

  5. UPack的PE文件头分析与OEP查找

    UPack(Ultimate PE压缩器),是一种PE文件的运行时压缩器,特点是使用独特的方法对PE头进行变形.UPack会使许多的PE分析程序无法正常运行,因此很多恶意代码都是通过UPack进行压缩 ...

  6. 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...

    场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据文件不一致. 场景构造: 1.创建测试表空间 SYS@orser> ...

  7. 用ffmpeg修改MP4文件头信息,使其支持流式加载及播放

    经常有用户反映,有些网页中加载的mp4文件,有的可以加载一点就开始播放,有的就必须全部加载完才能播. 经核实,主要是头信息的数据顺序有关,用工具:mp4info.exe可以查看mp4文件的结构信息: ...

  8. PE详解 - DOS文件头、PE文件头、节表和表详解

    原文地址:http://www.blogfshare.com/pe-header-one.html PE(Portable Executeable File Format,可移植的执行体文件格式),使 ...

  9. Python3-word文档操作(三):利用python修改word文档的内容

    前两篇博文中,学习了是用python的docx库创建一个word文档,并且编辑了标题和正文,以及利用python来获取word文档的内容.本篇学习利用python修改word文档的内容. 修改word ...

最新文章

  1. idea中使用docker插件部署项目
  2. 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器
  3. 【Extjs】 checkboxmodel 中事件处理
  4. Shiro SpringMVC 非maven HelloWorld
  5. linux ubuntu 虚拟机中配置samba的实现文件共享的方法
  6. 致:WWF技术博客领跑者WXWINTER--兰竹梅菊.春夏秋冬
  7. 缓存雪崩,缓存穿透,缓存预热,缓存热备都是什么鬼?
  8. java递增_java-8 – 如何按组递增
  9. aop注解配置切点 spring_springboot aop 自定义注解方式实现一套完善的日志记录
  10. 暴跌3000亿,“酱茅”怎么了?
  11. 网络粘包解包问题杂谈
  12. tableview 修改单元格内容字体大小_如何修改一次代码就可以完成多种类型 cell 的 UITableView 增删修改...
  13. NorthWind基本数据库添加问题
  14. matlab中if筛选条件 如何使用方法,excel中多个if函数的套用_excel怎么按条件筛选...
  15. 解决fatal: unable to connect to github.com
  16. 【好东西】ACM在线模版-f-zyj
  17. PostgreSQL服务端监听设置
  18. 【学习打卡 Free-Excel 】Task4 表合并
  19. 第二次作业--网易云音乐
  20. python 报错'tuple' object does not support item assignment

热门文章

  1. 面向对象开发期末复习概述(一)
  2. [Unity][插件]游戏中显示FPS帧数
  3. oracle 4098,ORA-04098错误解决方法-数据库专栏,ORACLE
  4. Failed to introspect Class [com.ssm.controller.OrderController] from ClassLoader [ParallelWebappClas
  5. 如何在Chrome浏览器中导入和导出密码
  6. 吉祥物,送吉祥(续更)
  7. 原来古人也在写“爽文”
  8. Windows如何安装WSL(中途退出后遇到bug该怎么办)
  9. 刘强东深夜发文:京东物流去年亏损超过28亿,再亏融资只够撑两年
  10. 文本相似性处理(好比论文查重)