News for hackers. Stuff that matters.
Re:.NET Reflector no longer a free tool - An open letter to ... by ntulip on Wednesday February 02, 2011 @10:11AM (#2170477)
crap - will be sticking to my free version. Soon they will charge for access to their own software documentation.
Re:.NET Reflector no longer a free tool - An open letter to ... by DrJokepu on Wednesday February 02, 2011 @10:26AM (#2170538)
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.
Re:.NET Reflector no longer a free tool - An open letter to ... by DrJokepu on Wednesday February 02, 2011 @11:05AM (#2170683)
(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.)
Re:.NET Reflector no longer a free tool - An open letter to ... by jeffesp on Wednesday February 02, 2011 @11:18AM (#2170761)
I Reflectored Reflector once and I found that the source was obfuscated. I don't think that would be a trivial task.
Re:.NET Reflector no longer a free tool - An open letter to ... by MichaelGG on Wednesday February 02, 2011 @11:58AM (#2170944)
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".
Re:.NET Reflector no longer a free tool - An open letter to ... by innes on Wednesday February 02, 2011 @02:19PM (#2171631)
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.

Re:.NET Reflector no longer a free tool - An open letter to ... by nlawalker on Wednesday February 02, 2011 @11:52AM (#2170919)
Interestingly, I'm pretty sure that the original wasn't obfuscated, and Red Gate obfuscated it after they received it from the original developer.
Re:.NET Reflector no longer a free tool - An open letter to ... by timrobinson on Wednesday February 02, 2011 @01:03PM (#2171266)
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? :) )

Re:.NET Reflector no longer a free tool - An open letter to ... by thisisfmu on Wednesday February 02, 2011 @01:41PM (#2171451)
Reflector was not always obfuscated. Old versions embedded an unobfuscated but weakly encrypted dll with the core program.
Re:.NET Reflector no longer a free tool - An open letter to ... by ntulip on Wednesday February 02, 2011 @02:32PM (#2171692)
well - that's unfortunate.
Re:.NET Reflector no longer a free tool - An open letter to ... by toadi on Wednesday February 02, 2011 @10:25AM (#2170533)
Don't see the harm in charging money for labor. Everybody needs to be payed and it doesn't seem a ripoff price.
Re:.NET Reflector no longer a free tool - An open letter to ... by johnzabroski on Wednesday February 02, 2011 @11:35AM (#2170833)
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.
Re:.NET Reflector no longer a free tool - An open letter to ... by true_religion on Wednesday February 02, 2011 @09:12PM (#2173232)
Ah but they paid the original dev, so by law of transference they're the ones who are creating utility for you.
Re:.NET Reflector no longer a free tool - An open letter to ... by timrobinson on Wednesday February 02, 2011 @10:54AM (#2170645)
So the OSS community wouldn't do a better job of building a .NET decompiler?
Re:.NET Reflector no longer a free tool - An open letter to ... by toadi on Wednesday February 02, 2011 @10:57AM (#2170659)
Is that what you understood from my comment?

Little bit touchy ;)

Re:.NET Reflector no longer a free tool - An open letter to ... by timrobinson on Wednesday February 02, 2011 @11:04AM (#2170681)
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.

Re:.NET Reflector no longer a free tool - An open letter to ... by johnzabroski on Wednesday February 02, 2011 @11:18AM (#2170755)
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

Re:.NET Reflector no longer a free tool - An open letter to ... by timrobinson on Wednesday February 02, 2011 @12:17PM (#2171027)
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.
Re:.NET Reflector no longer a free tool - An open letter to ... by johnzabroski on Wednesday February 02, 2011 @01:46PM (#2171466)
I'm very familiar with engineering compilers and de-compilers. Have you seen Microsoft Phoenix? It lets you sink/hoist intermediate representations; the key for this would be having an API that allows ordering graph rewriting rules so that you can take the MSIL and convert it the right higher-level form (e.g., should this use LINQ? Well, what does the app settings say the user wants to see the code as?). Anyway, since Reflector is written in C#, it would be able to develop a clone much faster using code generation, since I bet Reflector uses a ton of Visitor patterns and needless C# boilerplate.

I won't promise performance comparable to Redgate's Reflector, but my rule of thumb is Correct. Clear. Fast. In that order.

Re:.NET Reflector no longer a free tool - An open letter to ... by timrobinson on Wednesday February 02, 2011 @01:58PM (#2171531)
I hadn't seen Phoenix before reading your comment, but I like the look of it. Looks useful for general compiler tinkering.

When I looked at this a while back, I was trying to do it in C# on Mono.Cecil. I got bogged down writing things like CSharpWhileLoopVisitor...

Re:.NET Reflector no longer a free tool - An open letter to ... by quag on Wednesday February 02, 2011 @05:54PM (#2172619)
Reflector uses Mono's Cecil. It ships with a copy of the Cecil license.
Re:.NET Reflector no longer a free tool - An open letter to ... by johnzabroski on Thursday February 03, 2011 @01:11PM (#2175831)
Thank you very much for that tidbit.
Re:.NET Reflector no longer a free tool - An open letter to ... by toadi on Wednesday February 02, 2011 @11:07AM (#2170693)
That's true. But not everybody needs open source their software.

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

Re:.NET Reflector no longer a free tool - An open letter to ... by acdha on Wednesday February 02, 2011 @12:01PM (#2170957)
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.
Re:.NET Reflector no longer a free tool - An open letter to ... by mkr-hn on Wednesday February 02, 2011 @06:52PM (#2172813)
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. :)

Re:.NET Reflector no longer a free tool - An open letter to ... by rbanffy on Wednesday February 02, 2011 @01:01PM (#2171255)
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.
Re:.NET Reflector no longer a free tool - An open letter to ... by shellscape on Friday February 04, 2011 @11:35AM (#2179997)
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.

Re:.NET Reflector no longer a free tool - An open letter to ... by johnzabroski on Wednesday February 02, 2011 @01:52PM (#2171509)
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.

Re:.NET Reflector no longer a free tool - An open letter to ... by rbanffy on Wednesday February 02, 2011 @03:03PM (#2171859)
Indeed. The Mono folks may be interested in building something like this and glue it into MonoDevelop.