最近也研究了一波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(); };
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
ylCplus 我需要转正..