pe文件格式

PE文件格式详解(一)――基础知识

什么是PE文件格式:

我们知道所有文件都是一些连续(当然实际存储在磁盘上的时候不一定是连续的)的数据组织起来的,不同类型的文件肯定组织形式也各不相同;PE文件格式便是一种文件组织形式,它是32位Wind ow系统中的可执行文件EXE以及动态连接库文件DLL的组织形式。为什么我们双击一个EXE文件之后它就会被Window运行,而我们双击一个DOC文件就会被Word打开并显示其中的内容;这说明文件中肯定除了存在那些文件的主体内容(比如EXE文件中的代码,数据等,DOC文件中的文件内容等)之外还存在其他一些重要的信息。这些信息是给文件的使用者看的,比如说EXE文件的使用者就是Window,而DOC文件的使用者就是Word。Window可以根据这些信息知道把文件加载到地址空间的那个位置,知道从哪个地址开始执行;加载到内存后如何修正一些指令中的地址等等。那么PE文件中的这些重要信息都是由谁加入的呢?是由编译器和连接器完成的,针对不同的编译器和连接器通常会提供不同的选项让我们在编译和

联结生成PE文件的时候对其中的那些Window需要的信息进行设定;当然也可以按照默认的方式编译连接生成Window中默认的信息。例如:WindowNT默认的程序加载基址是0x40000;你可以在用VC连接生成EXE文件的时候使用选项更改这个地址值。在不同的操作系统中可执行文件的格式是不同的,比如在Linux上就有一种流行的ELF格式;当然它是由在Linux上的编译器和连接器生成的,

所以编译器、连接器是针对不同的CPU架构和不同的操作系统而涉及出来的。在嵌入式领域中我们经常提到交叉编译器一词,它的作用就是在一种平台下编译出能在另一个平台下运行的程序;例如,我们可以使用交叉编译器在跑Linux的X86机器上编译出能在Arm上运行的程序。

程序是如何运行起来的:

一个程序从编写出来到运行一共需要那些工具,他们都对程序作了些什么呢?里面都涉及哪些知识需要学习呢?先说工具:编辑器-》编译器-》连接器-》加载器;首先我们使用编辑器编辑源文件;然后使用编译器编译程目标文件OBJ,这里面涉及到编译原理的知识;连接器把OBJ文件和其他一些库文件和资源文件连接起来生成EXE文件,这里面涉及到不同的连接器的知识,连接器根据OS的需要生成EXE文件保存着磁盘上;当我们运行EXE文件的时候有W indow的加载器负责把EXE文件加载到线性地址空间,加载的时候便是根据上一节中说到的PE文件格式中的哪些重要信息。然后生成一个进程,如果进程中涉及到多个线程还要生成一个主线程;此后进程便开始运行;这里面涉及的东西很多,包括:PE文件格式的内容;内存管理(CPU内存管理的硬件环境以及在此基础上的OS内存管理方式);模块,进程,线程的知识;只有把这些都弄清楚之后才能比较清楚的了解这整个过程。下面就让我们先来学习PE文件格式吧。

PE文件的总体结构:

下图便是PE文件的一个总体结构:注意,图2是在图1的基础上进一步细化了,不过图2的顺序是从下向上代表文件的从头到尾的顺序。

DOS MZ Header

DOS stub

PE header

Section table

Section 1

Section 2

Section ...

Section n

图一

图2

我们的EXE文件在磁盘上就是按照上面的格式顺序存储的,当运行的时候它就很容易被加载器加载到线性地址空间;但是在线性空间中和在磁盘上不同,在线性空间中各个部分不一定是占据连续的线性地址空间。下面对PE文件格式的介绍就按照上图中对从头到尾对每个部分进行介绍。好的,今天刚去医院回来有些累了,就先写到这儿吧。嗯,不行,还有几个重要而又基础的概念需要在这儿先澄清一下,否则后面就会出乱子了。

几个重要的基本概念:

1)节:PE文件的真正内容划分成块,称之为sections(节)。每节是一块拥有共同属性的数据,比如代码/数据、读/写等。我们可以把PE文件想象成一逻辑磁盘,PE header 是磁盘的boot扇区,而se ctions就是各种文件,每种文件自然就有不同属性如只读、系统、隐藏、文档等等。值得我们注意的是---- 节的划分是基于各组数据的共同属性: 而不是逻辑概念。重要的不是数据/代码是如何使用的,如果PE文件中的数据/代码拥有相同属性,它们就能被归入同一节中。不必关心节中类似于"data", "code"或其他的逻辑概念: 如果数据和代码拥有相同属性,它们就可以被归入同一个节中。(节名称仅仅是个区别不同节的符号而已,类似"data", "code"的命名只为了便于识别,惟有节的属性设置决定了节的特性和功能)如果某块数据想付为只读属性,就可以将该块数据放入置为只读的节中,当PE装载器映射节内容时,它会检查相关节属性并置对应内存块为指定属性。下面是常见的节名及作用:

节名作用

.arch 最初的构建信息(Alpha Architecture Informatio

n)

.bss 未经初始化的数据

.CRT C运行期只读数据

.data 已经初始化的数据

.debug 调试信息

.didata 延迟输入文件名表

.edata 导出文件名表

.idata 导入文件名表

.pdata 异常信息(Exception Information)

.rdata 只读的初始化数据

.reloc 重定位表信息

.rsrc 资源

.text .exe或.dll文件的可执行代码

.tls 线程的本地存储器

.xdata 异常处理表

注意:上面已经说过了“节的划分是基于各组数据的共同属性: 而不是逻辑概念。重要的不是数据/代码是如何使用的,如果PE文件中的数据/代码拥有相同属性,它们就能被归入同一节中”所以上面表中列出的节并不一定单独成节,也就是说即使存在上面表中的某一节,在节表(section table)(后面会讲到)中也不一定就有于之对应的项,因为它可能和别的具有共同属性的节共同组成了一节。比如 .idata 可以和 .text 合成一节而命名为 .text,而在节表中只有和 .text 对应的项。这也就是后面的optional header中数据目录(DataDirectory)存在的作用,因为很多有用的节被合并了,因此

加载器无法通过节表来定位它们,所以这就是数据目录(DataDirec tory)发挥作用的时候了(具体作用后面会讲到)。

2)虚拟地址:虚拟地址即程序中使用的地址,也就是从程序员的角度看到的地址,有时也叫逻辑地址;通常使用段地址:偏移量的形式表示,不过在32位系统中使用的是平坦(Flat)内存模式(1.它的数据段和代码段是32位的,所以能访问4G的内存。2.在“平坦内存模式”,cs、ds、es的值不需你操心,也不必知道它们的值是多少,它们的值是相等的),所以我们可以不用管段地址,只考虑32位的偏移量即可,认为32位的偏移量就是虚拟地址,这样一来程序员就可以认为他是在一个段中写程序,这个段的大小是2^32 = 4G的容量,当然这部分地址空间是程序和OS共享的,程序员可以利用的大约有2G(具体可以参考Win98和WinNT的内存布局);所以我们平时在写程序申请内存的时候实际上申请的就是这2G的线性地基空间,由于所有的4G线性地址空间都被OS作为资源来管理(这4G的线性地址空间是通过页表来表现出来的,OS分配线性地址空间給进程也就是分配相应的页表給进程),所以我们无论用什么方式使用内存最终都是转换为OS为我们分配线性地址空间,至于分配的线性地址空间又如何被映射为真正的物理内存完全是有OS负责的(更详细资料参见“Windows 内存管理”),程序员不必操心。

3)相对虚拟地址:「相对虚拟地址(Relative Virtual Address,R VA)」即相对于上面的基地址的偏移量。PE 文件中的许多字段内容

都是以RVA 表示,一个RVA 是某一资料项的offset(偏移)值-- 从文件被映像进来的起点(即基地址)算起。举个例子,我们说Win dows加载器把一个PE 文件映像到虚拟地址空间的0x400000 处,如果此image 有一个表格开始于0x401464,那么这个表格的RVA 就是0x1464:虚拟地址0x401464 - 基地址0x400000 = RVA 0x1464只要把RVA 加上基地址,RVA 就可以被转换为一个有用的指针。在PE文件中大多数地址多是RVA 而 RVA只有当PE文件被PE装载器装入内存后才有意义。如果我们直接将文件映射到内存而不是通过PE装载器载入,那么我们就不能直接使用那些RVA。必须先将那些RVA转换成文件偏移量,RVAToOffset函数就起到这个作用。

4)基地址:「基地址(base address)」是一个重要概念,用来描述被映像到内存中的EXE 或DLL 的起始地址。为了方便,Windows NT 和Windows 95 都以模块的基地址做为模块的instance handle (HINSTANCE,实例句柄)。Windows95加载器把一个PE 文件映像到虚拟地址空间的0x400000 处;而WindowNT加载器把一个PE 文件映像到虚拟地址空间的0x10000 处。

5)文件偏移量:文件中的地址与内存中表示不同,它是用偏移量(F ile offset)来表示的,文件中的第一个字节的偏移量是0,后面的字节依次递增。在SoftICE和W32Dasm下显示的地址值是内存线性地址,或称之为虚拟地址(Virual Address,VA)。而十六进制工具里,如:Hiew、Hex Workshop等显示的地址就是文件地址,称之为偏移量(F

ile offset) 或物理地址(RAW offset,注意这个物理地址不是内存寻址中说到的物理地址 )。

6)模块:「模块(module)」一词表示一个EXE 或DLL 被加载内存后的程序代码、数据和资源(就是被加载到内存后的EXE或DLL整体,包括代码、数据和资源,而不是说代码、数据、资源分别都是模块)。除了程序代码和数据是你的程序直接使用的之外,模块还内含一些支持性数据,Windows 用它来决定程序代码和数据放在内存的什么地方,在Win32,这些信息保留在PE头部(即图1中的PE header,实际上它是一个IMAGE_NT_HEADERS 结构)中。

7)逻辑地址:见“虚拟地址”

8)线性地址:线性地址是由虚拟地址(逻辑地址)转换来的,转换需要CPU和OS共同合作来完成;里面涉及到全局描述符表GDT和局部描述符表LDT;不过由于32位的Window系统采用flat内存模式,所以我们可以认为虚拟地址就是线性地址,即我们可以认为逻辑地址中的32位偏移量就是线性地址。

9)物理地址:即最终发往地址总线上的地址,它对应着实际的物理内存,在32位的Window存储管理中它是通过页表由线性地址转换出来的。

10)实际地址:即“物理地址”。

其中前面的6个概念是学习PE文件格式需要知道的,后面的几个主要在内存管理里面提到,在这里为了便于区别一起列了出来。

PE文件格式详解(二)――PE格式总览

上一节我们已经了解了PE文件格式的作用和其总体结构,从这节开始我们就开始按照上一节中的总体结构从上到下来解析PE文件各个部分的具体结构和作用,当然我不会对每个部分的每一个字段都详细描述它的作用,因为讲解PE文件格式的资料很多,讲解的都很详细,所以我在这里只是按照程序执行的线索和基本原理把那些最重要的字段讲解一下,为了让我们对PE文件格式有个比较清楚的宏观认识,在具体讲解每一部分之前先让我们大概了解一下各部分的作用。

1.DOS MZ header 和 DOS Stub:

如果在DOS下执行PE格式文件就会执行后面的DOS Stub,显示字符串"This program cannot run in DOS mode",如果在Window 下执行PE格式文件,PE加载器就会根据DOS MZ header中的最后一个域 e_lfanew跳过DOS Stub直接转到PE Header , DOS MZ heade r 和 DOS Stub的贡献仅此而已。

2. PE Header:

当加载器跳到PE Header后,根据里面的各个域首先检查这是不是有效的PE文件格式,能否在当前的CPU架构下运行,优先加载基址是多少,一共有几个节(section),这是一个EXE文件还是DLL 文件等总体信息,有了这些总体信息之后加载器就会跳到下面的Sec tion table。

3.Section table:

有了上面从PE Header获得的总体信息后,加载器并不能准确的加载文件,因为要准确的加载文件,加载器还需要一些关于每一节的更具体的信息,比如:每一节在磁盘文件上的起始位置、大小,应该被加载的线性地址空间的哪一部分,这一节是代码还是数据,读写属性如何等等。所有这些信息都保存在Section table里面,Section table是一个结构数组,数组里面的每一个结构对应PE文件中的一个节。PE加载器就会遍历这个结构数组把PE文件的每一节准确的加载到线性地址空间。(这里还要注意两点:一是PE加载器把PE文件的每一节加载到线性地址空间并不是说把磁盘上的文件调入物理内存;而只是为它分配线性地址空间,分配线性地址空间意味着申请本进程需要的页表,并把相应的信息添入页表中。线性地址空间也可以看作是一种资源,它是通过页表来体现的,当一个页表被添入相应的信息被占用之后那么这个页表对应的那块线性地址空间也就被分配出去了。需要注意的另一点是PE加载器对每一节采用文件映射的方式把相应的磁盘文件映射到内存,而不是把整个PE文件采用文件映

射的方法把磁盘文件映射到内存。更具体的解释我会在“Windows 内存管理”中提到。)

4.Sections:

PE文件最后的部分就是各个节了,比如.text , .data , .idat a等等,各种节的作用后面会有一个简要介绍。

思考一下:既然加载器不一定把程序加载到PE头中指定的优先加载基址,那么如果在没有加载到PE头中指定的优先加载基址的情况下,指令中的地址是不是都要依次修改呢?首先我们要明确的一点是程序指令中的地址分两大类,其中一类是在编译过程就可以确定的,这类地址采用的是相对虚拟地址(RVA),所以即使程序没有被加载到希望的基址这些地址也无需修改。另一类地址是编译过程和连接过程都无法确定的,比如那些引用外部库的函数地址,因为外部库之后在被加载器加载后里面的函数地址才能确定下来,所以程序中的这类地址要在程序被加载后进行修改。那么编译器和连接器对这类无法确定的地址是如何处理的呢?加载器又是根据什么如何来对它们进行修改的呢?个人感觉PE文件格式学习中这一部分内容有些繁杂,所以希望大家读后面各节的时候最好时常思考一下这两个问题。从下一节开始我们将对PE文件的各个部分作更为详尽的讲解。重点部分会放在对上面两个问题的解决上。

PE文件格式详解(三)――DOS Header & PE Header

上一节中我们对PE文件的各个部分的作用有了一个总体的认识,从这节起我们会对PE文件的每个部分作更进一步的解释,当然别忘记了上一节中我提出的两个问题。

1.DOS MZ header 和 DOS Stub:

所有 PE文件(甚至32位的 DLLs) 必须以一个简单的 DOS MZ header 开始。我们通常对此结构没有太大兴趣。有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体,然后运行紧随 MZ header 之后的 DOS stub。DOS stub实际上是个有效的 EXE,在不支持 PE文件格式的操作系统中,它将简单显示一个错误提示,类似于字符串 "This program requires Windows" 或者程序员可根据自己的意图实现完整的 DOS代码。通常我们也不对 DOS stub 太感兴趣: 因为大多数情况下它是由汇编器/编译器自动生成。通常,它简单调用中断21h服务9来显示字符串"This program cannot ru n in DOS mode"。在Window95下运行32位程序的时候这个部分并不会被加载器映射的线性地址空间,当Win32 加载器把一个PE 文件映像到内存,内存映像文件(memory mapped file)的第一个字节对应到DOS Stub 的第一个字节。WINNT.H 为DOS stub 表头DOS MZ hea der定义了一个结构,第一个域 e_magic ,被称为魔术数字,它被用于表示一个MS-DOS兼容的文件类型,其作用类似于PE header中的Signature域,所有MS-DOS兼容的可执行文件都将这个值设为0x 5A4D,表示ASCII字符MZ。MS-DOS头部之所以有的时候被称为MZ头

部,就是这个缘故。还有许多其它的域对于MS-DOS操作系统来说都有用,但是对于Windows NT来说,这个结构中只有一个有用的域——最后一个域 e_lfanew ,PE头部就是由它定位的。循此我们将非常容易找到PE头部,它是一个相对偏移值(或说是RVA),指向真正的PE头部(PE header)。为了获得指针,你必须为RVA 加上imag e 的基地址:

pNTHeader = dosHeader + dosHeader->e_lfanew;

有了这个指向PE Header的指针我们就可以取得很多有用的信息了,既然我们研究的是PE文件格式,因此PE Header才是我们研究的重点。总之,DOS MZ header和 DOS Stub之间的关系相当于PE heade r和 EXE或者DLL之间的关系。

2.PE Header:

PE header 是PE相关结构 IMAGE_NT_HEADERS 的简称,其中包含了许多PE装载器用到的重要域。当我们更加深入研究PE文件格式后,将对这些重要域耳目能详。执行体在支持PE文件结构的操作系统中执行时,PE装载器将从 DOS MZ header 中找到 PE header 的起始偏移量。因而跳过了 DOS stub 直接定位到真正的文件头 P E header。PE头部整个是个IMAGE_NT_HEADERS 结构,定义于WINNT. H。这个结构正是Windows 95 的module database(“模块”的概念在第一节中说过了,操作系统就是利用这个结构感知“模块”的存在、

获得“模块”的信息等;这个结构我会在以后的“模块”学习当中提及)。每一个被载入的EXE 或DLL 都以一个IMAGE_NT_HEADERS 结构表现出来。此结构有一个DWORD 和两个子结构:

DWORD Signature;

IMAGE_FILE_HEADER FileHeader;

IMAGE_OPTIONAL_HEADER OptionalHeader;

(1)对于PE格式的文件Signature 字段内容应该是ASCII 的P E\0\0。

(2) IMAGE_FILE_HEADER FileHeader:

Field name Meanings

Machine 该文件运行所要求的CPU。对于Intel平台,该值是IMAGE_FILE_MACHINE_I386 (14Ch)。我们尝试了LUE

VELSMEYER的pe.txt声明的14Dh和14Eh,但Windo

ws不能正确执行。看起来,除了禁止程序执行之外,

本域对我们来说用处不大。

NumberOfSect ions 文件的节数目。如果我们要在文件中增加或删除一个节,就需要修改这个值。

TimeDateStam

p

文件创建日期和时间。我们不感兴趣。

PointerToSym

bolTable

用于调试。

NumberOfSymb

ols

用于调试。

SizeOfOption alHeader 指示紧随本结构之后的 OptionalHeader 结构大小,必须为有效值。

Characterist

ics

关于文件信息的标记,比如文件是exe还是dll。

IMAGE_FILE_HEADER结构比较简单,也比较容易理解,在此不做过多的解释;简言之,只有三个域对我们有一些用: Machine, NumberOfSections 和Characteristics。通常不会改变Machine 和Characteristics 的值,但如果要遍历节表就得使用NumberOfSecti ons。

(3)比较复杂也更有趣的是第三个东东即:IMAGE_OPTIONAL _HEADER,现在我们学习IMAGE_NT_HEADERS 中的最后成员o ptional header 结构,它包含了PE文件的逻辑分布信息。该结构共有31个域,一些是很关键,另一些不太常用。这里只介绍那些真正有用的域。

Field Meanings

AddressOfEnt PE装载器准备运行的PE文件的第一个指令的RVA。

ryPoint 若您要改变整个执行的流程,可以将该值指定到新的RVA,这样新RVA处的指令首先被执行。ImageBase PE文件的优先装载地址。比如,如果该值是400000 h,PE装载器将尝试把文件装到虚拟地址空间的400

000h处。字眼"优先"表示若该地址区域已被其他模

块占用,那PE装载器会选用其他空闲地址。

SectionAlign ment 内存中节对齐的粒度。例如,如果该值是4096 (100 0h),那么每节的起始地址必须是4096的倍数。若第一节从401000h开始且大小是10个字节,则下一节必定从402000h开始,即使401000h和402000h之间还有很多空间没被使用。

FileAlignmen t 文件中节对齐的粒度。例如,如果该值是(200h),,那么每节的起始地址必须是512的倍数。若第一节从文件偏移量200h开始且大小是10个字节,则下一节必定位于偏移量400h: 即使偏移量512和1024之间还有很多空间没被使用/定义。

MajorSubsyst emVersion MinorSubsyst emVersion win32子系统版本。若PE文件是专门为Win32设计的,该子系统版本必定是4.0否则对话框不会有3维立体感。

SizeOfImage 内存中整个PE映像体的尺寸。它是所有头和节经过节对齐处理后的大小。

SizeOfHeader s 所有头+节表的大小,也就等于文件尺寸减去文件中所有节的尺寸。可以以此值作为PE文件第一节的文件偏移量。(这里的描述是正确的,参考http://bb https://www.360docs.net/doc/012632246.html,/showthread.php?t=19072)

Subsystem NT用来识别PE文件属于哪个子系统。对于大多数W in32程序,只有两类值: Windows GUI 和 Windows

CUI (控制台)。

SizeOfStackR

eserve

线程初始堆栈的保留大小。

SizeOfStackC ommit 一开始即被提交(committed)给线程初始堆栈的内存数量。

SizeOfHeapRe

serve

保留给最初的process heap 的虚拟内存数量。

SizeOfHeapCo mmit 一开始即被提交(committed)给process heap 的内存数量。

DataDirector y IMAGE_DATA_DIRECTORY 结构数组。每个结构给出一个重要数据结构的RVA,比如引入地址表等。

上面表格里最难理解的也是很重要的一个域是最后一个,即:Da taDirectory;它是一个结构数组,它一共包含16个元素即共含16个结构;每一个结构对应于一个section(注意这里的section是按照第一节中按作用进行划分的section逻辑节,不是最终生成的P

E文件中包含的节),结构中的两个域分别描述了该section的 RVA 和 SIZE; 这样一来加载器就能够通过这个数组迅速在image 中找到特定的section,后面讲到的导入表,引出表都要用到这个数组中相应的元素,到时候还会有进一步的解释。

PE文件格式详解(四)――Section Table(节表)

到本节为止,我们已经学了许多关于 DOS header 和 PE head er 的知识。接下来就该轮到 section table(节表)了。节表其实就是紧挨着 PE header 的一结构数组,它的作用我们在前面已经说过了。该数组成员的数目由 file header (IMAGE_FILE_HEADER) 结构中 NumberOfSections 域的域值来决定。节表结构又命名为 IMAG E_SECTION_HEADER。我们把它的主要成员列表如下:

Field Meanings

Name1 事实上本域的名称是"name",只是"name"已被MASM用作关键字,所以我们只能用"Name1"代替。这儿的节名长不超过

8字节。记住节名仅仅是个标记而已,我们选择任何名字

甚至空着也行,注意这里不用null结束。命名不是一个A

SCIIZ字符串,所以不用null结尾。

Virtual Address 本节的RVA(相对虚拟地址)。PE装载器将节映射至内存时会读取本值,因此如果域值是1000h,而PE文件装在地址400000h处,那么本节就被载到401000h。

SizeOfR awData 经过文件对齐处理后节尺寸,PE装载器提取本域值了解需映射入内存的节字节数。(译者注: 假设一个文件的文件对齐尺寸是0x200,如果前面的 VirtualSize域指示本节长度是0x388字节,则本域值为0x400,表示本节是0x40 0字节长)。

Pointer ToRawDa ta 这是节基于文件的偏移量,PE装载器通过本域值找到节数据在文件中的位置。

Charact eristic s 包含标记以指示节属性,比如节是否含有可执行代码、初始化数据、未初始数据,是否可写、可读等。

好的,现在PE文件的前半部分结构我们已经了解的差不多了,下面就让我们模拟一下加载器加载PE文件的过程吧:

加载器加载PE文件的主要步骤:

1.当PE文件被执行,PE装载器检查 DOS MZ header 里的 PE he

ader 偏移量。如果找到,则跳转到 PE header。

2.PE装载器检查 PE header 的有效性。如果有效,就跳转到PE

header的尾部。

3.紧跟 PE header 的是节表。PE装载器读取其中的节信息,并

采用文件映射方法将这些节映射到内存,同时付上节表里指定的节属性。

各种文件后缀的含义

各种文件后缀的含义 ACA:Microsoft的代理使用的角色文档 .acf:系统管理配置 .acm:音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能 .aif:声音文件,支持压缩,可以使用Windows Media Player和QuickTime Player播放 .AIF:音频文件,使用Windows Media Player播放 .AIFC:音频文件,使用Windows Media Player播放 .AIFF:音频文件,使用Windows Media Player播放 .ani:动画光标文件扩展名,例如动画沙漏。 .ans:ASCII字符图形动画文件 .arc:一种较早的压缩文件,可以使用WinZip,WinRAR,PKARC等软件打开 .arj:压缩文件。可以使用WinZip,WinRAR,PKARC等软件打开 .asf:微软的媒体播放器支持的视频流,可以使用Windows Media Player播放 .asp:微软的视频流文件,可以使用Windows Media Player打开 .asp:微软提出的Active Server Page,是服务器端脚本,常用于大型网站开发,支持数据库连接,类似PHP。可以使用Visual InterDev编写,是目前的大热门

.asx:Windows Media 媒体文件的快捷方式 .au:是Internet中常用的声音文件格式,多由Sun工作站创建,可使用软件Waveform Hold and Modify 播放。Netscape Navigator中的LiveAudio也可以播放.au文件 .avi:一种使用Microsoft RIFF规范的Windows多媒体文件格式,用于存储声音和移动的图片 .bak:备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该文件相同的文件名 .bas Basic:语言源程序文件,可编译成可执行文件,目前使用Basic 开发系统的是Visual Basic .bat:批处理文件,在MS-DOS中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用 .bbs:电子告示板系统文章信息文件 .bfc:Windows的公文包文件 .bin:二进制文件,其用途依系统或应用而定 .bmp:Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持32位颜色,用于为Windows界面创建图标的资源文件格式。 .c:C语言源程序文件,在C语言编译程序下编译使用 .cab:Microsoft制订的压缩包格式,常用于软件的安装程序,使用Windows自带的实用程序,Extract.exe可以对其解压缩,WinZip,WinRAR等都支持这种格式

政府机关公文格式要求及排版(最新)

。 公文格式排版 一、设置页面(“页面布局”—“页面设置”) (一)“页边距” 1.页边距:上3厘米、下2.5厘米、左2.6厘米、右2.5厘米。 2.纸张方向:纵向。 (二)“纸张” 纸张大小:A4。 确保“每面排22行,每行排28个字,并撑满版心”。 二、设置标题 (一)“字体” 1.主标题:先设置字体为华文小标宋简体(或华文中宋、宋体),再设置字体为Times New Roman;字形,加粗;字号,二号。 2.副标题:字体,与主标题一致;字形,不加粗;字号,三号。 (二)“段落” 1.对齐方式:居中。 2.左侧右侧缩进均为0字符。 3.特殊格式:无。 4.段前段后间距均为0行。 5.行距:固定值,28磅。 (三)内容要求 1.标题可分一行或多行居中排布,回行时应排列对称、长短适宜、间距恰当;多行标题排列时应当采用梯形或菱形布局,不应采用上下长短一样的长方形或上下长中间短的沙漏形。 2.正式公文标题应要素完整,一般格式为“发文机关+关于××(事由)的+文种”。 3.标题回行时应词意完整,不能将词组拆开;发文机关名称应在第一行居中排布;最后一行不能将“的”与文种单独排列成行。 4.标题中除法规、规章名称可加书名号外,一般不用标点符号。 (四)标题与正文间隔 空一行,字号为五号,行距为最小值12磅。 三、设置正文 (一)“字体” 1.一级标题:字体,黑体;字形,不加粗;字号,三号。 2.二级标题:字体,楷体_GB2312(或楷体);字形,不加粗;字号,

三号。 3.三级标题、四级标题和五级标题:字体,仿宋_GB2312(或仿宋);字形,加粗;字号,三号。 4.其余正文(包括附件、落款、附注):字体,仿宋_GB2312(或仿宋);字形,不加粗;字号,三号。 5.正文各级各类字体设定完后,应再次选定全文,设置字体为Times New Roman。 (二)“段落” 1.对齐方式:两端对齐。 2.左侧右侧缩进均为0字符。 3.特殊格式:首行缩进,2字符。 4.段前段后间距均为0行。 5.行距:固定值,30磅。 (三)内容要求 1.主送机关(俗称“抬头”)居正文第一行单独成行,顶格不缩进。 2.一级标题、二级标题、三级标题、四级标题、五级标题依次采用“一、”、“(一)”、“1.”、“(1)”、“①”排序标注。 3.公文中引用文件时,应按规范将文件名称和发文字号写全,一般格式为“《关于××××的××》(××××〔××××〕××号)”,特别注意发文字号中必须使用六角括号“〔××××〕”。 4.附件在正文末下空1行,靠左缩进2字符排布;标准格式为“附件:1.××××”;附件名称不用书名号,结尾不加标点符号;单个附件不标注序号;多个附件用阿拉伯数字“1.”标注序号,并按顺序回行排列;回行时,序号与序号对齐,名称内容与内容对齐。 5.发文机关署名(俗称“落款”)在正文末(或附件末)下空1-3行(不盖章时空1行,盖章时空3行),靠右空2字符排布。 6.成文日期(俗称“落款日期”)在发文机关署名下一行靠右排布,以发文机关署名为准居中;标准格式为“××××年××月××日”,用阿拉伯数字将年、月、日标全,不编虚位。 7.用印时,公章应端正盖住发文机关署名,印章上部约三分之二压在空白处,印章上沿距正文最后一行文字空1行,印章下沿骑“年”盖“月”。 8.附注(上行文、平行文中用于标注联系人、联系电话)在成文日期下一行靠左缩进2字符排布;标准格式为“(联系人:×××;联系电话:××××)”。 9.正文中所有标点符号应在中文输入法模式下输入。数字、英文中使

pe文件格式

PE文件格式详解(一)――基础知识 什么是PE文件格式: 我们知道所有文件都是一些连续(当然实际存储在磁盘上的时候不一定是连续的)的数据组织起来的,不同类型的文件肯定组织形式也各不相同;PE文件格式便是一种文件组织形式,它是32位Wind ow系统中的可执行文件EXE以及动态连接库文件DLL的组织形式。为什么我们双击一个EXE文件之后它就会被Window运行,而我们双击一个DOC文件就会被Word打开并显示其中的内容;这说明文件中肯定除了存在那些文件的主体内容(比如EXE文件中的代码,数据等,DOC文件中的文件内容等)之外还存在其他一些重要的信息。这些信息是给文件的使用者看的,比如说EXE文件的使用者就是Window,而DOC文件的使用者就是Word。Window可以根据这些信息知道把文件加载到地址空间的那个位置,知道从哪个地址开始执行;加载到内存后如何修正一些指令中的地址等等。那么PE文件中的这些重要信息都是由谁加入的呢?是由编译器和连接器完成的,针对不同的编译器和连接器通常会提供不同的选项让我们在编译和 联结生成PE文件的时候对其中的那些Window需要的信息进行设定;当然也可以按照默认的方式编译连接生成Window中默认的信息。例如:WindowNT默认的程序加载基址是0x40000;你可以在用VC连接生成EXE文件的时候使用选项更改这个地址值。在不同的操作系统中可执行文件的格式是不同的,比如在Linux上就有一种流行的ELF格式;当然它是由在Linux上的编译器和连接器生成的,

所以编译器、连接器是针对不同的CPU架构和不同的操作系统而涉及出来的。在嵌入式领域中我们经常提到交叉编译器一词,它的作用就是在一种平台下编译出能在另一个平台下运行的程序;例如,我们可以使用交叉编译器在跑Linux的X86机器上编译出能在Arm上运行的程序。 程序是如何运行起来的: 一个程序从编写出来到运行一共需要那些工具,他们都对程序作了些什么呢?里面都涉及哪些知识需要学习呢?先说工具:编辑器-》编译器-》连接器-》加载器;首先我们使用编辑器编辑源文件;然后使用编译器编译程目标文件OBJ,这里面涉及到编译原理的知识;连接器把OBJ文件和其他一些库文件和资源文件连接起来生成EXE文件,这里面涉及到不同的连接器的知识,连接器根据OS的需要生成EXE文件保存着磁盘上;当我们运行EXE文件的时候有W indow的加载器负责把EXE文件加载到线性地址空间,加载的时候便是根据上一节中说到的PE文件格式中的哪些重要信息。然后生成一个进程,如果进程中涉及到多个线程还要生成一个主线程;此后进程便开始运行;这里面涉及的东西很多,包括:PE文件格式的内容;内存管理(CPU内存管理的硬件环境以及在此基础上的OS内存管理方式);模块,进程,线程的知识;只有把这些都弄清楚之后才能比较清楚的了解这整个过程。下面就让我们先来学习PE文件格式吧。

简易比选申请文件格式格式.doc

建设项目编制可行性研究报告比选申请文件

比选申请人: 日期:

目录 一、商务部分 1、比选函及承诺书 2、法定代表人身份证明书 3、法定代表人授权委托书 4、比选申请人基本情况 5、比选申请人类似项目业绩一览表 6、比选申请人本项目技术人员情况表 二、报价部分 1、报价表 三、技术部分 1、可行性研究报告编制方案

一、商务部分 比选函及承诺书 致: 按照贵方《建设项目编制可行性研究报告比选文件》的要求,本文件签署人受正式委托,兹以我方的名义并代表 递交下列文件给贵方。 本文件签署人特以本函在此申明并同意: (1)我方已详细阅读和审查了全部比选文件以及全部参考资料和有关附件对比选文件的条款和内容没有异议并接受。 (2)我方根据本项目的实际和比选文件的编制可研报告需完成的内容和所有其他相关的内容,依据国家计委(计价格[1999]1283号)收费标准进行报价,并考虑调整系数。并遵循上述比选文件的要求,完成编制可研报告须完成的内容且满足项目立项和银行贷款要求。 (3)我方同意在比选截止日期后,在比选有效期内撤回比选或我方在收到中选通知书后,由于自身原因未能在约定的时间内与比选人进行合同谈判,其中选资格将被取消。 (4)本报价有效期为从规定的递交比选文件截止日起30个工作日内有效。 (5)我方将按比选文件的规定履行合同责任和义务,并对提交的材料中的所有陈述和申明的真实、准确、可靠性负责。若比选人发现我方提交的资料中有与事实不符的情况,有权拒绝我们的比选。 比选申请人:(盖章) 公司地址: 法定代表人或其委托代理人:(签字)

日期: 法定代表人身份证明书 比选申请人: 单位性质: 地址: 成立时间:年月日 经营期限: 姓名:性别:年龄: 职务:系的法定代表人。 特此证明 比选申请人:(盖章) 日期:

常用文件格式大全

常用文件格式大全 不同的文件,有不同的文件格式,区别这些文件格式常常是文件名的后缀名不同,现统计常用文件后缀名如下,供读者参考和查阅。 BAT DOS下的批处理文件。Autoexec.bat为自动批处理文件,它是特殊的批处理文件。 EXE 可执行的程序文件,与COM内部结构不相同,最突出是长度没有限制。 COM 可执行的二进制代码系统程序文件,特点非常短小精焊,长度有限制。 ASM 汇编程序文件为二进制代码文件,可以打个比方,它就像BASIC中的.BAS程序文件一样,为不可执行文件。 ASC 代码文件。 BAK 备份文件 LIB 程序库文件 CHK 检查磁盘命令CHKDSK发现的目录或文件分配表中的错误,校正系统后的文件。 TMP 临时文件 SYS 系统配置文件,最典型的如config.sys,一般可以用EDIT进行编辑。 OBJ 目标文件,源程序编译输出的目标代码。 OLD 备份文件,一般是一些程序对系统配置修改后将原文件复制一份存储为该文件格式。 INI 配置文件,不要以为这个文件只有Windows程序需要,DOS下程序也有不少需要它,如3DS与AutoCAD。 INF 安装配置文件,这在WIN95下使用较多。 HLP HELP帮助文件,这个文件一定要重视,因为它是你每使用一个新软件的最好的说明书,几乎99% 的软件都有这个文件,另外,DOS下的一些帮助放在README以后,帮助便没有了,如UCDOS中的REAME.EXE;有单独DOS的命令,若不知道怎么使用,可以试试以下的命令格式:“DIR?或DIR/?”。 DDI 早期映象文件,由DiskDUP IMGDRIVE IMG.EXE展开 IMG 这个文件要注意,有时它是一个图象文件,但更多的时候,它是映象文件,在早期光盘上,此文件使用最多,能常用HD-COPY IMG UNIMG都软件进行解压(注:IMG这个软件为什么一闪就没了呢,这个软件需要热键激活,按下Ctrl+Alt+S+D+X),如果要安装的软件压缩文件由和几个IMG分开压缩,那最好用UNIMG 将它们全部解压缩,然后安装,它安装时提示你“请插入X序列盘”。 ARJ ARJ(ARJ这个以前风眯一时的压缩软件谁人不晓)软件压缩的文件,它的压缩比较高,使用也特方便顺手,只需要“ARJ a -r -v……” RAR 这也是一个压缩文件,传说比ARJ压缩比更高,笔者没有亲手做试验,故不敢下空此结论。 ZIP 当前最流行的压缩文件,谁不知道ZIP呀,WINZIP,再也不是DOS下的那个UNZIG或PKZIP了,兼容,向下兼容,从游戏到软件,差不多都是它压缩的了。 IMD UCDOS中输法的编码字典文件。 PDV UCDOS中的自由表格UCTAB生成的表格文件,它生成的文件可以被WPS调用,也挺方便的。 BAS BASIC中的源程序文件,BASIC可为初学者最为熟悉的编辑语言,它的优点笔者就不在累赘了,注意QBASIC与QUICK BASIC和GW BASIC是有区别。 C C语言中的源程序文件,它不但造就了我们常常为之日夜奋战的精彩电脑游戏,还创造出UNIX操作系统,有口皆碑的好编程软件。 MAK C语言中的工程文件。 COB COBOL语言源程序文件。 PAS PASCAL语言源程序文件。 FOR FORTRAN语言源程序文件。 FOX FOXBASE伪编译程序文件,比PRG短小运行速度快。

PE格式基础及程序的装入

DOS MZ header部分是DOS时代遗留的产物,是PE文件的一个遗传基因,一个Win32程序如果在DOS下也是可以执行,只是提示:“This program cannot be run in DOS mode.”然后就结束执行,提示执行者,这个程序要在Win32系统下执行。 DOS stub 部分是DOS插桩代码,是DOS下的16位程序代码,只是为了显示上面的提示数据。这段代码是编译器在程序编译过程中自动添加的。 PE header 是真正的Win32程序的格式头部,其中包括了PE格式的各种信息,指导系统如何装载和执行此程序代码。 Section table部分是PE代码和数据的结构数据,指示装载系统代码段在哪里,数据段在哪里等。对于不同的PE文件,设计者可能要求该文件包括不同的数据的Section。所以有一个Section Table 作为索引。Section多少可以根据实际情况而不同。但至少要有一个Section。如果一个程序连代码都没有,那么他也不能称为可执行代码。在Section Table后,Section数目的多少是不定的。 二、程序的装入 当我们在explorer.exe(资源管理器)中双击某文件,执行一个可执行程序,系统会根据文件扩展名启动一个程序装载器,称之为Loader。Loader会首先检查DOS MZ Header,如果存在,就继续寻找PE header,如果这两项都不存在,就认为是DOS 16位代码,如果只存在DOS MZ Header,而其中又指示了而其中又指示了PE Header 的位置,那么Loader 就判定此文件不一个有效的PE文件,拒绝执行。 如果DOS Header 和PE Header都正常有效,那么Loader就会根据PE Header 及Section Table的指示,将相应的代码和数据映射到内存中,然后根据不同的Section进行数据的初始化,最后开始执行程序段代码。 三、PE格式高级分析 下面我们以一个真实的程序为例详细分析PE格式,分析PE格式最好有PE分析器,常用的软件是Lord PE,也有其它的分析工具和软件如PE Editor 、Stud PE等。 先分析一下磁盘文件的内容,这里我们使用UltraEdit32(UE)工具,这是一个实用的文件编辑器,可以编辑文本和二进制文件。

文件各种书写格式范文

文件各种书写格式范文 单位介绍信是一种正式的介绍文件。介绍派出人员的身份和任务的专用信件。用一般的公文信纸书写。包括标题、称谓、正文、结尾、单位名称和日期、附注几部分。下面为大家详细介绍单位介绍信如何写。 一、首先了解单位介绍信的作用: (1)介绍信主要用于联系工作、洽谈业务、参加会议、了解情况时的自我说明。 (2)对于持信人而言,介绍信具有介绍、证明双重作用。 二、首先第一行在中间写标题"介绍信",字体推荐用宋体二号居中。 三、第二行顶格写收信单位名称或收信人姓名,姓名后面需要加尊称,如先生、女士等。 四、第三行是你所要介绍的正文,要把所要介绍的人的姓名、人数、身份、职称表达清楚;清楚的表达你所要介绍的接洽的事项。

五、最后致敬和祝愿的话,如“此致敬礼”。在正文的右下方写明派遣单位的名称和介绍信的开出日期,并加盖公章。日期写在单位名称下方。附注注明介绍信的有效期限,具体天数用大写。 介绍信范文: 公司: 兹有公司法人代表授权委托同志为本公司代表前往贵处,全权办理事宜,请予接洽为盼! 委托单位:公司 法人代表: 日期:年月日 就好比为什么要有交通规则等,论文的格式不仅体现了它的严谨性,更是规范性的体现,高考作文要求按照它的格式写就是为了规范,如果你写出格子外,用铅笔等不符合规矩的笔,最后分数低只能怪自己,所以规则既然制订了,就得遵从,更何况这个规则是有好处的。

图片格式转换可以用『格式工厂』 格式工厂支持几乎所有类型多媒体格式。转换过程中,可以修复损坏的文件,让转换质量无破损。还可以帮你的多媒体文件减肥,节省磁盘空间,方便保存与备份。 软件界面非常清爽,没有任何广告,只保留了最基本的功能。 界面左边为支持转换的格式,还有一个工具集,可以进行简单的视频合并,音频合并,混流,混合等。右边可以查看转换实时进度和一些文件基本信息。使用方法非常简单,一看就会,就不介绍了。 个人担保书格式范文 【范文一】 出借人:_____ 电话:_____ ___号:__________ 借款人:_____ 电话:_____ ___号:__________

党政机关公文格式2012版(含式样)

党政机关公文格式 GB/T 9704—2012 目次 前言 1 范围 2 规范性引用文件 3 术语和定义 4 公文用纸主要技术指标 5 公文用纸幅面尺寸及版面要求 5.1 幅面尺寸 5.2 版面 5.2.1 页边与版心尺寸 5.2.2 字体和字号 5.2.3 行数和字数 5.2.4 文字的颜色 6 印制装订要求 6.1 制版要求 6.2 印刷要求 6.3 装订要求 7 公文格式各要素编排规则 7.1 公文格式各要素的划分 7.2 版头 7.2.1 份号 7.2.2 密级和保密期限 7.2.3 紧急程度 7.2.4 发文机关标志 7.2.5 发文字号

7.2.6 签发人 7.2.7 版头中的分隔线 7.3 主体 7.3.1 标题 7.3.2 主送机关 7.3.3 正文 7.3.4 附件说明 7.3.5 发文机关署名、成文日期和印章 7.3.5.1 加盖印章的公文 7.3.5.2 不加盖印章的公文 7.3.5.3 加盖签发人签名章的公文 7.3.5.4 成文日期中的数字 GB/T 9704—2012 7.3.5.5 特殊情况说明 7.3.6 附注 7.3.7 附件 7.4 版记 7.4.1 版记中的分隔线 7.4.2 抄送机关 7.4.3 印发机关和印发日期 7.5 页码 8 公文中的横排表格 9 公文中计量单位、标点符号和数字的用法 10 公文的特定格式 10.1 信函格式 10.2 命令(令)格式 10.3 纪要格式 11 式样

GB/T 9704—2012 前言 本标准按照GB/T 1. 1—2009给出的规则起草。 本标准根据中共中央办公厅、国务院办公厅印发的《党政机关公文处理工作条例》的有关规定对GB/T 9704—1999《国家行政机关公文格式》进行修订。本标准相对GB/T 9704—1999主要作如下修订: a)标准名称改为《党政机关公文格式》,标准英文名称也作相应修改; b)适用范围扩展到各级党政机关制发的公文; c)对标准结构进行适当调整; d)对公文装订要求进行适当调整; e)增加发文机关署名和页码两个公文格式要素,删除主题词格式要素,并对公文格式各要素的编排进行较大调整; f)进一步细化特定格式公文的编排要求; g)新增联合行文公文首页版式、信函格式首页、命令(令)格式首页版式等式样。 本标准中公文用语与《党政机关公文处理工作条例》中的用语一致。 本标准为第二次修订。 本标准由中共中央办公厅和国务院办公厅提出。 本标准由中国标准化研究院归口。 本标准起草单位:中国标准化研究院、中共中央办公厅秘书局、国务院办公厅秘书局、中国标准出版社。 本标准主要起草人:房庆、杨雯、郭道锋、孙维、马慧、张书杰、徐成华、范一乔、李玲。 本标准代替了GB/T 9704—1999。 GB/T 9704—1999的历次版本发布情况为: ——GB/T 9704—1988。

文件格式规范

公司文件格式规范 文件制式要求 公司文件的标准字体为微软雅黑,如无特殊说明,公司所有文件执行以下标准: 一、封面 标题局中,字体使用黑体小初号,加粗;副标题字体使用黑体一号。 二、标题 各种文件中,文件标题均使用黑体二号字,加粗;副标题用黑体四号字体,不加粗;标题与正文之间空一行。 三、LOGO 均放右上角,封面使用(图案+公司简称)字体黑体一号,文件正文使用(图案+公司全称)字体黑体小五号。 四、正文 一级标题以汉字(一、二、三等)标注为黑体四号字,加粗; 二级标题以括号内汉字(一)(二)(三)等标注为黑体小四号字,不加粗; 三级标题以数字(1、2、3等)标注为仿宋小四号字,正文为仿宋小四号字,不加粗;另外,正文前如有填写说明与目录的,请依序安排,其中,填写说明与目录的正文均使用黑体小四号字,不加粗。 五、行距 文件全文行距设置为1、25倍行距,段落之间与条款之间空一行,各条款中的小标题无须空行。

六、段落开头段落设置一般为首行缩进(2个字符),含条款的(如合同)为悬挂缩进。 七、页面设置 页边距上下均为2、54厘米,左右为3、17厘米,页眉距边界为1,5厘米,页脚为1、75厘米。 八、页眉页脚 文件的页眉为靠右公司LOGO;页脚格式正中均为数字“共几页一第几页”(如5一1 ),使用黑体小五号字。 九、图表 图表大小可根据需要设定,图表标题需用仿宋,五号字体,图表内容中,标题栏需用仿宋,小四号字体,加粗,其它文字内容用仿宋,五号字体,图表的说明注解文字则用仿宋,小五号字体。 十、落款 文件底部落款签名与日期使用黑色小四号字,加粗。 十一、其它公司其它固定格式文件(公文、信纸、传真、邮件、合同等),请按附件格式样本(见附件) 附录部门文件编号格式: I、行政管理文件T R一X Z一年度后两位+月+顺序号(如121001 ) 2、人事管理文件T R一H R一年度后两位+月+顺序号(如121001 ) 3、财务管理文件T R一C M/一年度后两位+月+顺序号(如121001 ) 4、营销管理文件T R一D〈一年度后两位+月+顺序号(如121001 ) 5、资产管理文件T R一z e一年度后两位+月+顺序号(如121001 )

各种文件的后缀文件格式

超星浏览器 002 超星浏览器 003 超星浏览器 !!! 没有下载完成的另时文件 aiff Windows Media Player ani 动画鼠标 ans 记事本 ape Monkey s audioWinamp 2.81以上版本 arj 压缩文件ARJ asp 无效下载文件,重新下载 au Windows Media Player avi Media player金山影霸(如果不能播放请装divx插件) bik bink playerRAD Game Tools bin daemon tool虚拟光驱 bmp 画图(Windows附件) box Lotus Notes c Turbo C;记事本 cab WinRARINSTALL SHELDWinzip caj Cajviewer ccd daemon tool cdr Corel DRAWfreehand chm Windows帮助文件,直接打开 cmb ComicGURU cpp C++记事本 cue daemon tool cur 静态鼠标 Dat 不确定打开方式,多种格式的数据文件 db SQL数据库文件 dbf FoxbaseDbaseVisual FoxPro ddb Protel 99 se dfi 东方光驱魔术师 doc Microsoft Word dwg AutoCAD eml outlook fla Macromedia Flash 6 gba game boy advanced的文件,游戏模拟器 gho Norton Ghost gif AcdseeInternet Explorer hlp Windows帮助文件,可以直接打开 htm Internet Explorer ico Windows图标AcdSee img daemon toolWinimg inf 记事本 ini 记事本

国家机关政府机关公文格式与标准(word绝对正式)

国家政府机关公文格式 及公文字体字号标准 公文纸一般采用国内通用的16开型,推荐采用国际标准A4型,供张贴的公文用纸幅度面尺寸,可根据实际需要确定。 保密等级字体:一般用3号或4号黑体 紧急程度字体:字体和字号与保密等级相同(3号或4号黑体) 文头的字体:大号黑体字、黑变体字或标准体、宋体字套色(一般为红)发文字号的字体:一般采用3号或4号仿宋体 签发人的字体:字体字号与发文字号相同(3号或4号仿宋体) 标题的字体:字体一般宋体、黑体,字号要大于正文的字号。 主送机关的字体:一般采用3号或4号仿宋体 正文的字体:常用3号或4号仿宋体 附件的字体:常用3号或4号仿宋体 作者的字体:字体字号与正文相同(3号或4号仿宋体) 日期的字体:字体字号与正文相同(3号或4号仿宋体) 注释的字体:小于正文的的4号或小4号仿宋体 主题词的字体:常用3号或4号黑体 [公文写作]公文格式排版中的字体要求[公文写作]抄送机关的字体:与正文的字体字号相同(常用3号或4号仿宋体)或小一号的文字印发说明的字体:与抄送机关的字体字号相同(常用3号或4号仿宋体)或小一号的文主标题(又称一级标题)为二号宋体(加粗)

二级标题为三号黑体 三级标题为三号仿宋加粗。 正文均为三号仿宋。 以上为政府公文规定。且主标题以外的部份的标题和正文可采用小三号字体,但以三号为最正规。 1、密级用三号黑体字 2、紧急程度,“特急”、“加急”用三号黑体字 3、文号用四号仿宋体字加黑 4、签发人用三号楷体字 5、标题用二号宋体字加黑 6、大小标题号“一、二、三……”用三号黑体;“(一)(二)(三)……”用三号仿宋体字 7、正文用三号仿宋体字(每页19行,每行25个字) 8、批转(转发、印发)……通知,通知正文用三号楷体字,被批转(转发、印发)文件用三号仿宋体字 9、附件标题用二号宋体字,正文用三号仿宋体字 10、印发传达范围用三号仿宋体字 11、“主题词”三个字用三号黑体字;词组用三号宋体字 12、抄送机关名称用四号仿宋体字 13、印发机关名称和印发日期用四号仿宋体字;印发份数用五号仿宋体字

PE文件头解析大全

PE可选头部 PE可执行文件中接下来的224个字节组成了PE可选头部。虽然它的名字是“可选头部”,但是请确信:这个头部并非“可选”,而是“必需”的。OPTHDROFFSET宏可以获得指向可选头部的指针: PEFILE.H #define OPTHDROFFSET(a) ((LPVOID)((BYTE *)a + \ ((PIMAGE_DOS_HEADER)a)->e_lfanew + \ SIZE_OF_NT_SIGNATURE + \ sizeof(IMAGE_FILE_HEADER))) 可选头部包含了很多关于可执行映像的重要信息,例如初始的堆栈大小、程序入口点的位置、首选基地址、操作系统版本、段对齐的信息等等。IMAGE_OPTIONAL_HEADER结构如下: WINNT.H typedef struct _IMAGE_OPTIONAL_HEADER { // // 标准域 // USHORT Magic; UCHAR MajorLinkerVersion; UCHAR MinorLinkerVersion; ULONG SizeOfCode; ULONG SizeOfInitializedData; ULONG SizeOfUninitializedData; ULONG AddressOfEntryPoint; ULONG BaseOfCode; ULONG BaseOfData; // // NT附加域 // ULONG ImageBase; ULONG SectionAlignment;

ULONG FileAlignment; USHORT MajorOperatingSystemVersion; USHORT MinorOperatingSystemVersion; USHORT MajorImageVersion; USHORT MinorImageVersion; USHORT MajorSubsystemVersion; USHORT MinorSubsystemVersion; ULONG Reserved1; ULONG SizeOfImage; ULONG SizeOfHeaders; ULONG CheckSum; USHORT Subsystem; USHORT DllCharacteristics; ULONG SizeOfStackReserve; ULONG SizeOfStackCommit; ULONG SizeOfHeapReserve; ULONG SizeOfHeapCommit; ULONG LoaderFlags; ULONG NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER; 如你所见,这个结构中所列出的域实在是冗长得过分。为了不让你对所有这些域感到厌烦,我会仅仅讨论有用的——就是说,对于探究PE文件格式而言有用的。 标准域 首先,请注意这个结构被划分为“标准域”和“NT附加域”。所谓标准域,就是和UNIX可执行文件的COFF 格式所公共的部分。虽然标准域保留了COFF中定义的名字,但是Windows NT仍然将它们用作了不同的目的——尽管换个名字更好一些。 ·Magic。我不知道这个域是干什么的,对于示例程序EXEVIEW.EXE示例程序而言,这个值是0x010B

各种格式文件之间的转换

一、把PPT转WORD形式的方法 1.利用"大纲"视图打开PPT演示文稿,单击"大纲",在左侧"幻灯片/大纲”任务窗格的“大纲”选项卡里单击一下鼠标,按"Ctrl+A"组合健全选内容,然后使用"Ctrl+C"组合键或右键单击在快捷菜单中选择"复制"命令,然后粘贴到Word 里。 提示:这种方法会把原来幻灯片中的行标、各种符号原封不动的复制下来。2.利用"发送"功能巧转换打开要转换的PPT幻灯片,单击"文件"→"发送"→"MicrosoftWord"菜单命令。然后选择"只使用大纲"单选按钮并单击"确定"按钮,等一会就发现整篇PPT文档在一个Word文档里被打开。 提示:在转换后会发现Word有很多空行。在Word里用替换功能全部删除空行可按"Ctrl+H"打开"替换"对话框,在"查找内容"里输入"^p^p",在"替换为"里输入"^p",多单击几次"全部替换"按钮即可。("^"可在英文状态下用"Shift+6"键来输入。)3.利用"另存为"直接转换打开需要转换的幻灯片,点击"文件"→"另存为",然后在"保存类型"列表框里选择存为"rtf"格式。现在用Word打开刚刚保存的rtf文件,再进行适当的编辑即可实现转换。 4.PPTConverttoDOC软件转换PPTConverttoDOC是绿色软,解压后直接运行,在运行之前请将Word和PPT程序都关闭。选中要转换的PPT文件,直接拖曳到"PPTConverttoDOC"程序里。单击工具软件里的"开始"按钮即可转换,转换结束后程序自动退出。 提示:如果选中"转换时加分隔标志",则会在转换好的word文档中显示当前内容在原幻灯片的哪一页。转换完成后即可自动新建一个Word文档,显示该PPT文件中的所有文字。 ps: 第四种慎用,百度上很多所谓的那个软件都是有病毒的,毒性不小,一般的杀毒软件查不出~~ PDF文档的规范性使得浏览者在阅读上方便了许多,但倘若要从里面提取些资料,实在是麻烦的可以。 二、把PDF转换成Word的方法 Adobe Acrobat 7.0 Professional 是编辑PDF的软件。 用Adobe Acrobat 7.0 Professional 打开他另存为WORD试试看。 或者用ScanSoft PDF Converte,安装完成后不须任何设置,它会自动整合到Word 中。当我们在Word中点击“打开”菜单时,在“打开”对话框的“文件类型”下拉菜单中可以看到“PDF”选项,这就意味着我们可以用Word直接打开PDF 文档了! ScanSoft PDF Converter的工作原理其实很简单,它先捕获PDF文档中的信息,分离文字、图片、表格和卷,再将它们统一成Word格式。由于Word在打开PDF 文档时,会将PDF格式转换成DOC格式,因此打开速度会较一般的文件慢。打开时会显示PDF Converter转换进度。转换完毕后可以看到,文档中的文字格式、版面设计保持了原汁原味,没有发生任何变化,表格和图片也完整地保存下来了,可以轻松进行编辑。 除了能够在Word中直接打开PDF文档外,右击PDF文档,在弹出菜单中选择“Open PDF in Word”命令也可打开该文件。另外,它还会在Outlook中加入一

政府机关公文格式要求及排版(最新)

政府机关公文格式要求及排版(最新) 一、设置页面(“页面布局”—页“面设置”) (一)“页边距” 1.页边距:上3 厘米、下2.5 厘米、左2.6 厘米、右2.5 厘米。2.纸张方向:纵向。 (二)“纸张” 纸张大小:A4。 确保“每面排22 行,每行排28 个字,并撑满版心”。 二、设置标题 (一)“字体” 1.主标题:先设置字体为华文小标宋简体(或华文中宋、宋体),再设置字体为Times New Roma n;字形,加粗;字号,二号。 2.副标题:字体,与主标题一致;字形,不加粗;字号,三号。 (二)“段落” 1.对齐方式:居中。 2.左侧右侧缩进均为0 字符。 3.特殊格式:无。 4.段前段后间距均为0 行。 5.行距:固定值,28 磅。 (三)内容要求1.标题可分一行或多行居中排布,回行时应排列对称、长短适宜、间距恰当;多行标题排列时应当采用梯形或菱形布局,不应采用上下长短一样的长方形或上下长中间短的沙漏形。 2 ?正式公文标题应要素完整,一般格式为发文机关+关于XX(事由)的+文种” 3.标题回行时应词意完整,不能将词组拆开;发文机关名称应在第一行居中排布;最后一行不能将“的”与文种单独排列成行。 4 ?标题中除法规、规章名称可加书名号外,一般不用标点符号。 (四)标题与正文间隔空一行,字号为五号,行距为最小值12 磅。 三、设置正文 (一)“字体” 1?一级标题:字体,黑体;字形,不加粗;字号,三号。 2 ?二级标题:字体,楷体_GB2312 (或楷体);字形,不加粗;字号,三号。 3.三级标题、四级标题和五级标题:字体,仿宋_GB2312 (或仿宋);字形,加粗;字号, 三号。 4 ?其余正文(包括附件、落款、附注):字体,仿宋_GB2312 (或仿宋);字形,不加粗; 字号,三号。 5 ?正文各级各类字体设定完后,应再次选定全文,设置字体为Times New Roman。 (二)“段落” 1 ?对齐方式:两端对齐。 2 .左侧右侧缩进均为0字符。 3 ?特殊格式:首行缩进,2字符。 4 ?段前段后间距均为0行。 5 .行距:固定值,30磅。 (三)内容要求

各种文件的格式(扩展名)及打开方式汇总和说明

ACE : Ace压缩档案格式 ACT : Microsoft office 助手文件 AIF , AIFF :音频互交换文件,Silicon Graphic and Macintosh 应用程序的 声音格式 ANI : Windows 系统中的动画光标 ARC : LH ARC 的压缩档案文件 ARJ : Robert Jung ARJ 压缩包文件 ASD : Microsoft Word 的自动保存文件;Microsoft 高级流媒体格式(microsoft adva need stream ing format ,ASF)的描述文件;可用NSREX打开Velvet Studio 例子文件ASF : Microsoft 高级流媒体格式文件 ASM :汇编语言源文件,Pro/E装配文件 ASP :动态网页文件;ProComm Plus 安装与连接脚本文件;Astound 介绍文件 AST : Astound 多媒体文件;ClarisWorks 助手”文件 Axx : ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99 的数字) A3L : Authorware 3.x 库文件 A4L : Authorware 4.x 库文件 A3M ,A4M : Authorware Macintosh 未打包文件

A5L : Authorware 5.x 库文件 A3M ,A4M : Authorware Macintosh 未打包文件

A3W , A4W , A5W :未打包的Authorware Windows 文件B BAK :备份文件 BAS : BASIC 源文件 BAT :批处理文件 BIN :二进制文件 BINHex :苹果的一种编码格式 BMP : Windows 或OS/2位图文件 BOOK : Adobe FrameMaker Book 文件 BOX : Lotus Notes 的邮箱文件 BPL : Borlard Delph 4 打包库 BSP : Quake图形文件 BUN : CakeWalk 声音捆绑文件(一种MIDI程序) C C0I :台风波形文件 CAB : Microsoft 压缩档案文件 CAD : Softdek 的Drafix CAD 文件 CAM : Casio照相机格式 CAP :压缩音乐文件格式 CAS :逗号分开的ASC U文件 CCB : Visual Basic 动态按钮配置文件

国家行政机关公文格式

国家行政机关公文格式 前言 为使国家行政机关的公文从内容到表现形式都体现规范化、制度化、科学化,有效发挥公文的法定效力,反映政府机关工作质量和治理水平,公文格式的统一和规范是十分必要的。 国务院于2000年8月24日印发了《关于发布的通知》(国发[2000]23号)。《办法》第三章对公文格式作了详细规范。《办法》第三章第十一条规定:公文各组成部分的标识规则,参照《国家行政机关公文格式》国家标准执行。《办法》第十二条还对公文的用纸作了规定:公文(gong1wen2)用纸一般采用国际标准A4型(210mm×297mm),左侧装订。张贴的公文用纸大小,根据实际需要确定。这里提到的“国家标准”是指国家质量技术监督局于1999年12月正式批准发布的GB/T9704-1999《国家行政机关公文格式》国家标准(以下简称“99新国标”),(xin1guo2biao1___)此标准已于2000年1月l日开始实施。这是(rikaishishishi_zheshi)继1988年国家技术监督局遵国务院办

公厅指示发布GB/T9704-1988《国家机关公文格式》(以下简(__yixiajian)称“88原国标”)国家标准试行以来,对该标准进行的第一次修订。 99新国标相对88原国标,在公文用纸纸型、幅面尺寸、公文用纸技术指标、装订要求、公文诸要素的字体字号、排布规则等方面作了大幅度调整,既体现了与国际标准的接轨,又符合我国公文格式要求的实际,将成为未来一段时间内我国行政机关和企事业单位在公文格式上所遵从的统一规范。 99新国标正是为解决长期以来在公文格式的规范方面存在只有原则指导,而无详细要求的实际问题,通过标准的形式将公文格式中的每个细节要素根据科学实用的原则予以确定的。这样可使从事公文处理的工作者在制作公文时有正确定量的科学依据,据此制作出符合国家有关规定的合格的行政机关公文。 一、公文用纸主要技术指标、幅面及版面尺寸

PE文件结构

检验PE文件的有效性 <1>首先检验文件头部第一个字的值是否等于IMAGE_DOS_SIGNATURE,是则表示DOS MZ header有效 <2>一旦证明文件的Dos header 有效后,就可用e_lfanew来定位PE header <3>比较PE header 的第一个字的值是否等于IMAGE_NT_HEADER,如果前后两个值都匹配. PS.WinHex使用方法 1.Alt+G跳到指定位置 2.Ctrl+Shift+N放入新文件 3.大文件扩容,新建一个扩容大小+1的文件,把这个文件的数据复制后写入整个文件的尾地址. 4.文本搜索ctrl+F 5.十六进制搜索ctrl+alt+x 6.文本显示F7 7.打开内存alt+F9 8.进制转换器F8 9.分析选块F2 10.计算HASH ctrl+F2 11.收集文本信息ctrl+F10 12.编辑模式F6 一.IMAGE_DOS_HEADER <1>位置00H,WORD(2个字节)的e_magic为4D5A,即MZ <2>位置3CH,60,LONG(4个节节)的e_lfanew为64+112=176即B0H, 二.IMAGE_NT_HEADERS <1>位置B0H,DWORD(4个字节),PE开始标记,写入50450000,即PE <2>位置B4H,WORD,PE所要求的CPU,对于Intel平台,为4C01 <2>位置B6,WORD,PE中段总数,计划有3个段,.text代码段,.rdata只读数据段,.data全局变量数据段,所以值为0300, <3>位置C4,WORD,表示后面的PE文件可选头的占空间大小,即224字节(E0),值为E000 <4>位置C6,WORD,表示文件是EXE还是DLL,如果是可执行文件写0200,如果是dll,写0020, <5>位置C8,WORD,表示文件格式,如果是0B01表示.exe,如果是0701表示ROM映像

相关文档
最新文档