🔒 Locked
[.net] .net Disassembler
Advertisement
Original Post
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
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.
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.
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.
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?
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.
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
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)
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)
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.
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement