Giter Site home page Giter Site logo

washi1337 / asmresolver Goto Github PK

View Code? Open in Web Editor NEW
800.0 36.0 124.0 8.68 MB

A library for creating, reading and editing PE files and .NET modules.

Home Page: https://docs.washi.dev/asmresolver/

License: MIT License

C# 99.91% C++ 0.06% C 0.02% Batchfile 0.01% Shell 0.01% Visual Basic .NET 0.01%
pe-analyzer disassembler native dotnet metadata-editor reader writer cil il msil

asmresolver's Introduction

AsmResolver

Master branch build status Nuget feed License: MIT Discord

AsmResolver is a Portable Executable (PE) inspection library that is able to read, modify and write executable files. This includes .NET modules 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.

Main Features

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

  • Create, read, modify, write and patch PE files.
    • Full access to sections, data directories and their interpretations.
  • Rich support for .NET modules with an intuitive API similar to System.Reflection.
    • Managed, native and dynamic method body support.
    • Easy metadata importing and cloning.
    • Managed resource file serializers and deserializers.
    • Support for AppHost / SingleFileHost bundles.
    • Support for ReadyToRun binaries.
  • Read PDB symbols.
    • Fully managed cross-platform API (No DIA or similar required).
  • .NET Standard 2.0 compatible.
  • Documented.
  • Unit tested.

Documentation

Binaries

Stable Builds:

Nightly Builds:

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

Compiling

The solution can be built using the .NET SDK or an IDE that works with it (e.g., Visual Studio and JetBrains Rider). The main packages target LTS versions of various .NET runtimes (.NET Standard 2.0, .NET Core 3.1 and .NET 6.0).

To build the project from the command line, use:

$ dotnet build

To run all tests, use:

$ dotnet test

For running the tests successfully, you will need to have various versions of .NET installed (ranging from .NET Framework to .NET Core 3.1 and .NET 5+), as the unit tests verify reading binaries targeting various .NET runtimes.

Contributing

Support

Acknowledgments

AsmResolver started 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 acknowledgments, feel free to reach out.

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.