首页
社区
课程
招聘
[分享]分享甲壳2部分源码之相对虚拟地址到相对可执行文件中地址的转换:RvaToRaw
发表于: 2011-9-15 11:20 5166

[分享]分享甲壳2部分源码之相对虚拟地址到相对可执行文件中地址的转换:RvaToRaw

2011-9-15 11:20
5166
char* RvaToRaw(char* pFile,DWORD rva)
{
	IMAGE_DOS_HEADER* pdh=(IMAGE_DOS_HEADER*)pFile;
	IMAGE_NT_HEADERS* pnh=(IMAGE_NT_HEADERS*)(pFile+pdh->e_lfanew);
	DWORD sectionnum=pnh->FileHeader.NumberOfSections;
	IMAGE_SECTION_HEADER* psh=(IMAGE_SECTION_HEADER*)(pnh+1);
	for(DWORD i=0;i<sectionnum;i++)
	{
		if(psh[i].VirtualAddress<=rva&&rva<=(psh[i].VirtualAddress+psh[i].SizeOfRawData))
		{
			DWORD radr=rva-psh[i].VirtualAddress+psh[i].PointerToRawData;
			return (pFile+radr);
		}
	}
	return NULL;

}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 136
活跃值: (1475)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
马甲哥这是在放源码哇,支持支持,来个demo吧
2011-9-15 11:31
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
膜拜甲哥的无敌代码。。
2011-9-15 12:31
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
4
膜拜甲壳哥的无敌代码,甲壳卡死了!
2011-9-15 13:03
0
游客
登录 | 注册 方可回帖
返回
//