将记事本的exe文件读取到内存,并返回读取后在内存中的地址

#include "stdafx.h"
#include <malloc.h>

int file_length(FILE *fp);

void fun_02()
{
    FILE *fp1 = NULL; //定义一个文件指针
    int FpSize = 0; //初始化exe文件长度
    fp1 = fopen("C:\\Windows\\System32\\notepad.exe","rb");//打开文件(读和写)
    FpSize = file_length(fp1);//获取exe大小
    char*    FileBuffer = (char *)malloc(FpSize);//开辟一段动态内存,用FileBuffer指向
    if(FileBuffer != NUll)
    {
        fread(FileBuffer,FpSzie,1,fp1);
    }//将.exe写入内存中
    int addr = (int)FileBuffer;
    printf("%x",FileBuffer);//返回内存编号
    free(FileBuffer);
    fclose(fp1);//释放关闭    
}

int file_length(FILE *fp)
{
    int num;//初始化一个计算器
    fseek(fp,0,SEEK_END);
    num = ftell(fp);
    fseek(fp,0,SEEK_SET);//使用完毕后,要将文件指针指向文件开始
    return num;
}

int main(int argc,char* argv[])
{
    fun_02();
    getchar();
    return 0;
}

 

posted @ 2023-03-16 15:18  摸鱼小曹  阅读(104)  评论(0编辑  收藏  举报