读PE文件的3大结构体_PE文件加载器
来源:互联网 发布:赚钱最快软件 编辑:程序博客网 时间:2024/05/29 10:30
#include"stdio.h"#include"stdlib.h"#include"windows.h"int main(){IMAGE_DOS_HEADER imafe_dos_header;//dos头IMAGE_NT_HEADERS image_nt_headers;//pe头IMAGE_SECTION_HEADER *image_section_header;//区块HANDLE jubing1;DWORD shijichicuen=0;//实际读取大小BOOL zhenjia;LARGE_INTEGER pianyi;LARGE_INTEGER pianyi_xin;//文件指针的新值 int j = 0;//区块的大小jubing1 =CreateFile(L"C:\\Users\\lisaisai\\Desktop\\第15课第01节加工资加账号系统完善.exe", FILE_ALL_ACCESS, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); //FILE_ATTRIBUTE_NORMAL 普通文件zhenjia=ReadFile(jubing1, &imafe_dos_header, sizeof(IMAGE_DOS_HEADER), &shijichicuen, NULL);printf("是否读取成功真假%d\n", zhenjia);printf("开头%s\n", (char*)&imafe_dos_header.e_magic);printf("PE头开始位置(指出PE头文件的偏移位置)%x\n", imafe_dos_header.e_lfanew);pianyi.QuadPart = imafe_dos_header.e_lfanew;SetFilePointerEx(jubing1,pianyi,&pianyi_xin, FILE_BEGIN);//移动指针位置 128个//printf("文件指针的新值%x\n",pianyi_xin);zhenjia = ReadFile(jubing1, &image_nt_headers, sizeof(IMAGE_NT_HEADERS), &shijichicuen, NULL);printf("开头%s",(char*) &image_nt_headers.Signature);j = image_nt_headers.FileHeader.NumberOfSections;printf("区块的数量%d\n", image_nt_headers.FileHeader.NumberOfSections);printf("PE头里的 第3个结构体的大小%x\n", image_nt_headers.FileHeader.SizeOfOptionalHeader);pianyi.QuadPart += sizeof(IMAGE_NT_HEADERS);SetFilePointerEx(jubing1, pianyi, &pianyi_xin, FILE_BEGIN);//IMAGE_NT_HEADERS的大小是固定的 一般情况这样写 精准要0x18+e0 image_section_header = malloc(sizeof(IMAGE_SECTION_HEADER)*j); //IMAGE_SECTION_HEADER 大小不固定zhenjia = ReadFile(jubing1, image_section_header, sizeof(IMAGE_SECTION_HEADER)*j, &shijichicuen, NULL);for (int i=0;i<j;i++){printf("区块的名字%s\n", &image_section_header[i].Name);}CloseHandle(jubing1);free(image_section_header);system("pause");return 1;}
0 0
- 读PE文件的3大结构体_PE文件加载器
- 20170910WindowsPrj05_文件基础操作_PE结构
- PE文件结构及其加载机制
- windows PE文件结构及其加载机制
- windows PE文件结构及其加载机制
- PE总结3---PE文件结构DOS文件头
- PE文件结构
- PE文件结构
- PE文件结构
- PE文件结构定义
- PE文件结构
- PE文件结构 (转贴)
- PE文件结构
- PE文件结构分析
- PE文件结构剖析
- PE文件结构详解
- pe文件结构
- PE文件结构(一)
- 排序——冒泡排序
- iOS数据存储--数据库
- CODE[VS] 天梯 1204 寻找子串位置
- redis-配置文件详解
- hashmap源码解析
- 读PE文件的3大结构体_PE文件加载器
- 下载一张新闻图片
- Python34及ipython的安装
- Java学习笔记之五《初始化及类的类的加载》
- 面向对象的设计原则
- Linux Ubuntu下安装PPA源软件
- 图片日志
- 一些零散的方法和技巧
- iOS protobuf3.1.0使用