Hacker News new | ask | show | jobs
by ntulip 5614 days ago
crap - will be sticking to my free version. Soon they will charge for access to their own software documentation.
2 comments

You can't stick to your free version, I'm afraid. There's a built in expiration date in the latest free version; after April 15th 2011 it will no longer work.
(As a side note, it would be interesting to use Reflector to decompile Reflector itself and remove the expiration date or extend it to the far future. I know it's illegal and unethical, but it would be a fun and interesting exercise.)
I Reflectored Reflector once and I found that the source was obfuscated. I don't think that would be a trivial task.
Most compiled code doesn't have debug info and internal symbols. Yet, changing something like an expiry date is often a trivial task. Obfuscation just means you'll actually have to poke around a bit instead of just searching for "isExpiryDateReached".
Reflector was written by a smart guy. IIRC the obfuscation partly consists of assemblies stored as resources in the executable assembly, and loaded dynamically. But no doubt you're right - it could be disentangled.

Better and more ethical to re-write.

Interestingly, I'm pretty sure that the original wasn't obfuscated, and Red Gate obfuscated it after they received it from the original developer.
Reflector's always been obfuscated; Lutz Roeder had a paid-for version as well alongside the free one.

(You don't think the first thing we tried with Reflector was to reflect Reflector? :) )

Reflector was not always obfuscated. Old versions embedded an unobfuscated but weakly encrypted dll with the core program.
well - that's unfortunate.
Don't see the harm in charging money for labor. Everybody needs to be payed and it doesn't seem a ripoff price.
The ripoff is in the fact that they have added nothing significant to the product other than making it more difficult for people to obtain.
Ah but they paid the original dev, so by law of transference they're the ones who are creating utility for you.
So the OSS community wouldn't do a better job of building a .NET decompiler?
Is that what you understood from my comment?

Little bit touchy ;)

I agree $35 isn't a ripoff price, but not that 'everybody needs to be paid'.

For instance, Red Gate recently added an F# mode, which essentially doesn't work. If Reflector had been open source and free, I'd have been willing to get this feature running. The benefit I'd derive from a working F# mode would likely make the effort worthwhile.

I could be interested in building a Reflector clone if somebody would write an F# plug-in to the project. I would probably start with looking at the CCI-Metadata project on Codeplex, and the Microsoft Phoenix compiler framework. Mono has similar libraries, but I only know a very small subset of Mono.Cecil API.

Cheers, Z-Bo

I did look into cloning Reflector when Red Gate originally acquired it. The work involved looks similar to that needed to build a .NET compiler, but in reverse. That is, you take a low-level machine representation; then build up a control flow graph; then map that control flow graph onto common high-level constructs such as if statements and for loops.
Reflector uses Mono's Cecil. It ships with a copy of the Cecil license.
That's true. But not everybody needs open source their software.

And i'm not judging against open sourcing software either.

Does the OSS community mean you or other people whose time you don't have to pay for? Open source works by volunteering and yet I don't see many people stepping up to work on an alternative.
That's because the need for an alternative has existed for less than 48 hours. I would prefer whoever has decided to do an alternative get a prototype built before announcing.

Announcing before you start can easily lead to vaporware. :)

I don't speak for the OSS community, but I am quite sure not many of them care enough about .NET to develop something like this.
Glad you don't speak for all of us...

An effort is already underway. Thankfully we have until the end of May to get this to a usable, somewhat mature state. RedGate's handling of this situation has lit a fire under me and a few other developers, and we're committed to releasing a free, open source competitor, and replacement, for Reflector.

https://github.com/jcdickinson/Monoflector

RedGate really screwed the pooch on this one.

There are some outstanding open source .NET libraries that blow away what you can get in Java. Likewise, some COTS .NET libraries blow away equivalent Java libraries (e.g., for unit testing and inversion of control, query-driven source code analysis, etc.).

But comparing .NET to anything other than Mono is apples to oranges.

Indeed. The Mono folks may be interested in building something like this and glue it into MonoDevelop.