《加密解密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的资料)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)