Comments
Sort by recent activity
Depends on what you mean by 'custom contextmenu', do you mean you:
1. add your own commands to Reflector's context menus?
2. create you own context menus and not show Reflector's context menus
3. adding a sub menus to Reflector's context menus (goes with #1)
4. adding a context menu to your own addin window
Several of the above are possible, which situation are you needing some help on? / comments
Depends on what you mean by 'custom contextmenu', do you mean you:
1. add your own commands to Reflector's context menus?
2. create you own context menus and not show Reflector's context menus
3....
Unfortunately a perfect decompiler is practically impossible ... they say decompiling is like trying to get a cow back from hamburger [image] / comments
Unfortunately a perfect decompiler is practically impossible ... they say decompiling is like trying to get a cow back from hamburger
Not sure if you know about the View->Options->Optimization drop down or not. It will allow you to change the way the decompiler translates the IL. I think the default goes with the default framework you choose at first launch (which can be changed if you wipe out the entries in the Reflector.cfg file).
The current options in that drop down are: None, .Net 1.0, .Net 2.0 and .Net 3.5.
I like your suggestion of being able to look at obfuscated assemblies too [image] ... I would also add that some of the reversing of an obfuscated assembly would be possible ... some not. / comments
Not sure if you know about the View->Options->Optimization drop down or not. It will allow you to change the way the decompiler translates the IL. I think the default goes with the default framew...
When it seems the Reflector is returning something unexpected in the decompiled languages (C#, VB, etc) change it to IL and see what it looks like. The IL is a straight disassembled representation of the exe/dll so if the IL code looks odd then the strangeness is in your compiler ... not the decompiler. Sometimes its hard to track down which one did or didn't do an optimization.
Depending on the complexity of your assembly, you might try roundtripping the exe in ILDasm and strip out the debug info ... the debug builds can add alot of code to enable a user to put break points on every line of source code ... and even more in 2.0 + due to multiple statements in one line of source code. / comments
When it seems the Reflector is returning something unexpected in the decompiled languages (C#, VB, etc) change it to IL and see what it looks like. The IL is a straight disassembled representation...
That's doable. Since the method table's record has the RVA offset of where the IL is (not straight forward instruction bytes though, there are sometimes other things before the IL) it shouldn't be too hard to do. / comments
That's doable. Since the method table's record has the RVA offset of where the IL is (not straight forward instruction bytes though, there are sometimes other things before the IL) it shouldn't be...
Interesting idea, what offsets in IL are you refering to? I'm working on an addin that might just be able to do what you want ... just need some clarification on what offsets you talking about.
All offsets in the IL are relative to the instructions in the method bytes - are these the offsets you are talking about? / comments
Interesting idea, what offsets in IL are you refering to? I'm working on an addin that might just be able to do what you want ... just need some clarification on what offsets you talking about.
Al...
I'm working on an addin that will do pretty much what you are talking about ... but it is still in progress. / comments
I'm working on an addin that will do pretty much what you are talking about ... but it is still in progress.
I'm pretty sure the Reflector doesn't actually search the whole 'GAC', but instead looks at only the directories (and subdirectories) you have listed in your .cfg file.
If you know the dll is in the MSIL cache add this to your cfg file under the [AssemblyCache] section:
"%WinDir%\Assembly\GAC_MSIL"
you could also try the other directories of
"%WinDir%\Assembly\GAC"
"%WinDir%\Assembly\GAC_32"
"%WinDir%\Assembly\GAC_64"
But I would try to get away with as few directories as possible under the [AssemblyCache] because it is a little slow. / comments
I'm pretty sure the Reflector doesn't actually search the whole 'GAC', but instead looks at only the directories (and subdirectories) you have listed in your .cfg file.
If you know the dll is in th...
Here are a couple of blog entries that will help you understand the different GAC folders (and when a dll is put in one versus the other ... as well as the probing order the clr uses to look in them): http://blogs.msdn.com/junfeng/archive/2004/09/12/228635.aspx http://blogs.msdn.com/junfeng/archive/2004/08/11/212555.aspx
When it comes to Reflector not finding the dll, you have to remember - it isn't the clr ... so no default probing of the GAC is done. Reflector is meant to be a flexible utility - so you (mostly) get to choose which version of the dll you want it to link to in Reflector. When running a .Net assembly the clr doesn't give you this option (without a config file anyways) ... it needs to have the probing rules so it can get the assembly running for you when you ask (Reflector doesn't - it is all static and flexible for the user ... Reflector only looks at the code it doesn't run it).
Hope this helps,
Jason / comments
Here are a couple of blog entries that will help you understand the different GAC folders (and when a dll is put in one versus the other ... as well as the probing order the clr uses to look in the...
My Reflector.cfg file has the below settings and the Open Cache on the File menu seems to work fine for me ... what do you guys have?
[AssemblyCache]
"%SystemRoot%\Microsoft.net"
"%ProgramFiles%\Reference Assemblies"
"%ProgramFiles%\Microsoft.net"
"%ProgramFiles%\Microsoft Silverlight"
If you find the settings/directories you need to add, you could write an addin to update the reflector.cfg file pretty easy. / comments
My Reflector.cfg file has the below settings and the Open Cache on the File menu seems to work fine for me ... what do you guys have?
[AssemblyCache]
"%SystemRoot%\Microsoft.net"
"%ProgramFiles%\Re...