Skip to content

paavohuhtala/clri

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLRi

Slow, incompatible, buggy, unsupported CLR metadata parser (hopefully an interpreter in the future), implemented in Rust. Requires the nightly compiler.

What's implemented

  • PE executable parser
  • Some CLR metadata parsing
    • Image header
    • #Strings and #US string heaps
    • #~ header
    • Tagged/coded indices
    • The following metadata tables:
      • Module
      • TypeRef
      • TypeDef
      • MethodDef
      • MemberRef (MethodRef)
      • CustomAttribute
      • Assembly
      • AssemblyRef
  • That's pretty much it

Useful links

PE

Anatomy of a .NET assembly: PE headers

ImageHlp Structures

Peering Inside the PE: A Tour of the Win32 Portable Executable File Format

CLR

CLR ECMA Specification (335)

The .NET File Format

Anatomy of a .NET assembly: CLR metadata (series)

Existing implementations

License

Open source under the MIT license.

Releases

No releases published

Packages

No packages published