C/C++ 介绍的PE文件遍历工具
在前面的笔记中,我总结了Pe结构的一些结构含义,并手动编写了几段PE结构遍历代码,这里我直接把之前的C语言代码进行了封装,形成了一个命令行版的PE文件查看工具,该工具只有20kb,但却可以遍历出大部分PE结构数据,非常实用,分享出来是因为后续教程需要用到解析,请熟练使用其所支持的命令行参数,命令行输入PETools.exe 即可使用。
PE工具下载地址: https://lyshark.github.io/soft/PETools.zip
基本参数介绍: 输入GetPE直接弹出帮助菜单。

检查模块开启的保护: main.exe c://qc.exe --CheckModule

验证模块完整性: 传入一个正在运行进程PID即可,检验模块是否存在可利用的环节。

验证特定模块地址: 例如验证User32.dll中MessageBoxA的地址,可执行:

十六进制加减法计算: 可快速实现十六进制加减法,不用在使用计算器了,方便快捷。

遍历DOS头: GetPE c://lyshark.exe --ShowDosHead

遍历NT头数据: C:\pe>pe.exe ./x86.exe --ShowNtHead


遍历Section节表: C:\pe>pe.exe ./x86.exe --ShowSection

遍历程序中的导入函数: C:\pe>pe.exe ./x86.exe --ShowImportByDll


查询指定DLL中的导入函数: C:\pe>pe.exe ./x86.exe --ShowImportByName USER32.dll


查询全部导入表,导入函数: C:\pe>pe.exe ./ddd.dll --ShowImportAll

查询Export导出表: C:\pe>pe.exe ./ddd.dll --ShowExport


查询重定位表: C:\pe>pe.exe ./ddd.dll --ShowFixReloc

显示所有导入DLL GetPE c://lyshark.exe --ShowImportByDll

显示指定DLL中的导入函数: GetPE c://lyshark.exe --ShowImportByName USER32.dll

显示所有导入函数: GetPE c://lyshark.exe --ShowImportAll

检索指定API是否被引用: GetPE c://lyshark.exe --ShowImportByFunc GetModuleFileNameW

检索数据目录表: GetPE c://lyshark.exe --ShowDataDirectory

完整检索数据目录表:

检索文件导出表: GetPE c://lyshark.dll --ShowExport

检索重定位块: GetPE c://lyshark.dll --ShowFixRelocPage

检索指定重定位块中重定位信息: GetPE c://lyshark.dll --ShowFixRelocRva 00001000

检索全部重定位表: GetPE c://lyshark.dll --ShowFixReloc

尝试修正重定位表: GetPE c://lyshark.dll --RepairFixReloc dump.dll

尝试识别目标指纹: 通过内置特征,尝试识别目标指纹。

写这个东西就是要查手册,根据微软的定义,对其进行解析,不难,就是挺麻烦的,为了后续课程需要,我不得不把这个工具完善起来,稍安勿躁,精彩内容下次安排。
C/C++ 介绍的PE文件遍历工具的更多相关文章
- 破解软件系列-PE文件深入浅出之Section Table节表
我们已经学了许多关于 DOS header 和 PE header 的知识.接下来就该轮到 section table(节表)了.节表其实就是紧挨着 PE header 的一结构数组.该数组成员的数目 ...
- Linux操作系统的文件查找工具locate和find命令常用参数介绍
Linux操作系统的文件查找工具locate和find命令常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.非实时查找(数据库查找)locate工具 locate命 ...
- PE文件介绍 (2)-DOS头,DOS存根,NT头
PE头 PE头由许多结构体组成,现在开始逐一学习各结构体 0X00 DOS头 微软创建PE文件格式时,人们正广泛使用DOS文件,所以微软充分考虑了PE文件对DOS文件的兼容性.其结果是在PE头的最前面 ...
- [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)
[系统安全] 十六.PE文件逆向基础知识(PE解析.PE编辑工具和PE修改) 文章来源:https://masterxsec.github.io/2017/05/02/PE%E6%96%87%E4%B ...
- putty提供的两个文件传输工具PSCP、PSFTP详细介绍
用 SSH 来传输文件 PuTTY 提供了两个文件传输工具 PSCP (PuTTY Secure Copy client) PSFTP (PuTTY SFTP client) PSCP 通过 SSH ...
- 文件同步工具BT Sync介绍和使用说明
BT Sync介绍 BT 下载,相信大伙儿都知道的.今儿个要介绍的 BT Sync,跟 BT 下载一样,都是 BitTorrent 公司发明滴玩意儿,都是采用 P2P 协议来进行传输. 简而言之,BT ...
- PE文件简单介绍
PE(Portable Execute)文件是WIN32下可运行文件遵循的数据格式,也是反汇编调试不可缺少的文件,常见的pe文件有.exe和.dll文件.本文主要介绍pe文件的结构和虚拟内存地址转换到 ...
- PE文件介绍 (1)
PE文件介绍 PE文件主要是windows操作系统下使用的可执行文件格式,PE文件是指32位的可执行文件也叫做PE32,64位可执行文件叫做PE+或者PE32+ PE文件格式 种类 主扩展名 可执行类 ...
- c++两种字符串赋值方式 并介绍 C语言下遍历目录文件的方式
c++字符串声明:一种是声明字符数组并赋值,另一种是直接声明string类 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #incl ...
随机推荐
- js 前端MD5加密
1.引入 <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script& ...
- C++高精度计算(大整数类)
Java和Pathon可以不用往下看了 C++的基本数据类型中,范围最大的数据类型不同编译器不同,但是最大的整数范围只有[-2^63-2^63-1](对应8个字节所对应的二进制数大小).但是对于某些需 ...
- rest framework ViewSet
ViewSets 路由选择确定要用于一个请求哪个控制器之后,控制器负责做出请求的感并产生相应的输出. - Ruby on Rails的文档 Django的REST框架允许你的逻辑一组在一个类中的相关意 ...
- C# 基础 - Enum 的一些操作
1. int 转换成 enum public enum Suit { Spades, Hearts, Clubs, Diamonds } Suit spades = (Suit)0; Suit hea ...
- VMware 虚拟机安装(使用CentOS镜像)
(1)启动虚拟机,点击"文件"-->"新建虚拟机",选择安装类型,推荐"典型". (2)选择稍后安装操作系统 ...
- mysql建表约束
--mysql建表约束--主键约束它能够唯一确定一张表中的内容,也就是我们通过某个字段添加约束,就可以是的该字段唯一(不重复)且不为空.create table user( id int pr ...
- python爬取三国演义的所有章节储存到本地文件中
#爬取三国演义的全部章节 2 3 import urllib 4 import urllib.request 5 import urllib.parse 6 from lxml import etre ...
- SFDC 利用Schema.Describe来取得Picklist所有的选项
Salesforce的开发语言Apex与Java极为类似.也有封装,基础,多态特性. 并且也能 反射,Object的属性和Field属性. 今天主要记录的是一个需求:Visualforce Page或 ...
- 开源一个比雪花算法更好用的ID生成算法(雪花漂移)
比雪花算法更好用的ID生成算法(单机或分布式唯一ID) 转载及版权声明 本人从未在博客园之外的网站,发表过本算法长文,其它网站所现文章,均属他人拷贝之作. 所有拷贝之作,均须保留项目开源链接,否则禁止 ...
- python自动统计zabbix系统监控覆盖率
脚本主要功能: 1)通过zabbix api接口采集所有监控主机ip地址: 2)通过cmdb系统(蓝鲸)接口采集所有生产主机IP地址.主机名.操作系统.电源状态: 3)以上2步返回数据对比,找出未监控 ...