将文件读取到内存、打印pe结构

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>

#define STREAMBUFFER 1024
#define FILEPATHSIZE 256

/**
    将一个文件读到内存
return
        成功    首地址
        失败    0
*/
void* getAdrr(char filePath[FILEPATHSIZE])
{
    char* fileP;
    char* temp;
    FILE* finp;
    FILE* foutp;
    long fileLen,readLen;
    finp = fopen( filePath, "rb" );
    foutp= fopen("e:\\notepad_cpy.exe", "wb");
    if(finp == NULL || foutp == NULL)
    {
        printf("fopen error !");
        return 0;
    }
    fseek(finp , 0, SEEK_END);//指针移到文件尾
    fileLen = ftell(finp);//计算文件头到当前指针的距离
    rewind(finp);//将文件指针置首

    temp = fileP = (char*)malloc(sizeof(char)*fileLen + 1);
    if(fileP)
    {
        return 0;
    }
    memset(fileP,0,sizeof(char)*fileLen + 1);
    while( (readLen = fread( temp, sizeof( char ), STREAMBUFFER, finp )) != 0)
    {
        fwrite( temp, sizeof( char ), readLen, foutp );
        temp = temp+readLen;
    }
    fclose(finp);
    fclose(foutp);
    return fileP;
}

void analysisPE(void* fp)
{

}
int main()
{
    char filePath[FILEPATHSIZE];
    strcpy(filePath,"e:\\notepad.exe");
    getAdrr(filePath);
    return 0;
}
时间: 2024-10-01 10:51:31

将文件读取到内存、打印pe结构的相关文章

打印 PE导入导出表

#include<Windows.h> #include<iostream> #include<stdio.h> #include<stdlib.h> #include<commdlg.h> using namespace std; DWORD dwFileSize; BYTE* g_pFileImageBase = 0; PIMAGE_NT_HEADERS g_pNt = 0; DWORD RVAtoFOA(DWORD dwRVA); //显示

67.文件映射为内存进行操作与多线程 以及 文件映射到内存根据索引进行内存来实现读取多线程操作

问题引出: //有限的额内存情况怎么干活//索引载入内存,多线程//索引映射为内存 一.载入内存,按行读取进行多线程 定义路径以及其他信息 1 char path[256] = "kaifangX.txt"; 2 char indexpath[256] = "indexkf.txt"; 3 #define N 20151574 创建索引 1 struct index 2 { 3 int *pindex;//地址 4 int length; 5 }allindex =

iOS将大文件映射到内存(读取大文件)

http://blog.csdn.net/xyt243135803/article/details/40995759 在<中国区GPS偏移纠正(适用于Google地图)>一文中曾读取一个78M的大数据文件,一开始采用了NSData的dataWithContentsOfFile:方法.不少人反馈说如果直接使用,将会耗尽iOS的内存.其实这个是可以改善的. NSData还有一个API: + (id)dataWithContentsOfFile:(NSString *)path options:(N

刷新手机的内存,即重新读取手机内存,以便识别内存文件

最近遇到一个问题:把图片push到手机内存之后,galley app不能实时读取手机的内存,所以刚push的文件显示不出来,只能adb reboot手机才能重新读取手机内存,这样就能在app里边看到. 总会重启手机不是很好,而且影响测试速度,所以找了个刷新手机内存的办法,即push完图片之后,就执行 adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/shell/emulated/0 即可,就能

VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示

Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E"Const TR_COL_NAME = "C"Const TR_COL_COUNT = "D"Const TR_COL_TREE_START = "F"Const TR_ROW_HEIGHT = 23Const TR_COL_LINE_WIDT

手写PE结构解析工具

PE格式是 Windows下最常用的可执行文件格式,理解PE文件格式不仅可以了解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,而有些技术必须建立在了解PE文件格式的基础上,如文件加密与解密,病毒分析,外挂技术等,在PE文件中我们最需要关注,PE结构,导入表,导出表,重定位表,下面将具体介绍PE的关键结构,并使用C语言编程获取到这些结构数据. 参考文献: [琢石成器 Win32汇编语言程序设计 - 罗云彬] 整理学习笔记,精简内容,翻译汇编代码C语言化 在任何一款操作系统

PE结构解析的代码

0x00 32位程序的PE结构 DOS头 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Relocations WORD e_cparhdr; // Size of header in paragraph

(九)android 中数据存储与访问——保存文件到手机内存

9.1手机的存储区域 手机的存储区域通常有两个地方:一:手机内部存储空间,理解成一块微硬盘/data/data/:二:外部存储空间SD卡 9.2方法捕获异常的原则 如果方法有返回值,则用try catch捕获,如果方法的返回值是Void类型,则使用throws抛出异常 9.3 上下文Context Context:是一个类,提供一些方便的api 可以得到应用程序的环境,例如:环境的包名,安装路径,资源路径,资产的路径 9.4 保存文件到手机内存——登陆界面例子程序 9.4.1 项目需求 用户登陆

一文贯通python文件读取

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 24.0px 'Helvetica Neue'; color: #3e3e3e; -webkit-text-stroke: #3e3e3e} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 16.0px 'Helvetica Neue'; color: #8c8c8c; -w