飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2233|回复: 0

浅谈脱壳中的Dump技术9

[复制链接]
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-5-26 21:43:04 | 显示全部楼层 |阅读模式
    本帖最后由 whypro 于 2010-5-27 17:36 编辑

    //下面移动到节表前面
            IMAGE_DOS_HEADER myDosHeader;
            DWORD NumberOfBytesRead;   
            ReadFile(hFile,(LPVOID)&myDosHeader,sizeof(IMAGE_DOS_HEADER),&NumberOfBytesRead,NULL);
            SetFilePointer(hFile,myDosHeader.e_lfanew+sizeof(DWORD),NULL,FILE_BEGIN);
        IMAGE_FILE_HEADER myNtHeader;
            ReadFile(hFile,(LPVOID)&myNtHeader,sizeof(IMAGE_FILE_HEADER),&NumberOfBytesRead,NULL);
            int nSectionCount;
            nSectionCount = myNtHeader.NumberOfSections;             // 保存Section个数
            // 过了IMAGE_NT_HEADERS结构就是IMAGE_SECTION_HEADER结构数组了,注意是结构数组,有几个Section该结构就有几个元素
            // 这里动态开辟NumberOfSections个内存来存储不同的Section信息
            IMAGE_SECTION_HEADER *pmySectionHeader = (IMAGE_SECTION_HEADER *)calloc(nSectionCount, sizeof(IMAGE_SECTION_HEADER));
            SetFilePointer(hFile,myDosHeader.e_lfanew + sizeof(IMAGE_NT_HEADERS),NULL,FILE_BEGIN);
        ReadFile(hFile,(LPVOID)pmySectionHeader,sizeof(IMAGE_SECTION_HEADER)*nSectionCount,
                         &NumberOfBytesRead,NULL);
            //移动回到节表的开始,准备写入
            SetFilePointer(hFile,myDosHeader.e_lfanew + sizeof(IMAGE_NT_HEADERS),NULL,FILE_BEGIN);
            for (int i = 0; i < nSectionCount; i++, pmySectionHeader++)
            {
                    //将RA=RVA ,RS=RVS
                    pmySectionHeader->SizeOfRawData=pmySectionHeader->Misc.VirtualSize;
                    pmySectionHeader->PointerToRawData=pmySectionHeader->VirtualAddress;
                    //将修改好的数值写回
                    WriteFile(hFile,(LPVOID)pmySectionHeader,sizeof(IMAGE_SECTION_HEADER),&NumberOfBytesRead,NULL);
            }
            // 恢复指针
            pmySectionHeader -=nSectionCount;

            if (pmySectionHeader != NULL)          // 释放内存
            {
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表