C语言 PE练习题
admin
2023-03-02 20:41:00
0次

#include

 

#include "stdafx.h"

 

#include "windows.h"

 

#include

 

DWORD ReadPEFile(IN LPSTR lpszFile,OUT LPVOID* pFileBuffer )

 

{

 

FILE* PF = NULL;

DWORD FileSize = 0;

LPVOID PFileBuffer = NULL;

 

PF = fopen(lpszFile,"rb");

 

if (!PF)

{

 

printf("fail\n");

fclose(PF);

   return 0;

}

 

fseek(PF,0,SEEK_END);

FileSize=ftell(PF);           

fseek(PF,0,SEEK_SET);         

 

    PFileBuffer  = malloc(FileSize);

 

if(!PFileBuffer)

{ 

printf("%d\nApplication space failed\n ",PFileBuffer);

free(PFileBuffer);

fclose(PF);

return 0;

 

}

 

 size_t n =fread(PFileBuffer,FileSize,1,PF);

 

 if(!n)

{

 

printf("%d\nApplication space failed\n",n);

free(PFileBuffer);

fclose(PF);

return 0;

 

 }

 

//关闭文件

 

 *pFileBuffer = PFileBuffer;

PFileBuffer = NULL;

fclose(PF);

return FileSize;

 

}

 

int main(int argc, char * argv[])

 

 {

 

   size_t BufferAddress =  ReadPEFile("C:\\Users\\Administrator\\Desktop\\notepad1.exe", 0); //第二个参数是用来返回PE的首地址,怎么创建空间让他存?

 

return 0;

 

}


ReadPEFi360问答le的第二个参数是个二维坏北夫球指针,它不需要创建空间的,它在ReadPEFile中由

   PFileBuffer  = malloc(FileSize);

这个来申请空间,而*pFileBuffer = PFi划班副占leBuffer;就是将空间的地址指向它的

你可以直接定义一个一维字符指针,将它的地址作为参数就可以了:

 char *pbuff;

 size_t BufferAddress = ReadPEFile("t.exe", (LPVOID *)&pbuff); //对某些编译器,要强制转换,不然的警告的

要说明的是,你的程序结构不是很合理,你在子函数中今怀慢区团笑圆去础快经申请内存,且要在主函数中释放它,这样结构中较混乱且容易产生内存泄露,微软有很多类似的SDK函数可参考,第一次,以0调用函数,返回文件长度,第二次就可以带一个在主函数申请好内存的指针存放数据内容了(这个要修改你的ReadPEFile函数)。

相关内容

热门资讯

十月,你得来大理“赏一赏” 寒意渐起进入秋天大理迎来一年中绝美的赏景时节此前大理融媒介绍了大理市的赏秋地点现在,从大理出发前往周...
新华鲜报|山河锦绣 国庆节假期...   新华社北京10月9日电 题:山河锦绣 国庆节假期8.26亿人次竞出游  新华社记者徐壮  山河迎...
新华社消息|国庆节假期国内出游...   记者:徐壮、周玮  编导:季晓庄  新华社音视频部制作
19.6万人次游客国庆长假游自... 封面新闻记者 刘恪生国庆长假结束,2026年自贡市沿滩区中秋国庆双节系列文旅活动圆满落幕。假日期间,...
新华视点|当车变成“移动的家”...   新华社北京10月9日电 题:当车变成“移动的家”:这种旅行方式火了  新华社“新华视点”记者张申...
“零碳海岛”的全电暖时光   刚刚过去的“十一”黄金周,辽宁丹东东港市獐岛村碧海环绕、秋山含翠,前来度假的游客穿梭在街巷之间,...
草坪被游客踩出一条路,深圳湾公... “走的人多了也便有了路。”10月7日,有博主在社交平台发帖,并晒出深圳湾公园内一块温馨提示牌。图片显...
国庆假期泰安26家旅游景区(点... 齐鲁网·闪电新闻10月9日讯 金秋十月庆华诞,国泰民安迎客来。国庆假期,泰安市认真贯彻落实国庆假期各...
别跑空!新疆多家景区季节性停运... 记者从新疆文化和旅游厅了解到,因冬季即将来临,新疆部分景区季节性停运、调整开放时间。巴音布鲁克景区自...
甲秀时评 | 激活文旅新动能贵... 国庆假期,花溪区黔陶乡九道拐·追风里日均客流超千人次。在这里,喝咖啡、看画展、赏美景,多元业态交织共...