New Reflector add-in: AssemblyInfo

I'm happy to announce the availability of AssemblyInfo version 2.0. AssemblyInfo is now a Reflector Add-in., adding a new language to Reflector.

In addition to what reflector already shows you, it will show

  • General file information, such as size, creation date and last modified date
  • All file version information embedded in the exe or dll
  • The Authenticode X509 certificate used to signe the file, if any
  • All useful information from the COFF and PE headers
  • The sections and their characteristics,
  • The native dll imports
  • All useful information from the CLR header, if any (it works on unmanaged files too)

AssemblyInfo will also show you all information on other .NET metadata, such as types and their members, in a way as close as possible to the internal .NET structures. It's like looking at metadata the way the CLR looks at it, at least that was my intention ;-).

Download AssemblyInfo, unzip it to a location of your choice, and add it to Reflector via the View menu, Add-ins option. Select the AssemblyInfo language from the language dropdown and you're ready to go.

For example, here's the output on the AssemblyInfo.exe module:

// Module AssemblyInfo.exe  
 Location            : C:\Program Files\Reflector\AssemblyInfo.exe 
 Size                : 49,5 KB
 Created             : 15/12/2007 13:20:24
 Modified            : 15/01/2008 23:12:42
File Version Info:
 Type:               : Executable (EXE)
 File Version:       :
 Product Version:    :
 Flags:              : None
Language: Language Neutral, Codepage 1200:
 CompanyName         : Kris Vandermotten
 FileDescription     : AssemblyInfo
 FileVersion         :
 InternalName        : AssemblyInfo.exe
 LegalCopyright      : Copyright (c) 2007, 2008 Kris Vandermotten
 OriginalFilename    : AssemblyInfo.exe
 ProductName         : AssemblyInfo
 ProductVersion      :
 Assembly Version    : 
Authenticode X509 Certificate:
COFF Header:
 Type                : Executable (EXE)
 Memory              : 32 bit
 Target machine      : I386
 Timestamp           : 15/01/2008 23:12:42
 Characteristics     : ExecutableImage, LineNumsStripped, LocalSymsStripped, Machine32Bit
PE Header:
 Kind                : 32 bit PE file
 Linker Version      : 8.0
 Image Base Address  : 0x00400000
 Section Alignment   : 8192
 File Alignment      : 512
 OS Version          : 4.0
 Image Version       : 0.0
 Subsystem           : WINDOWS_CUI
 Subsystem Version   : 4.0
 Stack Reserve       : 0x00100000 (1 MB)
 Stack Commit        : 0x00001000 (4 KB)
 Heap Reserve        : 0x00100000 (1 MB)
 Heap Commit         : 0x00001000 (4 KB)
 .text               : 47 KB (ContainsCode, MemExecutable, MemReadable)
 .rsrc               : 1,5 KB (ContainsInitializedData, MemReadable)
 .reloc              : 512 bytes (ContainsInitializedData, MemDiscardable, MemReadable)
Native imports:
CLR header:
 Runtime version     : 2.5 (v2.0.50727)
 Flags               : IlOnly, StrongNameSigned
 MetaData            : 30,37 KB
 Managed Resources   : 0 bytes
 VTableFixups        : 0 bytes
 Native Export Thunks: 0 bytes 
 Version GUID        : 3a1cd2b7-7cb5-4c65-8256-bd1e5a783e56 

I could not have written this without the book Expert .NET 2.0 IL Assembler by Serge Lidin, a book that I can highly recommend if you want to know more about the inner workings of .NET.

Enjoy, and let me know what you think.

Technorati tags: , , ,