Washi1337 / AsmResolver

A library for creating, reading and editing PE files and .NET modules.
https://docs.washi.dev/asmresolver/
MIT License
826 stars 125 forks source link
assembler cil disassembler dotnet il malware-analysis msil parser pe portable-executable reader reverse-engineering writer

AsmResolver

Master branch build status Nuget feed License: MIT Discord

AsmResolver is a library for reading, modifying and reconstructing Portable Executable (PE) files. It supports PE images running natively on Windows, as well as images containing managed (.NET) metadata.

AsmResolver is released under the MIT license.

Main Features

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

Documentation

Support

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 3.5, .NET Standard 2.0, .NET Standard 2.1, .NET Core 3.1, .NET 6.0, .NET 8.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 additional versions of .NET installed (including STS versions or versions declared EOL), as the unit tests verify reading binaries targeting various .NET runtimes. To run the tests successfully on MacOS and Linux, mono and wine are expected to be installed as well.

Contributing

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!

If you feel you have been under-represented in these acknowledgments, feel free to reach out.