Thursday, February 3, 2011

Reflector Is Not Free

Reflector Is Not Free

This is just terrible news, I used this tool when since it's beginnings then after Red Gate took over. I used this tool to fix bugs in framework codes itself! by doing better implementations and mostly to study and to see how things are designed. One time I even pointed out bugs in a library that was bought by the company I worked for and proposed a fix :-).

And now Red Gate is trying to make money on a tool that they acquired form a Developer that intended to be free, the price is set at 35$ and I think that this is to high, because they promised that it will be free, so we need to pay for broken promises.

So what would be the best way to get out of this mess is to charge just for the new version and leave the old ones, but they are now time bombed!, so Red Gate should opensource V6 of reflector and continue to charge for the newer ones, this is the best possible way to get out of this PR mess.

Building our own

By looking at the Red Gates forums people are pretty pissed and upset about all of this. This could lead to creation of some sort of community project to create an open source decompiler for .NET, I'm kinda thinking about it, so count me in.

Getting the Instructions from code is simple task, we just need to call GetILAsByteArray(), and then parse the bytes in proper context as the the instruction byte is followed by 1,2,3 or 4 byte metadata token and then get the MethodInfo.Module to get the proper object if needed, but the true challenge here is to parse the IL code into language syntax, but this is nothing that can't be done.


I wish that Red Gate would do the right thing and open source the project but I have a feeling that this will not be so and the only reliable solution will be to create another Reflector project and open source it from the start, besides the knowledge gained and the factor of teaching a lesson is priceless :-).

1 comment:

Neeraj said...

I would like to contribute to such a community project. Let me know, if you come up with something.