C++ 读取PE文件并十六进制打印输出

本文介绍了如何使用C++读取PE文件,并以十六进制格式进行打印。通过分析PE结构,作者提供了代码示例,旨在简化LoadPE的分析过程。文章还提到了在大量输出时为提高效率,选择每150行打印一次的策略。后续内容将涉及PE文件的入口点和导出函数列表的获取。
摘要由CSDN通过智能技术生成

分析PE结构的时候,想自己把里边的结构理解后打印LoadPE分析的东西,在此先把读取PE 结构的C++代码贴出来:

#include <iostream>
#include <iomanip>
#include <windows.h>
#include <fstream>
#define MAX 16*10000
using namespace std;
int value[MAX];

DWORD FileSize()
{
	TCHAR szFileName[MAX_PATH]=TEXT("D:\\vs2010\\LoadPE\\Debug\\PE.exe");
	HANDLE hFile=CreateFile(szFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
	if (INVALID_HANDLE_VALUE==hFile) 
	{
		if (0==GetLastError()) 
		{
			printf("file not exist");
		}
		return 0;
	}
	DWORD dwFileSize = 0;
	dwFileSize = GetFileSize(hFile,NULL);
	CloseHandle(hFile);
	return dwFileSize;
}
int _tmain(int argc, _TCHAR* argv[])
{
	ifstream fin("D:\\vs2010\\LoadPE\\Debug\\PE.exe",ios::binary);
	if(!fin)
		exit(0);
	char c;
	long i = 0,j = 0;
	cout.setf(ios::uppercase);
	cout<<setfill('0');
	D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值