Settings

Theme

The JustDecompile .NET decompiler engine has been open-sourced

github.com

102 points by jbevain · 19 comments

Reader

5 threads
exhilaration

How does this compare to dotPeek from JetBrains? https://www.jetbrains.com/decompiler/

  • felickz2

    Much better for newer features... for async/await dotpeek would show state machine ( which was actually cool to see), but JustDecompile would actually show me async await in decompiled code.

    ALSO, coolest feature is decompile to csproj ... very nice ;)

    • ttrashh

      I had the opposite experience. DotPeek created much better code. using statements were decompiled as usings, JustDecompile produced try/finally blocks.

    • ChristianGeek

      DotPeek has the option to export decompiled code to a project and solution.

    • skrowl

      Agreed. I used it just for the decompile to project.

  • lawnchair_larry

    Sorry I just downvoted you, fat fingered on an ipad. They really need to fix those on mobile.

    Anyway, intended to say that in my experience, all 4 major decompilers get tripped up on slightly different things. Between dotpeek, reflector, ilspy, and justdecompile, none could get everything right and I have to take pieces from each to get something buildable again.

taco_emoji

http://ilspy.net/ is what I generally use. Functionally modeled after .NET Reflector.

userbinator

A .NET decompiler written in .NET: I bet "let's try it on itself!" was not an uncommon thought among its users already.

It wasn't this one, but years ago I remember using a decompiler to look through things like the system libraries and the (relatively few) apps written in it at the time, and it was quite interesting how much metadata was available (if it hadn't been obfuscated). I think it's fun and enlightening to take things apart, see how they work, and modify them, so that aspect of .NET really appealed to me, but I still prefer native code for its efficiency and succinctness...

  • tracker1

    I remember in the 1.x and early 2.x timeframe of .Net trying to replicate functionality similar to the ASP.Net internals, but with some minor changes... being able to peak into the internals was incredibly useful, even if I did hit some walls... The changes made in support of MVC were really helpful in terms of being able to do more. I can't even remember the names of some of the first Alt.Net frameworks to gain momentum before it.

    I'm really happy to see more of .Net becoming open. I'd all but written it off in terms of new development. If the support for deploying in Linux/Docker becomes better, I'll be following this with great interest (to paraphrase Palpatine).

  • frik

    Before Minecraft, there was "Infiniminer" - a decompiler was involved:

    Zachtronics discontinued development of the game less than a month after its first release as the result of its source code leak. As Barth had not obfuscated the C# .NET source code of the game, it was decompiled and extracted from the binaries. Hackers modified the code to make mods, but also started making clients that would target vulnerabilities in the game as well as build incompatible game forks that fragmented its user base. Barth, who was making the game for free, then lost interest and dropped the project, as development of the game had become too difficult. http://en.wikipedia.org/wiki/Zachary_Barth

    "Proto-MineCraft Abandoned Due To Epic Error" article: http://www.rockpapershotgun.com/2011/01/20/proto-minecraft-a...

    The Minecraft mods-support relies on a decompiler too: http://minecraft.gamepedia.com/Programs_and_editors/Minecraf...

    • emodendroket

      Is it really an "epic error" to allow someone to see the source code of your program?

      • frik

        It's the headline of the rockpapershotgun.com article, that's simply their writing style. I added quote around the title, to make it clear that it's the articles title and not my opinion.

  • shimshim

    the one i was most familiar with was reflector. you could change the languages it was decompiled to from c# to visual basic.

ThinkBeat

With the release of Roslyn wont writing things like these be a lot easier?

DevKoala

This tool helped a lot back then. I would also use DotPeek.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection