分析exe⽂件结构
转学需要哪些手续 小学生分析exe⽂件结构
⼀、EXE⽂件概念
EXE File英⽂全名executable file ,译作可执⾏⽂件,可移植可执⾏ (PE) ⽂件格式的⽂件,它可以加载到内存中,并由操作系统加载程序执⾏,是可在操作系统存储空间中浮动定位的可执⾏程序。如记事本程序 ,可以⽤来编辑⽂档,如:测试.txt双击打开记事本程序来进⾏编辑处理。
⼆、EXE⽂件结构
EXE⽂件分为两个部分: EXE⽂件头和程序本体。exe⽂件⽐较复杂,属于⼀种多段的结构,是DOS最成功和复杂的设计之⼀。每个exe ⽂件包含⼀个⽂件头和⼀个可重定位程序的映像。⽂件头包含MS-DOS⽤于加载程序的信息,例如程序的⼤⼩和寄存器的初始值。⽂件头还指向⼀个重定位表,该表包含指向程序映像中可重定位段地址的指针链表。MS-DOS通过把该映像直接从⽂件复制到内存加载exe程序,然后调整定位表中说明的可重定位段地址。定位表是⼀个重定位指针数组,每个指向程序映像中的可重定位段地址。预知详细原理与结构,请点击
哪家美容院上表是EXE⽂件头
三、EXE⽂件打开⽅法
常见的收集数据的方法有电影我和我的家乡简介由于EXE⽂件⽐较特殊,打开⽅式也有点特殊,需指定格式,见下⾯代码:
其中,ios_base 是C++标准程序库中的⼀个类,定义于<>头⽂件中。ios_base 类封装了C++标准中的流输⼊输出中不依赖于读写的数据的类型的基本信息,如格式化信息、异常状态、事件回调函数等。
关于PE ⽂件的头,可以参考。[cpp]
01. #include<iostream> 02. #include<string> 03. #include<fstream> 04. #include<ios> 05. using namespace std; 06. 07. const int BUFFER_SIZE=1024; 08. 09. void update(ifstream& in) 10. { 11. if (!in) 12. { 13. return ; 14. } 15. std::streamsize length; 16. char buffer[BUFFER_SIZE]; 17. while (!in.eof()) 18. { 19. in.read(buffer, BUFFER_SIZE); 20. length = in.gcount(); 21. if (length > 0) 22. { 23. printf("%s",buffer); 24. } 25. } 26. in.close(); 27. } 28. 29. 30. int main() 31. { 32. update(ifstream("1.exe", ios_base::binary)); 33. return 0; 34. }环保衣服怎么做
>工商管理专业课程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论