COFF文件格式】的更多相关文章

链接器 目录 一 COFF-Common Object File Format-通用对象文件格式... 3 COFF的文件格式与结构体... 4 文件头... 5 numberOfSections(区段数):. 5 timeDateStamp(时间戳)  :. 5 pointerToSymbolTable(符号表文件偏移) :. 5 numberOfSymbols(符号总个数) :. 6 sizeOfOptionalHeader(可选头长度) :. 6 characteristics(文件标记)…
前言 我们知道,vs的C/C++编译工具把每一个编译单元(一个.c或.cpp源文件)编译成一个对象文件(.obj文件):然后用链接器把这些对象文件组合一个单个文件(.exe文件),称为可移植的可执行文件(portable executable简称为可执行文件).强调portable说明是not architecture specific. PE.COFF文件结构: 1.PE header:MS‐DOS stub, the PE signature, the COFF file header, a…
本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出).COFF(Common Object File Format 通用对象文件格式).ELF(Executable and Linking Format 可执行和链接格式).首先是对可执行文件格式的一个综述,并通过描述 ELF 文件加载过程以揭示可执行文件内容与加载运行操作之间的关系.随后依此讨论了此三种文件格式,并着重讨论 EL…
C#如何去遍历一个由C++或E语言编写的本地DLL导出函数呢 不过在这里我建议对PE一无所知的人 你或许应先补补这方面的知识,我不知道为什么PE方面的 应用在C#中怎么这么少,我查阅过相关 C#的知识大概只见一个人写过关于PE的应用 还只是从PE信息中判断执行文件是X86还是X64方式 编译,难道C#程序员真的很差 真的只能会点Asp.Net / MVC?想想看雪论坛那些玩inline-asm / inline-hook的牛牛 真是感到有很大差距 不过不论什么语言 在我看来其实都差不多 重点在于…
DSP中CMD文件 (2012-12-26 20:54:17) 转载▼ 标签: 杂谈 分类: DSP FPGA DSP的存储器的地址范围,CMD是主要是根据那个来编的.CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间.所以不同的芯片就有不同大小的rom和ram.放用户程序的地方也不尽相同.所以要根据芯片进行修改.分两部分.MEMORY和SECTIONS.MEMORY{ PAGE 0 ..........PAGE 1.........}SECTIONS{SECTION…
linux上应用程序的执行机制 执行文件是如何在shell中被"执行"的.本文中尽可能少用一些源码,免得太过于无 聊,主要讲清这个过程,感兴趣的同学可以去查看相应的源码了解更多的信息. 1.父进程的行为: 复制,等待 执行应用程序的方式有很多,从shell中执行是一种常见的情况.交互式shell是一个进 程(所有的进程都由pid号为1的init进程fork得到,关于这个话题涉及到Linux启动和初 始化,以及idle进程等,有空再说),当在用户在shell中敲入./test执行程序时,…
二.ELF 文件介绍 2.1 可执行文件格式综述 相对于其它文件类型,可执行文件可能是一个操作系统中最重要的文件类型,因为它们是完成操作的真正执行者.可执行文件的大小.运行速度.资源占用情况以及可扩展性.可移植性等与文件格式的定义和文件加载过程紧密相关.研究可执行文件的格式对编写高性能程序和一些黑客技术的运用都是非常有意义的. 可执行链接格式 ( Executable and Linking Format)最初是由 UNIX 系统实验室 ( UNIX System Laboratories, U…
by Iczelion (翻译:花心萝卜yqzq@163.net) 9.5.2000 这篇短文是讲述关于建立MASM导入库(import libraries)技巧,我假设你已经知道什么是导入库.在下面,我将集中讲述建立MASM导入库的方法. MASM导入库的格式: MASM和VC++可以使用相同的导入库,MS导入库使用不同于TASM的OMF格式的变更的COFF文件格式,这就是为什么TASM和MASM的导入库不能互用的原因,我将不详细介绍有关MS导入库的格式.可以这样说,每一个MS导入库都包含某个…
1. 前述 可执行文件的格式是操作系统本身执行机制的反映,理解它有助于对操作系统的深刻理解,掌握可执行文件的数据结构及其一些机理,是研究软件安全的必修课.`PE(Portable Executable File Format)`是目前 windows 平台上的主流可执行文件格式.PE 文件衍生于早期的 COFF 文件格式,描述 PE 格式及 COFF 文件的主要地方在 winnt.h 这个头文件,其中有一节叫 Image Format,如下: 该节给出了 DOS MZ 格式和 windows 3…
以下只是开发中可能用的比较多的工具,另外还有其他很多未曾提及的实用工具.Linux篇: 1.链接过程的调试:主要用于查看构建过程:如链接时加载的动态库以及运行时加载动态库过程的调试 支持LD_DEBUG环境变量(glibc下提供给加载器便于调试的一个环境变量): 常用的使用方法: LD_DEBUG=help XXX XXX可为任意字符串,即可调出帮助信息: LD_DEBUG=libs xxx xxx为可执行二进制文件,显示所依赖库的文件路径: 此外还可以显示重定位.符号表.依赖库版本匹配信息等:…
一.上课学习笔记 1.shell作用:①运行程序 ②重定向(输入/输出重定向) ③可编程(写脚本) 执行一个c程序时,如果切进另一个进程,会进入该进程而切不回原进程,所以需要为调用的进程创一个子进程. 2.fork() getpid()自己进程的id, getppid()父亲的进程, fork()的返回值是自己的子进程. 二.课本与视频学习内容 1.ELF格式 头部+代码+数据 ELF文件加载到内存时:把代码段和数据加载到内存中,默认从ELF文件头部信息中的Entry point address…
windows PE/COFF章总结 本章学习了windows下的可执行文件和目标文件格式PE/COFF.PE/COFF文件与ELF文件非常相似,它们都是基于段的结构的二进制文件格式.Windows下最常见的目标文件格式就是COFF文件格式,微软的编译器产生的目标文件都是这种格式.COFF文件有一个很有意思的段叫".drectve段",这个段中保存的是编译器传递给链接器的命令行参数,可以通过这个段实现指定运行库等功能.Windows下的可执行文件.动态链接库等都使用PE文件格式,PE文…
DSP的存储器的地址范围,CMD是主要是根据那个来编的. CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间. 所以不同的芯片就有不同大小的rom和ram.放用户程序的地方也不尽相同.所以要根据芯片进行修改.分两部分.MEMORY和SECTIONS. MEMORY { PAGE 0 .......... PAGE 1......... } SECTIONS {SECTIONS {.vectors ..................reset ............…
在表中,我们知道了0x01 4c对应的平台结构是i386: 我们接着分析下一个字段,给出PE结构图 向后推移2个字节,现在来到(图片高亮部分): 高亮部分对应IMAGE_NT_HEADERS结构的NumberofSections字段; 图中高亮部分是PE_HEADER部分的TimeDateStamp字段,这个字段的功能是记录文件的创建时间(姑且就叫时间戳字段) 对应下图中的: 我们接着分析下一个字段(PE_HEADER结构中的PointertoSymbolTable),这个字段的指向"符号表&q…
http://www.cnblogs.com/weikanzong/p/5296739.html…
2.1概述 在windows操作系统下,可执行文件的存储格式是PE格式:在Linux操作系统下,可执行文件的存储格式的WLF格式.它们都是COFF格式文件的变种,都是从COFF格式的文件演化而来的. 在windows平台下,目标文件(.obj),静态库文件(.lib)使用COFF格式存储:而可执行文件(.exe),动态链接库文件(.dll)使用PE格式存储.静态库文件其实就是一堆目标文件的集合. 在“WinNT.h”头文件中定义了COFF格式文件,以及PE格式文件的数据结构.这些定义是一系列的结…
@date: 2016/11/24 @author: dlive ​ PE (portable executable) ,它是微软在Unix平台的COFF(Common Object File Format 通用对象文集格式)的基础上制成的. ​ PE文件是指32位的可执行文件,也称PE32,64位的可执行文件称为PE+或者PE32+ ​ PE文件的种类 种类 主扩展名 可执行系列 exe ,scr 驱动程序系列 sys, vxd 库系列 dll, dcx, cpl, drv 对象文件系列 ob…
这两天安装Visual Studio遇到这样的一个问题,用自己的电脑和公司的电脑都出现同样的问题.两台电脑都是新系统,按理来说是没有问题的.但是一出现问题,对于我这个小白来说,还是耗费了挺多精力都无果.今天问公司一个c++同事,他说他也遇到这样一个问题,一百度就给我解决了.之前我真是浪费时间,我使用搜索引擎的方法不对.我是搜索错误提示“无法启动"D\projects\hello\Debug\hello.exe" 系统找不到指定的文件”.而他是搜索“LINK : fatal error…
深入理解 Win32 PE 文件格式 Matt Pietrek 这篇文章假定你熟悉C++和Win32. 概述 理解可移植可执行文件格式(PE)可以更好地了解操作系统.如果你知道DLL和EXE中都有些什么东西,那么你就是一个知识渊博的程序员.这一系列文章的第一部分,讨论最近这几年PE格式所发生的变化. 这次更新后,作者讨论了PE格式如何适应于用.NET开发的应用程序,包括PE节,RVA,数据目录,以及导入函数.附录中包含了相关的映像头结构以及它们的描述. 很早以前,我为微软系统期刊(现在叫做MSD…
第2章 通用目标文件格式介绍 汇编器和连接器可以产生在TMS320C54x器件上执行的目标文件,这些目标文件的格式称为通用目标文件格式(COFF).采用COFF格式有利于程序的模式化编程,因为它支持用户在编写汇编语言程序时使用代码块和数据块,这些块称为段(section).汇编器和连接器都提供了多个伪指令用来创建和管理段.本章对COFF段进行简要介绍. 2.1 COFF文件类型 COFF文件包括三种类型,分别是COFF0.COFF1和COFF2.每种类型具有不同形式的文件头,但是数据块的格式相同…
COFF/PE文件结构 原创 C++应用程序在Windows下的编译.链接(二)COFF/PE文件结构 2.1概述 在windows操作系统下,可执行文件的存储格式是PE格式:在Linux操作系统下,可执行文件的存储格式的WLF格式.它们都是COFF格式文件的变种,都是从COFF格式的文件演化而来的. 在windows平台下,目标文件(.obj),静态库文件(.lib)使用COFF格式存储:而可执行文件(.exe),动态链接库文件(.dll)使用PE格式存储.静态库文件其实就是一堆目标文件的集合…
作者:MSDN译者:李马 预定义段 一个Windows NT的应用程序典型地拥有9个预定义段,它们是.text..bss..rdata..data..rsrc..edata..idata..pdata和.debug.一些应用程序不需要所有的这些段,同样还有一些应用程序为了自己特殊的需要而定义了更多的段.这种做法与MS-DOS和Windows 3.1中的代码段和数据段相似.事实上,应用程序定义一个独特的段的方法是使用标准编译器来指示对代码段和数据段的命名,或者使用名称段编译器选项-NT——就和Wi…
作者:MSDN 译者:李马 摘要 Windows NT 3.1引入了一种名为PE文件格式的新可执行文件格式.PE文件格式的规范包含在了MSDN的CD中(Specs and Strategy, Specifications, Windows NT File Format Specifications),但是它非常之晦涩.  然而这一的文档并未提供足够的信息,所以开发者们无法很好地弄懂PE格式.本文旨在解决这一问题,它会对整个的PE文件格式作一个十分彻底的解释,另外,本文中还带有对所有必需结构的描述…
5.1 Windows的二进制文件格式PE/COFF PE文件格式事实上与ELF同根同源,它们都是由COFF格式发展而来. 5.2 PE前身——COFF 在win下,Command Prompt for vs 2017,cd命令进入源代码所在目录: 运行命令: “cl”是VISUAL C++的编译器./c参数表示只编译,不链接,只会生成obj文件,不会生成exe文件.如下: 如果不加这个参数,那么cl会在编译源代码后,再调用link链接器将生产的obj文件与默认的C运行库链接,生成exe文件.…
PE文件格式分析 PE 的意思是 Portable Executable(可移植的执行体).它是 Win32环境自身所带的执行文件格式.它的一些特性继承自Unix的Coff(common object file format)文件格式.“Portable Executable”(可移植的执行体)意味着此文件格式是跨Win32平台的;即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识别和使用该文件格式. PE文件在文件系统中,与存贮在磁盘上的其它文件一样,都是二进…
ELF 文件类型 ELF (Executable Linkable Format) 是 linux 下的可执行文件格式,与 windows 下的 PE (Portable Executable) 格式一样,都是 COFF (Common File Format)文件格式的变种.在 linux 下除了可执行文件,编译过程中产生的目标文件(.o 文件),动态链接文件(.so 文件),静态链接库文件(.a 文件) ,核心转储文件(Core Dump File)都按照 ELF 格式存储.查看 ELF 文…
常见到的*.obj文件有两种:第一种是基于COFF(Common Object File Format)格式的OBJ文件(也称目标文件),这种格式用于编译应用程序:第二种是Alias|Wavefront公司推出的OBJ模型文件.本文对第二种obj模型文件进行分析. 3D文件格式,常见的有几种 "*.3ds","*.max","*.lw","*.mb","*.dxf","*.obj".但是…
    当在编译VS项目时,出现如下错误:         这个错误,表明在连接阶段出错.COFF为Common Object File Format,通用对象文件格式,它的出现为混合语言编程带来方便.    链接器执行错误,经过本地搜索链接器,cvtres.exe        本地有四个,从所在路径的名称可以知道,第一个是amd平台上面的,第二个是x86平台上面的,第三第四个是安装VS2010后带上的,分为amd64平台上面的和X86平台上面的.     通过查看两个x86平台上面链接器的版…
PE是Portable Executable File Format(可移植的运行体)简写,它是眼下Windows平台上的主流可运行文件格式. PE文件里包括的内容非常多,详细我就不在这解释了,有兴趣的能够參看之后列出的參考资料及其它相关内容. 近期我也在学习PE文件格式,參考了很多资料.用C++封装了一个高效方便的PE文件格式解析的类. 该类对想学PE文件结构的朋友可算一份可贵的资料.代码均非常易懂,考虑较全面,具有一定的通用性. 同一时候该类也能够让想创建自己的PE文件解析软件的朋能够轻松在…
magic 本手册是file命令所使用的magic文件的格式说明文档,版本是5.04. file命令用于识别文件类型,其他检测,检测文件内容中是否符合 'magic模式',也就是规则. /usr/share/misc/magic 文件指定什么模式将被用于检测,当匹配到规则时什么信息或者MIME type将打印输出.从文件提取额外信息 文件每行都指定一个可执行的测试.一个测试比较的是在数据中的起始位置开始,在特定的偏移位置文件的字节值.一个字符串或者一个数字值.如果测试成功,将打印信息.magic…