理解.exe文件的结构原理即运行过程

这篇具有很好参考价值的文章主要介绍了理解.exe文件的结构原理即运行过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近从网上整理了一些关于.exe文件的资料。

目录

一、什么是exe?

二、exe文件结构及原理

三、运行exe

1.操作系统创建进程,主线程

2.系统程序检查.exe文件头。

3.连接器嵌入exe文件头信息

4.导入所有需要的dll

5.初始化c/c++运行时库,初始化运行库的全局变量,内存分配之类的。(初始化dll文件?)

6.初始化之后,执行我们开发人员写的main或者WinMain函数,然后走我们的代码

7. 走完之后,启动函数调用exit()函数,退出进程。

四、exe文件病毒原理


一、什么是exe?

executablefile 即可执行文件。.exe 文件是可以在 Microsoft Windows 中运行的可执行程序。是可执行文件中的一种。它可以(从磁盘)加载到内存中,并用操作系统加载程序执行。如记事本程序notepad.exe ,可以用来编辑文档,如:测试.txt双击打开notepad.exe记事本程序来进行编辑处理。

二、exe文件结构及原理

每个exe文件包含一个文件头和一个可重定位程序的映像(可调用dll)。

简而言之,文件头包含运行加载exe程序所需信息。

三、运行exe

1.操作系统创建进程,主线程

2.系统程序检查.exe文件头。

3.连接器嵌入exe文件头信息

4.导入所有需要的dll

(1).在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个.exe文件时,相应的DLL文件就会被调用。

(2).通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。(类似于java中面向对象中封装的思想)

(3).dll和.exe一样是已经编译好了的可执行代码,但是不可以直接运行,必须有.exe调用它才能够运行。

如下图我们可以看到idea.exe所在文件夹中的dll依赖包:

理解.exe文件的结构原理即运行过程

 

5.初始化c/c++运行时库,初始化运行库的全局变量,内存分配之类的。(初始化dll文件?)

(1).运行时库(Runtime library)通俗的说就是我们的程序运行的时候所依赖的库文件,在Windows平台这些库由微软提供。(接口?)通常运行库是以DLL形式提供的。

(2).为什么c编译器编译好的程序运行时还需要一个运行库?

为什么需要,很显然我们的的程序是跑在操作系统上的,windows也好Linux也罢,从操作系统加载这个exe到程序的main函数需要做很多的事请, 这就是运行库所包含的内容之一。

6.初始化之后,执行我们开发人员写的main或者WinMain函数,然后走我们的代码

7. 走完之后,启动函数调用exit()函数,退出进程。

四、exe文件病毒原理

在exe文件的头部设置一个挂钩(指针),执行此exe文件时先执行病毒,再执行正常的程序。文章来源地址https://www.toymoban.com/news/detail-468262.html

到了这里,关于理解.exe文件的结构原理即运行过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • exe4j打包生成exe文件详细使用教程,示例一个需要加载外部文件的GUI打包过程

    在这里通过举例: 将一个GUI界面工具生成jar包并使用exe可执行文件的过程来演示,其中也会附带打包过程中几种产生的问题。 注意:如果你的GUI工具存在以下问题: 这里同样存在解决方案,不过文案先介绍一种成功的方式: 使用maven将第三方依赖包一同打包生成jar包,使用e

    2024年01月24日
    浏览(34)
  • 安卓平板运行windows虚拟机,安卓平板运行exe文件

    这篇文章主要介绍了安卓平板运行内存小怎么扩展,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。   转自http://www.cnblogs.com/zhcncn/p/3969419.html 1. Notepad++ -\\\"运行\\\"菜单-\\\"运行\\\"按钮 2. 在弹出的窗口内输入以下

    2024年01月23日
    浏览(29)
  • 手机如何运行exe文件游戏,手机如何运行两个微信

    本篇文章给大家谈谈手机如何运行python脚本画画,以及手机如何运行exe文件游戏,希望对各位有所帮助,不要忘了收藏本站喔。 Source code download: 本文相关源码 大家好,小编为大家解答手机python编程软件怎么运行的问题。很多人还不知道在手机上如何运行python,现在让我们一

    2024年01月18日
    浏览(34)
  • qt生成exe文件并运行(详细)

    目的:采用QT写完程序之后,生成exe文件,可以在任意一台PC端上运行 对于采用的演示工具:Qt 5.14.2 1.在QT Creator页面的左下角,在对应的构建套件下将Debug改为Release 2.点击左侧项目进入,修改构建设置中的设置目录,便于个人查找 3.点击运行,在修改的对应目录下找到构建的

    2024年02月13日
    浏览(31)
  • Python生成exe文件运行出现黑框闪退如何查看运行bug?

    cmd进行回车 第一:进入到可执行exe文件目录,如下图所示 第二:输入可执行文件名,然后就会出现报错提示  

    2024年02月16日
    浏览(39)
  • Windows编译开源代码方法之关于lame.exe文件的测试及过程

    可以看到成功编译了源代码为exe也就是可执行文件 在这个例子中,lame的源文件中的INSTALL文件中的说明很全。所以配置好环境之后就可以编译了。主要是学到了不少东西。 之前我一直是在Linux上操作的,Linux对源码的支持度比较好,我也查了原因后面我会放链接。而到了wind

    2024年02月11日
    浏览(26)
  • pyinstaller使用后exe文件无法正常运行的问题解决

    本次发布是记录一下我在学习过程中遇到的问题,以免后来者入坑! 第一次尝试用pyinstaller打包python脚本,结果发现打包成功之后的exe闪了一下就消失了(开始怀疑自己),闪退太快无法截图  解决思路: 1.python文件只有打印操作,所以exe文件是执行过的,可以在python文件中

    2024年02月08日
    浏览(33)
  • Python生成exe文件运行黑框闪退问题解决办法

    在进行python文件生成exe文件的过程中,生成的exe文件运行总是黑框闪退,找了蛮多博客解释的并不清晰,在B站学习了一下,将整个过程记录下来,仅供大家参考。 首先说明我写的程序是爬取链接,程序是可以运行没问题的。 下面进行生成exe文件的操作: 选择你编写程序的文

    2024年02月09日
    浏览(31)
  • 【Java】java | 将可运行jar打包成exe可执行文件

            1、javafx桌面程序,但又不想安装jre环境         2、需要将可执行jar打包成exe         3、使用工具exe4j 1、下载exe4j 2、安装 说明1: 在d盘建个exe4j的文件夹 说明2: 建个output文件jar,存放生成后的exe 3、运行 4、目录介绍 Welcome: 工具介绍;Open可以打开历史的

    2024年02月03日
    浏览(33)
  • 二、Linux入门| shell运行原理及Linux权限的理解

    centos7的安装方式 1、源码安装(较复杂) 2、rpm包安装(较复杂,未解决依赖关系) 3、yum安装(不用编译源码,不用解决软件的依赖关系,门槛较低) 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了,于是有些人把一

    2024年02月03日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包