用C++实现的壳

1.读取PE文件的信息并保存

//PE.h
public:
	HANDLE				m_hFile;	        //PE文件句柄
	LPBYTE				m_pFileBuf;	        //PE文件缓冲区
	DWORD				m_dwFileSize;	        //文件大小
	DWORD				m_dwImageSize;	        //镜像大小
	PIMAGE_DOS_HEADER	        m_pDosHeader;	        //Dos头
	PIMAGE_NT_HEADERS		m_pNtHeader;	        //NT头
	PIMAGE_SECTION_HEADER	        m_pSecHeader;	        //第一个SECTION结构体指针
	DWORD				m_dwImageBase;	        //镜像基址
	DWORD				m_dwCodeBase;	        //代码基址
	DWORD				m_dwCodeSize;	        //代码大小
	DWORD				m_dwPEOEP;	        //OEP地址
	DWORD				m_dwShellOEP;	        //新OEP地址
	DWORD				m_dwSizeOfHeader;	//文件头大小
	DWORD				m_dwSectionNum;		//区段数量
	DWORD				m_dwFileAlign;		//文件对齐
	DWORD				m_dwMemAlign;		//内存对齐
	DWORD				m_IATSectionBase;	//IAT所在段基址
	DWORD				m_IATSectionSize;	//IAT所在段大小
	IMAGE_DATA_DIRECTORY	        m_PERelocDir;		//重定位表信息
	IMAGE_DATA_DIRECTORY	        m_PEImportDir;		//导入表信息
继续阅读“用C++实现的壳”