使用Python判断文件是否为PE文件
PE的全称是Portable Executable,指可移植的可执行文件,目前的最新版本是2013年2月6日发布的8.3版。PE文件包括exe文件、com文件、dll文件、ocx文件、sys文件、scr文件等Windows平台上所有可执行文件类型,可以说PE文件是Windows操作系统和Windows平台上所有软件和程序能够正常运行的重要基础。
# -*- coding:utf-8 -*-
import sys
import os
if len(sys.argv)!=2:
print('Usage: {0} anotherFile'.format(sys.argv[0]))
sys.exit()
filename = sys.argv[1] #获取要检测的文件名
if not os.path.isfile(filename): #判断是否为文件
print(filename + ' is not file.')
sys.exit()
with open(filename, 'rb') as fp:
flag1 = fp.read(2) #读取文件前两个字节
fp.seek(0x3c) #获取PE头偏移
offset = ord(fp.read(1))
fp.seek(offset)
flag2 = fp.read(4) #获取PE头签名
if flag1==b'MZ' and flag2==b'PE\x00\x00': #判断是否为PE文件的典型特征签名
print(filename + ' is a PE file.')
else:
print(filename + ' is not a PE file.')
祝所有朋友中秋节快乐!
使用Python判断文件是否为PE文件相关推荐
- 判断文件是否是PE文件
判断一个文件的文件属性是不是PE文件:主要思路就是:比较文件的DOS头和NT头的白哦之是不是"MZ"和"PE",判断文件是不是EXE文件或者DLL文件或者其他的 ...
- 如何判断一个文件是否为PE文件
PE文件,Portable Executable file format简称. 那么如何判断一个文件是否为PE格式的文件? 1.首先检验文件头部第一个字的值是否等于 IMAGE_DOS_SIGNATU ...
- 快速查询PE文件知识点和PE文件解析(下)
延迟加载导入表 延迟加载导入表(Delay Load Import Table)是PE中引入的专门用来描述与动态链接库延迟加载相关的数据,因为这些数据所起的作用和结构与导入表数据基本一致,所以称为延迟 ...
- python查看文件夹文件的所有权限,Python判断某个用户对某个文件的权限
在Python我们要判断一个文件对当前用户有没有读.写.执行权限,我们通常可以使用os.access函数来实现,比如: # 判断读权限 os.access(, os.R_OK) # 判断写权限 os. ...
- [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- c语言怎么判断文件类型,判断你的文件是否为合法的PE文件和应用类型
作者:赖锋 源代码下载 可能很多的人都没有注意到一些事情,就是你的程序是不是合法的可运行的应用程序,例如一个文件只是把后缀改成 .exe 的形式就显示为应用程序的图标了! 你不想写一个根据后缀名就确定 ...
- Python处理Windows记事本utf8编码文件要注意的坑
封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答 ...
- PE文件详解(教程1-7)
PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...
- 基于windows PE文件的恶意代码分析;使用SystemInternal工具与内核调试器研究windows用户空间与内核空间...
基于windows PE文件的恶意代码分析:使用SystemInternal工具与内核调试器研究windows用户空间与内核空间 ******************** 既然本篇的主角是PE文件,那 ...
最新文章
- android炫酷的自定义view,Android自定义View实现炫酷进度条
- Spring 中的各种注解,光会用可不够哦!
- 编译gtk+程序报错gcc: pkg-config --cflags --libs gtk+-2.0: 没有那个文件或目录
- linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案
- javafx属性_JavaFX技巧11:更新只读属性
- 只收藏不点赞的人是什么心理???
- 小白入职AI数据工程师
- php 谈谈我对session, cookies和jwt的理解
- 这就是搜索引擎 (豆瓣).html 1.index 第1章 搜索引擎及其技术架构 1 第2章 网络爬虫 12 第3章 搜索引擎索引 36 第4章 索引压缩 76 第5章 检索模型与搜索排序 99
- 制图折断线_制图规范
- 世界经典名车中英名称对照
- 服务器winsxs文件夹怎么清理工具,winsxs,详细教您winsxs文件夹清理方法
- 如何用java来打印半圆_如何画半圆 - java
- 2018-7-16 2-1 分别由signed 和unsigned 限定的 char,short,int,long类型变量的取值范围
- Glyphs App Essential Training Glyphs App基础教程 Lynda课程中文字幕
- 典型相关分析如何分析两组变量的关系
- 实现自动轮播图(html+js)
- 什么是HBA(Host Bus Adapter,HBA)
- mysql里面使用技巧_MySQL的使用技巧
- Python面向对象—新旧式类,私有方法,类方法,静态方法
热门文章
- python3中round的用法_Python 3标准库用法--reversed、round、set
- yml文件tab 空格_YAML 文件介绍
- sql2000数据类型对应的数值_Qlikview---数据类型
- pads中如何设置等长_标签打印软件中标签间距以及边距如何设置
- 锐龙版和linux有什么区别,华为MateBook D 14锐龙版Linux版价格为何这么便宜
- android studio卡顿解决方案
- biodist r语言_R语言 Biostrings包 pairwiseAlignment()函数中文帮助文档(中英文对照)
- C语言dev查看调试变量,C语言程序设计-c4_C语言上机_Dev调试.doc
- Ubuntu16.04下配置laravel
- BZOJ-2243 [SDOI2011]染色