关于PE文件的问题

问题描述

最近开始了解PE文件的结构,有些疑问,请教下高手!OEP(AddressOfEntryPoint)它是相对虚拟地址?相对于基地址ImageBase而言?它是程序入口地址,它与节表中代码段的那个相对虚拟地址差别在哪,也就是说程序入口地址和代码段地址有什么差别?代码段难道不是程序入口地址?

解决方案

解决方案二:
代码段的起始地址当然不一定是入口啊。举个最简单的例子:如果用汇编写程序,从START标号之后的指令跳转到它之前的指令去执行,并不算一件难事啊。
解决方案三:
可以再打个比方,入口地址有点像C语言的main函数,这里我们暂不考虑程序在main之前需要执行的动作。但不管怎样,main函数的代码不见得必需排布在其它所有函数之前。只是它是入口,其它函数不是而已。其它函数的CODE即使排布在main的前面,执行时也要先跳到main,从main开始执行。
解决方案四:
引用2楼steedhorse的回复:

可以再打个比方,入口地址有点像C语言的main函数,这里我们暂不考虑程序在main之前需要执行的动作。但不管怎样,main函数的代码不见得必需排布在其它所有函数之前。只是它是入口,其它函数不是而已。其它函数的CODE即使排布在main的前面,执行时也要先跳到main,从main开始执行。

已经解释的很清楚了...

时间: 2024-08-31 02:21:27

关于PE文件的问题的相关文章

托管PE文件

中间语言 在.NET框架中,公共语言基础结构使用CLS来绑定不同的语言.通过要求不同的语言至少要实现CTS包含在CLS中的部分,公共语言基础结构允许不同的语言使用.NET框架.因此,在.NET框架中,所有的语言(C#.VB.NET.Effil.NET等)最后都被转换为了一种通用语言:微软中间语言(Microsoft Intermediate Language,MSIL,以下简称IL). IL是一种介于高级语言和基于Intel的汇编语言的中间语言,是.NET平台的汇编语言.当用户编译一个.NET程

查看PE文件内容的小工具——CliPeViewer

CliPeViewer是老刘编写的一个WinForm小程序,能够用来查看托管PE文件中的 各种结构.目前有很多能够查看PE信息的程序,支持.NET的也有.不过, CliPeViewer与他们的最大区别在于,这个小程序更在意原汁原味地暴露一个PE文 件中的内容,尤其是对于文件中的每个结构.每个字段,除了显示了它的值之外 ,还显示出了它在PE文件中的偏移量和原始数据. 坦率地说,CliPeViewer还没有写完.尚欠缺的功能包括:显示IL指令.托管 方法的定义(方法头.异常处理块等),以及对元数据签

CFF Explorer 查看/修改PE文件资源

  CFF Explorer 查看/修改PE文件资源          使用CFF Explorer可以查看和修改PE文件的资源,可以查看dll文件可供调用的函数,修改函数入口地址达到制造崩溃屏蔽功能的目的.CFF Explorer具有类似DEPENDS的依赖分析功能/hex编辑器/快速反汇编等功能,详见下图: PE(Portable Execute)文件被称为可移植的执行体,常见的EXE.DLL.OCX.SYS.COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被

Microsoft图标显示错误,攻击者可任意隐藏恶意PE文件

本文讲的是Microsoft图标显示错误,攻击者可任意隐藏恶意PE文件, Windows中的图标显示错误允许攻击者使用特殊图标伪装PE文件,从本地设备自动"借用"其他常用图标,从而诱惑用户点击它们.这个漏洞目前已经根植在Windows的图像处理代码中了,根据我的分析,至少从Windows 7开始,该漏洞就已经出现,并且仍然存在于Windows 10的最新版本中. 我已经将该错误于2017年6月向微软正式报告了,而且本文对漏洞的分析也经过了微软的许可. 漏洞的发现 我在研究最近一批恶意P

为PE文件添加新节显示启动信息

病毒并不神秘,也不复杂.相当多的大侠已经在这方面作出了杰出的贡献,例如 29A 组织,我对他们的崇拜之情啊,真是--咳咳,先别扔鸡蛋.其实我想说的是:技术是一柄双刃剑,我们应该把它运用在对社会有益的事情上.所以请勿利用本文的代码进行违法违纪的活动,否则本人保留追究的权利. 本文的技术其实早已是老掉牙的东西了,so如果你已经懂得了编写病毒的方法,请跳过本文:如果你对病毒抱有好奇心,但是还没知道怎么编写,那么本文应该适合你.  :) 言归正传.在 Windows 环境下,所有的可执行文件都是 PE

免杀的艺术:PE文件后门的植入(二)

本文讲的是免杀的艺术:PE文件后门的植入(二), 在上一篇<免杀的艺术 1>中,我们详细列举了各种实现免杀的技术. 今天,我们将继续为大家进行免杀的话题--PE文件后门的植入, 不过还是和上一篇一样,我们建议读者需要了解x86程序集,调试器和PE文件的基本知识. 现在几乎所有的安全研究人员,安全测试人员和恶意软件分析人员每天都要处理各种各样与后门攻击相关的工作,原因很简单,将后门放置到在系统中插入后门或在程序中保留随意访问的权限是当下最流行的一种攻击方式. 鉴于此,本文会主要为大家介绍往32位

C语言怎么获得进程的PE文件信息_C 语言

一.打印Sections信息.下面的程序打印出Windows_Graphics_Programming 1.1中第三个程序"Hello World Version 3:Create a Full-Screen Window"生成的可执行文件的Sections结构字节的信息 #include<stdio.h> #include<windows.h> char *strPath="C:/c1_hwv3/Debug/c1_hwv3.exe"; in

C++判断pe文件实例_C 语言

本文实例讲述了C++判断pe文件的方法.分享给大家供大家参考. 具体实现方法如下: #include <afxdlgs.h>是为了使用CFileDialog main.h如下: 复制代码 代码如下: #include <afxwin.h>    class CMyApp:public CWinApp  {      BOOL InitInstance();  }; main.cpp如下: 复制代码 代码如下: #include "main.h"  #includ

endupdateresource-updateresource修改pe文件版本信息时遇到问题,求大神解答

问题描述 updateresource修改pe文件版本信息时遇到问题,求大神解答 我用这里的方法修改文件版本信息:http://www.codeproject.com/Articles/6317/Updating-version-information-at-run-time 在endUpdateResource时会把PE文件损坏(几十M的东西变成几百K),何解?