判断是否PE文件的程序 借个地方放下
#include "stdio.h"#include "stdlib.h"
#include "string.h"
void main(int argc,char *argv[])
{
FILE *fp;
int i,count=0;
char p[3];
char a[3]="PE";
void qutou(FILE *fp,char *p);
if(argc<2){
printf("参数过少");
exit(0);
}
for(i=0;*(argv[1]+i)!='\0';i++)
if(*(argv[1]+i)=='.') break;
if(*(argv[1]+i)=='\0'){
printf("请输入文件扩展名");
exit(0);
}
if((fp=fopen(argv[1],"rb"))==NULL){
printf("erroe");
exit(0);
}
qutou(fp,p);
if(!strcmp(p,a))
printf("这是个PE文件");
fclose(fp);
}
void qutou(FILE *fp,char *p)
{
unsigned int n;
if(fseek(fp,0x3c,SEEK_SET)){
printf("这不是个PE文件1111");
exit(0);
}
fread(&n,sizeof(int),1,fp);
if(fseek(fp,n,SEEK_SET)){
printf("这不是个PE文件");
exit(0);
}
fread(p,sizeof(char),2,fp);
*(p+2)='\0';
}
[ 本帖最后由 zhu224039 于 2012-11-30 15:49 编辑 ]