用c读取pe文件数据

本文介绍如何使用C语言读取并解析PE文件的DOS、NT头以及节区信息,通过示例代码展示了从文件中获取这些关键数据的步骤。
摘要由CSDN通过智能技术生成

#include “pch.h”
#include
#include
#include<Windows.h>
IMAGE_DOS_HEADER myDosHeader;
IMAGE_NT_HEADERS myNTHeader;
IMAGE_FILE_HEADER myFileHeader;
IMAGE_OPTIONAL_HEADER myOptionHeader;
IMAGE_SECTION_HEADER* pmySectionHeader;
LONG e_lfanew;
int main(int argc, char* argv[])
{
FILE* pfile;
errno_t error;
DWORD fileSize = 0;

if ((error = fopen_s(&pfile, "文件路径", "r")) != 0)
{
	printf("打开文件错误!");
	getchar();
}

//DOS头部分
printf("================IMAGE_DOS_HEADER================\n");
fread(&myDosHeader, 1, sizeof(IMAGE_DOS_HEADER), pfile);
if (myDosHeader.e_magic != 0x5A4D)
{
	printf("不是MZ开头的文件!");
	fclose(pfile);
	exit(0);
}
printf("WORD e_magic:				%04X\n", myDosHeader.e_magic);
printf("DOWRD e_lfaner:				%08X\n\n", myDosHeader.e_lfanew);
e_lfanew = myDosHeader.e_lfanew;
//NT头部分
printf("================IMAGE_NT_HEADER================\n");
fseek(pfile, e_lfanew, SEEK_SET);
fread(&myNTHeader, 1, sizeof(IMAGE_NT_HEADERS), pfile);
if (myNTHeader.Signature !=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值