Git Product home page Git Product logo

dotnetpelib's Introduction

DotNetPELib

DotNetPELib is a library which abstracts managed information such as namespaces, classes, fields, methods, properties, and instructions. The information can then be used to generate intermediate language source files, or PE executables or DLLs.

Build Status Build status

The library has been tested as the backend for the OCCIL compiler, and is reasonably functional. That said this version of the library does have various limitations; not all aspects of the managed environment are enabled at this time.

In addition to being able to generate .net programs, version 2.0 of the library has support for importing managed assemblies, and strong names. See 'changelog.txt' for a full description of the changes.

Version 2.2 of the library introduces read/write of a simple object file format in the familiar object-file-per-module paradigm, along with a linker.

A simple test program is included which generates several example executables in both IL and EXE format.

The project files are for Visual Studio 2017 community edition. This source code does use some of the new features in C++11.

dotnetpelib's People

Contributors

ladsoft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotnetpelib's Issues

Support linux

the portions of the code that look up system dlls don't work on linux. This could be improved, especially for .net core...

I'm leaving this as an issue rather than just addressing it because I'm not sure if there is any interest in it.

Support .net core

update DotNetPELib to support .net core

the way i envision it going is to load hostfxr.dll to get the .net core path and then link as normal... both applications and libraries are compiled as shared libraries in .net core. For the apps, there is an application stub that you copy to the destination directory and rename, then you stuff the created DLL name into it and maybe sign it, and finally, you have a running application. I think it also uses hostfxr.dll to set up the .net core environment somehow....

the application stub source code is available here on github as part of the .net core runtime project and is MIT licensed. So no problems there...

The one unknown is that I saw a comment somewhere about how it is no longer possible to link directly against mscorlib.dll any more, you have to somehow link to something else. I'll work that out when I get into this...

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.