如何获取重定位表数据
像lordpe一样 总是找不到里面的数据。求代码。!

------解决思路----------------------
百度搜 PE文件解析工具源代码。一大堆。
相关书籍也说得很详细了。
------解决思路----------------------
参考:
"PEmodifier.rar "
http://download.csdn.net/detail/schlafenhamster/2476867
"本程序用于显示PE文件格式,及资源。难点在于对话框的创建和显示,基本没有不能创建的对话框。"
------解决思路----------------------
// Relocation
IMAGE_BASE_RELOCATION * pReloca;
WORD * pOffsetDat;
DWORD dwTolOffset;
DWORD dwBlockOffset;
WORD wOneDat;
WORD wOneType;
DWORD dwOneOffset;
m_PeInfo.RelocOffsetList.clear();
dwOffset = m_PeInfo.pNtHead->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress;
if(dwOffset == 0)
goto RelocationEnd;
pReloca = (IMAGE_BASE_RELOCATION *)(pImgData + dwOffset);
for(;;)
{
if(pReloca->VirtualAddress == 0
------解决思路----------------------
pReloca->SizeOfBlock == 0)
break;
dwBlockOffset = pReloca->VirtualAddress;
nCount = (pReloca->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION))/sizeof(WORD);
pOffsetDat = (WORD *)(pReloca + 1);
for(i=0; i<nCount; i++)
{
wOneDat = *pOffsetDat;
wOneType = wOneDat >> 12;
dwOneOffset = wOneDat & 0x0FFF;
if(wOneType == 0x03)
{
dwTolOffset = dwBlockOffset + dwOneOffset;
NLog::DbgLog("Relocation: %08X", dwTolOffset);
m_PeInfo.RelocOffsetList.push_back(dwTolOffset);
}
else
{
NLog::DbgLog("Relocation Unknow Type!");
}
}
pReloca = (IMAGE_BASE_RELOCATION *)((BYTE *)pReloca + pReloca->SizeOfBlock);
}