5 ms·
The JustDecompile .NET decompiler engine has been open-sourced
- userbinator 11y agoA .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...
- shimshim 11y agothe one i was most familiar with was reflector. you could change the languages it was decompiled to from c# to visual basic.
- frik 11y agoBefore 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 http://en.wikipedia.org/wiki/Zachary_Barth "Proto-MineCraft Abandoned Due To Epic Error" article: http://www.rockpapershotgun.com/2011/01/20/proto-minecraft-abandoned-due-to-epic-error/ 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/Minecraft_Coder_Pack http://minecraft.gamepedia.com/Programs_and_editors/Minecraf...
- emodendroket 11y agoIs it really an "epic error" to allow someone to see the source code of your program?
- frik 11y agoIt'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.
- emodendroket 11y agoSorry, I realize that; I just take issue with their claim.
- tracker1 11y agoI 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).
- exhilaration 11y agoHow does this compare to dotPeek from JetBrains? https://www.jetbrains.com/decompiler/ https://www.jetbrains.com/decompiler/
- felickz2 11y agoMuch 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 ;)
- ChristianGeek 11y agoDotPeek has the option to export decompiled code to a project and solution.
- ttrashh 11y agoI had the opposite experience. DotPeek created much better code. using statements were decompiled as usings, JustDecompile produced try/finally blocks.
- skrowl 11y agoAgreed. I used it just for the decompile to project.
- lawnchair_larry 11y agoSorry 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.
- LordJZ 11y agoIt would be so kind of you to create an github issue for things you find ILSpy gets wrong. https://github.com/icsharpcode/ILSpy/issues https://github.com/icsharpcode/ILSpy/issues
- taco_emoji 11y agohttp://ilspy.net/ http://ilspy.net/ is what I generally use. Functionally modeled after .NET Reflector.
- DevKoala 11y agoThis tool helped a lot back then. I would also use DotPeek.
- ThinkBeat 11y agoWith the release of Roslyn wont writing things like these be a lot easier?