python 修改PE文件头
在研究恶意软件分析时找到一个数据集,发现网上公开的能用的数据集不太好找,其中一篇论文声称提供了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文件头相关推荐
- 怎样修改PE文件头大小
转载请注明版权:http://a1pass.blog.163.com/ 作者:A1Pass 黑客反病毒论坛 http://bbs.hackav.com 不知道通过上一节的学习与大家自己的努力,许 ...
- 直接修改PE文件头PE标识字段的实验
PE是Microsoft为了让程序在Windows上可移植而做的一种文件格式规定. Windows在执行exe程序的时候,PE文件加载器会按照约定加载exe程序,所以程序就正常地运行起来了. 比如像E ...
- 分享:bbed修改数据文件头推进scn与其他数据文件相同
2019独角兽企业重金招聘Python工程师标准>>> 场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据 ...
- PE学习(三)第三章:PE文件头
第三章:PE文件头 PE中涉及的地址有四类,它们分别为: 虚拟内存地址(VA) 相对虚拟内存地址(RVA) 文件偏移地址(FOA) 特殊地址 没有物理内存对应的页面被标记为dirty的页面,一般存储 ...
- UPack的PE文件头分析与OEP查找
UPack(Ultimate PE压缩器),是一种PE文件的运行时压缩器,特点是使用独特的方法对PE头进行变形.UPack会使许多的PE分析程序无法正常运行,因此很多恶意代码都是通过UPack进行压缩 ...
- 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...
场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据文件不一致. 场景构造: 1.创建测试表空间 SYS@orser> ...
- 用ffmpeg修改MP4文件头信息,使其支持流式加载及播放
经常有用户反映,有些网页中加载的mp4文件,有的可以加载一点就开始播放,有的就必须全部加载完才能播. 经核实,主要是头信息的数据顺序有关,用工具:mp4info.exe可以查看mp4文件的结构信息: ...
- PE详解 - DOS文件头、PE文件头、节表和表详解
原文地址:http://www.blogfshare.com/pe-header-one.html PE(Portable Executeable File Format,可移植的执行体文件格式),使 ...
- Python3-word文档操作(三):利用python修改word文档的内容
前两篇博文中,学习了是用python的docx库创建一个word文档,并且编辑了标题和正文,以及利用python来获取word文档的内容.本篇学习利用python修改word文档的内容. 修改word ...
最新文章
- idea中使用docker插件部署项目
- 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器
- 【Extjs】 checkboxmodel 中事件处理
- Shiro SpringMVC 非maven HelloWorld
- linux ubuntu 虚拟机中配置samba的实现文件共享的方法
- 致:WWF技术博客领跑者WXWINTER--兰竹梅菊.春夏秋冬
- 缓存雪崩,缓存穿透,缓存预热,缓存热备都是什么鬼?
- java递增_java-8 – 如何按组递增
- aop注解配置切点 spring_springboot aop 自定义注解方式实现一套完善的日志记录
- 暴跌3000亿,“酱茅”怎么了?
- 网络粘包解包问题杂谈
- tableview 修改单元格内容字体大小_如何修改一次代码就可以完成多种类型 cell 的 UITableView 增删修改...
- NorthWind基本数据库添加问题
- matlab中if筛选条件 如何使用方法,excel中多个if函数的套用_excel怎么按条件筛选...
- 解决fatal: unable to connect to github.com
- 【好东西】ACM在线模版-f-zyj
- PostgreSQL服务端监听设置
- 【学习打卡 Free-Excel 】Task4 表合并
- 第二次作业--网易云音乐
- python 报错'tuple' object does not support item assignment
热门文章
- 面向对象开发期末复习概述(一)
- [Unity][插件]游戏中显示FPS帧数
- oracle 4098,ORA-04098错误解决方法-数据库专栏,ORACLE
- Failed to introspect Class [com.ssm.controller.OrderController] from ClassLoader [ParallelWebappClas
- 如何在Chrome浏览器中导入和导出密码
- 吉祥物,送吉祥(续更)
- 原来古人也在写“爽文”
- Windows如何安装WSL(中途退出后遇到bug该怎么办)
- 刘强东深夜发文:京东物流去年亏损超过28亿,再亏融资只够撑两年
- 文本相似性处理(好比论文查重)