C++语言: ExpandSection
BOOL CPatch::ExpandSection( PBYTE pImage, int ExpandSize, int SectionID)
{
if ( !InitPeHelp( pImage))
{ returnfalse;
}
int iExpandVsize; [I]//对齐后需要扩展的Vsize[/I] int iExpandRsize; [I]//对齐后需要扩展的Rsize[/I]
PBYTE pNewImageBase; [I]//指向扩展后的文件镜像[/I] int iNewImageSize; [I]//新文件的ImageSize[/I]
PDWORD pNames = PDWORD( pNewImageBase + pNewExportDirectory->AddressOfNames); for ( int i = 0; i < pNewExportDirectory->NumberOfNames; i++)
{
[I]//__asm int 3;[/I]
pNames[i] += pNames[i] >= iTheBreakRVA ? iExpandVsize : 0;
[I]//printf( "\r\nExportAPI \r\nName :%s \r\nRVA %X\r\n", pNames[i] + pNewImageBase, pNames);
}
PDWORD pFuntions = PDWORD( pNewImageBase + pNewExportDirectory->AddressOfFunctions); for ( int i = 0; i < pNewExportDirectory->NumberOfFunctions; i++)
{