将记事本的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 @   摸鱼小曹  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示