-
-
求AlignSize的详细介绍
-
发表于:
2010-5-25 13:48
5001
-
《加密解密3》16章 P444页有这样的代码:
// 读DOS头
ReadFile(hFile,&dosHeader, sizeof(dosHeader), &NumberOfBytesRW, NULL);
// 定位到PE头起始处e_lfanew
SetFilePointer(hFile,dosHeader.e_lfanew, NULL, FILE_BEGIN);
// 读出PE头
ReadFile(hFile,&ntHeaders, sizeof(ntHeaders), &NumberOfBytesRW, NULL);
// 获取文件大小等信息
nFileSize = GetFileSize(hFile,NULL);
nSectionNum = ntHeaders.FileHeader.NumberOfSections;
nImageSize = ntHeaders.OptionalHeader.SizeOfImage;
nFileAlign = ntHeaders.OptionalHeader.FileAlignment;
nSectionAlign = ntHeaders.OptionalHeader.SectionAlignment;
nHeaderSize = ntHeaders.OptionalHeader.SizeOfHeaders;
// 修正可能存在的映象大小没有对齐的情况************************
m_nImageSize = AlignSize(nImageSize, nSectionAlign);//****
//*********************************************************
// 申请内存用于保存映象
m_pImageBase = new char[m_nImageSize];
…………………………………………………………………………………………………………
请教加红字体是怎么对齐内存的,对齐的是哪断内存?(最好有AlignSize的资料)
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课