首页
社区
课程
招聘
[求助]13章静态脱壳光盘代码问题
发表于: 2008-8-22 21:38 4383

[求助]13章静态脱壳光盘代码问题

2008-8-22 21:38
4383
316行         
        //文件大小检测
        //有问题,循环检测没啥意义
        PIMAGE_SECTION_HEADER ps = psbase;
        dwProbeSize = 0;       
        for (int i = 0; i < ph->FileHeader.NumberOfSections; i++)
        {
                if (ps->PointerToRawData >= dwProbeSize)
                        dwProbeSize = ps->PointerToRawData + ps->SizeOfRawData;
        };
这个循环个人感觉应该加上 ps++; 这句,不知对否。

i
void *RvaToPointer(void *pMap, DWORD Rva)
{
        int i = IndexOfRva(pMap, Rva);
        if (i < 0)
        {
                if (i = -2) return NULL;
                return ((BYTE *)pMap + Rva);  //i=-1
        }
        else
        {
                PIMAGE_DOS_HEADER pd = (PIMAGE_DOS_HEADER)pMap;
                PIMAGE_NT_HEADERS ph = (PIMAGE_NT_HEADERS)((BYTE *)pMap + pd->e_lfanew);
                PIMAGE_SECTION_HEADER ps = (PIMAGE_SECTION_HEADER)((BYTE *)ph + sizeof(IMAGE_NT_HEADERS));
                ps += i;
                return ((BYTE *)pMap + ps->PointerToRawData + Rva - ps->VirtualAddress);                               
        };
}
这个函数,i=-1时,文件什么情况下会这样啊,还有效么?
另外最后一句返回为什么写成这样?

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
没看过代码...也没耐心下代码看...原理理解了,自己写吧...即使经过严格测试,也是什么情况都可能的...越大的工程就越难保证没有BUG
2008-9-11 05:33
0
游客
登录 | 注册 方可回帖
返回
//