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文件相关推荐

  1. 判断文件是否是PE文件

    判断一个文件的文件属性是不是PE文件:主要思路就是:比较文件的DOS头和NT头的白哦之是不是"MZ"和"PE",判断文件是不是EXE文件或者DLL文件或者其他的 ...

  2. 如何判断一个文件是否为PE文件

    PE文件,Portable Executable file format简称. 那么如何判断一个文件是否为PE格式的文件? 1.首先检验文件头部第一个字的值是否等于 IMAGE_DOS_SIGNATU ...

  3. 快速查询PE文件知识点和PE文件解析(下)

    延迟加载导入表 延迟加载导入表(Delay Load Import Table)是PE中引入的专门用来描述与动态链接库延迟加载相关的数据,因为这些数据所起的作用和结构与导入表数据基本一致,所以称为延迟 ...

  4. python查看文件夹文件的所有权限,Python判断某个用户对某个文件的权限

    在Python我们要判断一个文件对当前用户有没有读.写.执行权限,我们通常可以使用os.access函数来实现,比如: # 判断读权限 os.access(, os.R_OK) # 判断写权限 os. ...

  5. [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. c语言怎么判断文件类型,判断你的文件是否为合法的PE文件和应用类型

    作者:赖锋 源代码下载 可能很多的人都没有注意到一些事情,就是你的程序是不是合法的可运行的应用程序,例如一个文件只是把后缀改成 .exe 的形式就显示为应用程序的图标了! 你不想写一个根据后缀名就确定 ...

  7. Python处理Windows记事本utf8编码文件要注意的坑

    封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答 ...

  8. PE文件详解(教程1-7)

    PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...

  9. 基于windows PE文件的恶意代码分析;使用SystemInternal工具与内核调试器研究windows用户空间与内核空间...

    基于windows PE文件的恶意代码分析:使用SystemInternal工具与内核调试器研究windows用户空间与内核空间 ******************** 既然本篇的主角是PE文件,那 ...

最新文章

  1. android炫酷的自定义view,Android自定义View实现炫酷进度条
  2. Spring 中的各种注解,光会用可不够哦!
  3. 编译gtk+程序报错gcc: pkg-config --cflags --libs gtk+-2.0: 没有那个文件或目录
  4. linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案
  5. javafx属性_JavaFX技巧11:更新只读属性
  6. 只收藏不点赞的人是什么心理???
  7. 小白入职AI数据工程师
  8. php 谈谈我对session, cookies和jwt的理解
  9. 这就是搜索引擎 (豆瓣).html 1.index 第1章 搜索引擎及其技术架构 1 第2章 网络爬虫 12 第3章 搜索引擎索引 36 第4章 索引压缩 76 第5章 检索模型与搜索排序 99
  10. 制图折断线_制图规范
  11. 世界经典名车中英名称对照
  12. 服务器winsxs文件夹怎么清理工具,winsxs,详细教您winsxs文件夹清理方法
  13. 如何用java来打印半圆_如何画半圆 - java
  14. 2018-7-16 2-1 分别由signed 和unsigned 限定的 char,short,int,long类型变量的取值范围
  15. Glyphs App Essential Training Glyphs App基础教程 Lynda课程中文字幕
  16. 典型相关分析如何分析两组变量的关系
  17. 实现自动轮播图(html+js)
  18. 什么是HBA(Host Bus Adapter,HBA)
  19. mysql里面使用技巧_MySQL的使用技巧
  20. Python面向对象—新旧式类,私有方法,类方法,静态方法

热门文章

  1. python3中round的用法_Python 3标准库用法--reversed、round、set
  2. yml文件tab 空格_YAML 文件介绍
  3. sql2000数据类型对应的数值_Qlikview---数据类型
  4. pads中如何设置等长_标签打印软件中标签间距以及边距如何设置
  5. 锐龙版和linux有什么区别,华为MateBook D 14锐龙版Linux版价格为何这么便宜
  6. android studio卡顿解决方案
  7. biodist r语言_R语言 Biostrings包 pairwiseAlignment()函数中文帮助文档(中英文对照)
  8. C语言dev查看调试变量,C语言程序设计-c4_C语言上机_Dev调试.doc
  9. Ubuntu16.04下配置laravel
  10. BZOJ-2243 [SDOI2011]染色