Microsoft Portable Executable and Common Object File Format Specification

Updated: March 27, 2008

This document specifies the structure of executable (image) files and object files under the Microsoft Windows family of operating systems. These files are referred to as Portable Executable (PE) and Common Object File Format (COFF) files respectively. The name "Portable Executable" refers to the fact that the format is not architecture-specific.

Revision 8.1 of the Microsoft Portable Executable and Common Object File Format Specification specifies the structure of object and executable files supported by Visual Studio 2008 (Version 9.0 of Visual Studio) and the current Microsoft Windows family of operating systems, including Windows Server 2008. Revision 8.1 replaces all previous versions of this specification.

Revision 8.1 has been revised to better describe how Authenticode signing is accommodated, including:

Section 5.7, The Attribute Certificate Table (Image Only), has been substantially revised to clarify how Authenticode signatures are handled.

Appendix A, Calculating Authenticode PE Image Hash, has been removed from the specification and incorporated into a separate document, Windows Authenticode Portable Executable Signature Format

Please read the license agreement before continuing.

Top of pageTop of page

    PE-COFF LICENSE AGREEMENT

LICENSE AGREEMENT

Microsoft Portable Executable and Common Object File Format Specification
Microsoft Corporation
Revision 8.1

Note: This specification is provided to aid in the development of certain development tools for the Microsoft Windows platform. However, Microsoft does not guarantee that it is a complete specification in all respects, and cannot guarantee the accuracy of any information presented after the date of publication. Microsoft reserves the right to alter this specification without notice.

Microsoft will grant a royalty-free license, under reasonable and non-discriminatory terms and conditions, to any Microsoft patent claims (if any exist) that Microsoft deems necessary for the limited purpose of implementing and complying with the required portions of this specification only in the software development tools known as compilers, linkers, and assemblers targeting Microsoft Windows.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this specification may be reproduced, stored in or introduced into a retrieval system, modified or used in a derivative work, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft.

Microsoft may have intellectual property rights covering subject matter in this specification. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this specification does not give you any license to any intellectual property rights, and no other rights are granted by implication, estoppel, or otherwise.

© 2005-2008 Microsoft Corporation. All rights reserved.

This specification is provided "AS IS." Microsoft makes no representations or warranties, express, implied, or statutory, as (1) to the information in this specification, including any warranties of merchantability, fitness for a particular purpose, non-infringement, or title; (2) that the contents of this specification are suitable for any purpose; nor (3) that the implementation of such contents will not infringe any third party patents, copyrights, trademarks, or other rights.

Microsoft will not be liable for any direct, indirect, special, incidental, or consequential damages arising out of or relating to any use or distribution of this specification.

Microsoft, MS-DOS, Visual Studio, Visual C++, Win32, Windows, Windows NT, Windows Server, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.

The foregoing names and trademarks may not be used in any manner, including advertising or publicity pertaining to this specification or its contents without specific, written prior permission from the respective owners.


Top of pageTop of page