class CPESecurity { public: CPESecurity(void); CPESecurity(__in wchar_t * pe_path); //构造拷贝函数 //对外的接口放在Public里面 //唯一的参数就是,PE的路径 BOOL LoadPeFile(__in wchar_t * pe_path); protected: //实现打开文件,获取文件句柄的功能 //返回指定文件的句柄 HANDLE OpenFile(__in wchar_t * file_path); //实现内存映射的功能 BOOL LoadPe(); //获得PE文件头信息 void GetPeHeadInfo(); //获得节信息 BOOL GetSectionInfo(__in void * lpMemory); //获得PE导入表 BOOL GetImportPeTable(__in void * lpMemory); //辅助函数 //将内存偏移RVA转换为文件偏移的函数 DWORD RVAToOffset(__in void * lpFileHead,__in DWORD dwRva); private: PVOID m_pe_base_address; //WINDOWS pe映射基址 PIMAGE_NT_HEADERS m_nt_head; //WINDOWS pe nt head HANDLE m_pe_mapfile; HANDLE m_pe_file; DWORD m_pe_size; //PE 文件大小 wchar_t m_pe_path[MAX_BUFFER_SIZE]; public: PEoption m_pe_option; //PE Header 的信息 };
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!