# Project structure

The project is made of the main library dotnetfile that is an interface to the CLR header parser. It offers easy to use methods to pull out data collected by the parser. As we use some functionality of pefile, the project can be seen as an extension of it. All methods provided by pefile can be also used in dotnetfile. The project structure is as follows.

Interface:

  • dotnetfile.py

Parser:

  • parser.py
  • constants.py
  • metadata_rows.py
  • structures.py
  • util.py

Logger:

  • logger.py

We encourage you to only use the dotnetfile interface as it offers easy to use methods to pull out information from the header. However, there might be situations were you search for something that isn't supported yet in dotnetfile. In this case, you can also directly get the data collected by the parser. But these internal data structures aren't heavily documented and might be difficult to understand when you're not familiar with the CLI specification.