将文件读取到内存、打印pe结构
2015-06-16 14:01
435 查看
#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; }
相关文章推荐
- PHP根据生日计算年龄(周岁)
- Hadoop之——Flume笔记
- Xen安全架构sHype/ACM和XSM/Flask的相关网络资源
- strdup函数的用法
- iOS版本号,build号获取,根据字符串格式长短动态计算uilabel的size等
- Google推荐的图片加载库Glide介绍
- log4j之NDC、MDC
- vsftpd配置用户是否限制在主目录
- 限制QLineEdit的数值输入范围
- [LeetCode]Implement Trie (Prefix Tree)
- P2P的原理和常见的实现方式
- 11.线性分类模型
- GRE issue写作范文之实用的意义
- 怎样VS2013下安装Qt5的插件
- JNI学习总结之:java调用native函数以及native函数回调java类成员方法
- 剖析 Linux hypervisor
- android ViewDragHelper 实现抽屉滑动效果
- 【SuperMap .Net 组件】地图与场景同步(一)同步的十字丝
- Android实现 再按一次退出 的三种方法 durationTime、timerTask 和Handler
- ios sqlite3