Git Product home page Git Product logo

asmresolver's Introduction

AsmResolver

Master branch build status Nuget feed License: MIT Documentation Status Discord

AsmResolver is a PE inspection library allowing .NET programmers to read, modify and write executable files. This includes .NET as well as native images. The library exposes high-level representations of the PE, while still allowing the user to access low-level structures.

AsmResolver is released under the MIT license.

Features

AsmResolver has a lot of features. Below a non-exhaustive list:

  • Create, read and write PE files
    • Inspect and update PE headers.
    • Create, read and write sections.
  • Create, read and write various data directories
    • Debug Directory (CodeView)
    • .NET Directory
      • CIL assembler and disassemblers
      • Metadata Directory (tables, strings, user-strings, blobs, GUIDs)
      • Resources Directory
      • Strong Name Signing
      • VTable Fixup Directory
    • Exception Directory (AMD64)
    • Export Directory
    • Import Directory
    • Base Relocation Directory
    • TLS Directory
    • Win32 Resources Directory
  • Fully mutable object model for .NET modules that is similar to System.Reflection
    • Strong type-system with many useful factory methods for quickly constructing new metadata.
    • Full metadata importing and cloning (useful for injecting metadata into another assembly)
    • .NET Framework 2.0+, .NET Core and .NET 5+ binary file support.
    • Infer memory layout of types statically.
    • Create, read and write managed resource sets (.resources files)
    • Create new method bodies containing native code.
    • Highly configurable reader and writer options and custom error handling for both.
    • Rich support for AppHost and SingleFileHost bundled files.

Documentation

Check out the wiki for guides and information on how to use the library.

Binaries

Stable builds:

Nightly builds:

Branch Build status
master Master branch build status
development Development branch build status

Compiling

The solution can be build using the .NET SDK or an IDE that works with the .NET SDK (such as Visual Studio and JetBrains Rider). The main packages target .NET Standard 2.0, and the xUnit test projects target .NET Core 3.1.

To build the project from the commandline, use:

$ dotnet restore
$ dotnet build

To run all tests, simply run:

$ dotnet test

Contributing

See CONTRIBUTING.md for guidelines on general workflow and code style.

Found a bug or have questions?

Please use the issue tracker. Try to be as descriptive as possible.

You can also join the Discord to engage more directly with the community.

Acknowledgements

AsmResolver started out as a hobby project, but has grown into a community project with various contributors. Without these people, AsmResolver would not have been where it is today!

  • Special thanks to all the people who contributed directly with code commits.

  • Another big thank you to all the people that suggested new features, provided feedback on the API design, have done extensive testing, and/or reported bugs on the issue board, by e-mail, or through DMs.

If you feel you have been under-represented in these acknowledgements, feel free to contact me.

asmresolver's People

Contributors

washi1337 avatar ds5678 avatar theproxyre avatar jpaja avatar dependabot[bot] avatar anonym0ose avatar dr4k0nia avatar tobitofatitore avatar elektrokill avatar cursedland avatar zsr2531 avatar charterino avatar osumatrix avatar holly-hacker avatar maxxor avatar sunnamed434 avatar svenskithesource avatar 766f6964 avatar n78750469 avatar jerres avatar liiir1985 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.