-
-
[原创]一个C++的PE文件操作类
-
发表于:
2015-12-6 18:11
8232
-
最近也研究了一波PE文件结构,自己写了一个PE结构的类,不敢私藏,分享给大家了。
只写了一个基类,如果有需要扩展的同学自己继承基类,还是挺方便的。
//PeReadWrite.h 文件
#pragma once
class PeReadWrite
{
private:
HANDLE hFile;
HANDLE hMapping;
PVOID pBaseAddr;
public:
//构造函数
PeReadWrite();
//加载文件
bool loadFile(CString filePath);
//返回载入的地址
DWORD getBaseAddr();
//判断是否是PE文件
bool isPeFile();
//获取DOS头
IMAGE_DOS_HEADER *getDosHeader();
//获取NT头
IMAGE_NT_HEADERS *getNtHeader();
//获取节表起始
IMAGE_SECTION_HEADER *getSectionStart();
//获取导入表
IMAGE_IMPORT_DESCRIPTOR *getImport();
//获取导出表
IMAGE_EXPORT_DIRECTORY *getExport();
//获取重定位
IMAGE_BASE_RELOCATION *getReLocation();
//获取资源
IMAGE_RESOURCE_DIRECTORY *getResource();
//计算RvaToVa
DWORD RvaToVa(DWORD rva);
//关闭一系列操作
void UnFile();
};
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)