PEFile.h
上传用户:shouhua
上传日期:2014-12-06
资源大小:5685k
文件大小:1k
源码类别:

杀毒

开发平台:

Visual C++

  1. // PEFile.h: interface for the CPEFile class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_PEFILE_H__BC746100_7BF3_11D4_8B4C_DF3F74FBAB11__INCLUDED_)
  5. #define AFX_PEFILE_H__BC746100_7BF3_11D4_8B4C_DF3F74FBAB11__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "pe.h"
  10. class CPEFile  
  11. {
  12. // Public methods
  13. public:
  14. CPEFile(HWND hwnd = NULL);
  15. virtual ~CPEFile();
  16. bool  LoadExecutable(char *filename);
  17. bool  WriteInfos(char *filename);
  18. bool  SaveExecutable(char *filename);
  19. bool  SavePartialExecutable(char *filename, DWORD start, DWORD length);
  20. bool  SaveHeaderOnly(char *filename);
  21. bool  FixHeader();
  22. bool  UpdatePEVars(bool fix_sections = false);
  23. bool  RebuildImport(void **name_import);
  24. int   FindSectionIndex(DWORD addr);
  25. DWORD RVA2Offset(DWORD addr);
  26. // Protected methods
  27. protected:
  28. // Protected datas
  29. public:
  30. HWND m_hwnd; // for messagebox (can be NULL)
  31. char m_filename[_MAX_PATH]; // name of executable
  32. unsigned char *m_buffer; // buffer of executable
  33. long m_size; // size of executable
  34. // pe infos
  35. unsigned int m_dosstub_size;
  36. PEHeader *m_pe_header;
  37. StdOptionalHeader *m_std_header;
  38. NTOptionalHeader *m_nt_header;
  39. ROMOptionalHeader *m_rom_header;
  40. DataDirectory *m_directories;
  41. Section *m_sections;
  42. };
  43. #endif // !defined(AFX_PEFILE_H__BC746100_7BF3_11D4_8B4C_DF3F74FBAB11__INCLUDED_)