Skip to main content
gamedev.net
🔒 Locked

[.net] .net Disassembler

Started by Brahose Jul 23, 2004 at 6:33 PM 12 replies 2.7k views
Original Post
Brahose
Brahose
I was wondering if there is a good disassembler for the .net framework besides the ILDasm.exe that is packaged w/ the sdk. Something like w32Dasm or Hiew, or pvdasm. I tried using those to manipulate and recompile my c# project, and it didn't work too well. It would not read strings or dialogs, and had trouble recompiling. I might just be doing this wrong, but I have a feeling there is a program more suitable for asm editing .net then w32dasm. thanks, Brian
Brian ReinhartBrian[@]Pointblanc.netwww1.pointblanc.net
Fruny
Fruny
Moved to the .NET forum.
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
bL0wF1sH
bL0wF1sH
Although it doesn't actually let you "change" the MSIL and re-compile the application (I don't believe), my favorite "disassembler" of sorts is Lutz Roeder's Reflector. It allows you to view the MSIL of any .NET assembly and even lets you look at the assembly in C# if you would like.
Jason Olson - Software Developer[ Managed World ]
liquiddark
liquiddark
As I understand it, the commercial product Salamander is the gold standard right now.

ld
No Excuses
Talonius
Talonius
Lutz Roeder's Reflector has a SDK available for it that allows you to produce addins to do whatever you want with the resultant data. To my mind that makes it extremely powerful.

One that I've used is Denis Bauer's Reflector.FileDisassembler. It dumps an assembly to file rather than to screen. There's also Jonathan de Halleux's various graphing addins which attempt to provide a call graph / function importance ranking ala Google page rank.

I've never used Salamander, and most conversations I've had that deal with disassembling inside .NET end up recommending Lutz' software.

..what we do will echo throughout eternity..
DrGUI
DrGUI
Quote:
Original post by bL0wF1sH
Although it doesn't actually let you "change" the MSIL and re-compile the application (I don't believe), my favorite "disassembler" of sorts is Lutz Roeder's Reflector. It allows you to view the MSIL of any .NET assembly and even lets you look at the assembly in C# if you would like.

That is excellent! - but what about other people copying your code?
Washu
Washu
Unfortunantly, there is not a whole lot you can do about that. The same goes with java too. I know that there are even disassemblers for .net and java currently that will reassemble it into compiling C# code. There are obfuscators available, but that doesn't stop reverse engineering, just makes it harder to read.
In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
T2k
T2k
Quote:
Original post by Washu
Unfortunantly, there is not a whole lot you can do about that. The same goes with java too. I know that there are even disassemblers for .net and java currently that will reassemble it into compiling C# code. There are obfuscators available, but that doesn't stop reverse engineering, just makes it harder to read.

i think salamander has an option to opfuscate your managed code, and block decompilers in some way, itself too... but if the code isnt obfuscated you can decompile it with salamander into c# code etc...


T2k
CpMan
CpMan
VS.NET comes with an obfuscator.
VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
Washu
Washu
Doesn't block decompilers, all it really does is make the code harder to understand when it is decompiled.
In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
Stru
Stru
You know there are decompilers for C++ code too?

I wouldn't worry about them stealing your code so much as exploiting vulnerabilities in your software. Or compiling in add-ons (AimBot anyone?) The real security problem for games is that they can easily compile their own version of your code. So its easy to nullify copy-protection or make online cheat programs. Thats a big reason .NET isnt used for games right now(by big game companies anyway)
Washu
Washu
There are decompilers for C++ code, yes...from machine code to ASM. There are no (or atleast not any that will generate understandable) decompilers for machine code that can completely reconstitute the original source code almost word for word. With .Net and Java however, that can be done. Because all of the type information is there in the class available not only to the application, but to anyone else who wants to access it.
In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
Washu
Washu
Yes BornToCode?
In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.