12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /************************************************************************/
- /* Copyright (C), 2016-2020, [Jeff], 保留所有权利;
- /* 模 块 名:;
- /* 描 述:;
- /*
- /* 版 本:[V];
- /* 作 者:[Jeff];
- /* 日 期:[1/21/2018];
- /*
- /*
- /* 注 意:;
- /*
- /* 修改记录:[Jeff];
- /* 修改日期:;
- /* 修改版本:;
- /* 修改内容:;
- /************************************************************************/
- #ifndef _MEMLOADLIBRARY_HEAD_
- #define _MEMLOADLIBRARY_HEAD_
- #pragma once
- typedef BOOL (__stdcall *ProcDllMain)( HINSTANCE, DWORD, LPVOID );
- class CMemLoadLibrary
- {
- public:
- CMemLoadLibrary(void);
- virtual ~CMemLoadLibrary(void);
- BOOL MemLoadLibrary( void *lpFileData , int DataLength); // Dll file data buffer
- FARPROC MemGetProcAddress(LPCSTR lpProcName);
- private:
- BOOL isLoadOk;
- BOOL CheckDataValide(void *lpFileData, int DataLength);
- int CalcTotalImageSize();
- void CopyDllDatas(void *pDest, void *pSrc);
- BOOL FillRavAddress(void *pBase);
- void DoRelocation(void *pNewBase);
- int GetAlignedSize(int Origin, int Alignment);
- private:
- ProcDllMain pDllMain;
- private:
- DWORD pImageBase;
- PIMAGE_DOS_HEADER pDosHeader;
- PIMAGE_NT_HEADERS pNTHeader;
- PIMAGE_SECTION_HEADER pSectionHeader;
- };
- #endif //_MEMLOADLIBRARY_HEAD_
|