PE查看器:
1、创建映射文件
2、判断是否为PE文件
3、获取各个数据地址
4、读取各个数据结构
=======================================================
1、创建文件
void CreatePEFile(CString FileName)
{
HANDLE pFile;
HANDLE pMap;
/*-------------创建映射文件-----------*/
//FileName要打开文件所在路径
pFile = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);
if(!pFile)
return ;
hMap = CreateFileMapping(ip->pf.pFile, NULL, PAGE_READONLY, 0, 0, NULL);
if(!hMap)
return ;
/*------------获取文件基地址-----------*/
DWORD Based; //基地址
Based = MapViewOfFile(pMap, FILE_MAP_READ, 0, 0, 0);
if (!Based)
{
CloseHandle(pMap);