首页
社区
课程
招聘
[求助]请问dumppe怎么知道这个文件不是pe格式?附dumppe命令结果
发表于: 2009-2-16 04:14 3126

[求助]请问dumppe怎么知道这个文件不是pe格式?附dumppe命令结果

2009-2-16 04:14
3126
【求助】请问dumppe怎么知道这个文件不是pe格式?附dumppe命令结果
请教请教,谢谢先

F:\masm32\bin>dumppe -disasm dos111.exe

DumpPE v1.23 (c) Copyright Tenth Planet Software Intl., C Turvey 1995-1999.
                           All rights reserved. Non-Commercial use only.

dos111.exe                         (hex)           (dec)

.EXE size (bytes)                    236             566
Minimum load size (bytes)            846            2118
Overlay number                         0               0
Initial CS:IP                  0000:0000
Initial SS:SP                  0004:0400            1024
Minimum allocation (para)             81             129
Maximum allocation (para)           FFFF           65535
Header size (para)                    20              32
Relocation table offset               1E              30
Relocation entries                     1               1

'dos111.exe' does not appear to be an Win32 PE Portable Executable file.

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
首先要检查两个签名:先检查DOS MZ签名,确定DOS头有效,再再检查PE\0\0签名,确定有PE头。

在此基础上,要检查很多项目,主要的,要检查optional header中的base、characteristics等项目,以及section table、data directories的合法性。
2009-2-16 21:53
0
雪    币: 40
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢老大
我现在正在学PE文件头
2009-2-16 22:41
0
雪    币: 171
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
#include <stdlib.h>
#include <windows.h>

int main(int argc, char *argv[])
{   char * fileName ;
    HANDLE hFile = NULL;
    IMAGE_DOS_HEADER dosHeader ;
    IMAGE_NT_HEADERS ntHeaders;
    int numOfSections;
    long dwSize = 0;
       printf("请输入文件路径:\n");
    scanf("%s",fileName);

       hFile=CreateFile(fileName,GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,0,OPEN_EXISTING,
   
        FILE_ATTRIBUTE_NORMAL,0);
        
        
         if(hFile == INVALID_HANDLE_VALUE ){
                  printf("failed\n");
         }
    SetFilePointer(hFile,0,0,FILE_BEGIN);
        ReadFile(hFile,&dosHeader,sizeof(dosHeader),&dwSize,NULL);
        if(dosHeader.e_magic !=IMAGE_DOS_SIGNATURE){
                printf("文件不是PE文件!");
               CloseHandle(hFile);
               return 0;
        }
    SetFilePointer(hFile,dosHeader.e_lfanew,0,FILE_BEGIN);
    ReadFile(hFile,&ntHeaders,sizeof(ntHeaders),&dwSize,NULL);
    if(ntHeaders.Signature != IMAGE_NT_SIGNATURE){
         printf("该文件没有PE文件头!\n");
         CloseHandle(hFile);
         return 0;
    }
printf("文件是PE文件!");
        CloseHandle(hFile);
    system("PAUSE");
    return 0;
}
2009-2-21 03:19
0
雪    币: 40
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
老大真是高啊!!!
学习了
万分感谢!!
2009-2-21 04:11
0
游客
登录 | 注册 方可回帖
返回
//