| Author |
Message |
maheep83
Joined: 28 Nov 2011 Posts: 2
|
Posted: Mon Nov 28, 2011 7:44 am Post subject: Query regarding {SmartAssembly} new version 6.5 |
|
|
We used to use {SmartAssembly} for obfuscating our .Net assemblies till first quarter of calendar year 2010. And to verify the obfuscation we used to use .Net Reflector to decompile, if .Net Reflector fails means {SmartAssembly} succeeds.
But after some new release of .Net Reflector it used to successfully decompile the obfuscated assemblies, hence for us {SmartAssembly} was a failure and we stopped using {SmartAssembly}.
I just noticed that there is a newer version of Smart assembly. I would like to know if this version obfuscate in a way that it cannot be decompiled using .net reflector? |
|
| Back to top |
|
 |
Simon C
Joined: 26 Feb 2008 Posts: 140 Location: Red Gate Software
|
Posted: Mon Nov 28, 2011 12:21 pm Post subject: |
|
|
There's a difference between successfully decompiling an assembly, and being able to understand it once it is decompiled. SmartAssembly obfuscates the IL within the method, but it is still IL that can be decompiled, as it has to do the same thing as the original assembly.
If you look closely at the disassembled code, the type & method names are missing and it can no longer generate correct C# or VB. Furthermore, features like strings encoding and member refs proxy, combined with control flow obfuscation and name obfuscation, further hide what the code is actually doing. |
|
| Back to top |
|
 |
maheep83
Joined: 28 Nov 2011 Posts: 2
|
Posted: Mon Nov 28, 2011 12:25 pm Post subject: |
|
|
| Agree on the wrong use of term "Decompile". What I meant was; will .net reflector, which is also a rad-gate product now, be able to reproduce the original code from a "smart assembly"? |
|
| Back to top |
|
 |
Simon C
Joined: 26 Feb 2008 Posts: 140 Location: Red Gate Software
|
Posted: Mon Nov 28, 2011 1:52 pm Post subject: |
|
|
Again, similar to IL disassembly, some sort of (not necessarily valid) C# can always be produced from a method. SmartAssembly isn't aimed at making it impossible to disassemble methods completely, it's protections are aimed at hiding the meaning of the code, which is ultimately what you use an obfuscator for.
Control flow obfuscation, name obfuscation, strings encoding and member refs proxy all hide the original meaning of the code; even if some C# can be constructed from the disassembled IL, working out what that code actually does it very hard. |
|
| Back to top |
|
 |
|
|
All times are GMT + 1 Hour
|
| Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group