views:

649

answers:

3
+6  Q: 

.Net Obfuscator

Hello, Is there a .NET obfuscation tool present for Linux? Or is there a class which can provide me a functionality of writing a obfuscation tool for byte code?

+1  A: 

You might try Spices.Obfuscator. It advertises that it supports Mono but that may be that it generates assemblies which are compatible with Mono (assuming they were in the first place) rather than runs on Mono. Since they indicate they obfuscate themselves it would suggest that their command line app stands a good chance of working (I suggest you try downloading their evaluation package)

I concur with Marc Gravell's comment on their utility, especially once you start using c# 3.0 features which make the resulting unobfuscated decompiled code pretty ugly anyway. If the code is local it can be broken, at best you remove meaningful names (at the cost of a permanent hassle for reflective scenarios).

ShuggyCoUk
A: 

Do you want an obfuscator that executes under Mono or one that outputs assemblies that will run under Mono?

If you want one that runs under Mono I don't know of any whose GUI runs under Mono but I do know that we have tested the Dotfuscator command line interface internally under Mono and it works. This is not (yet) an officially supported or extensively tested solution so your mileage may vary.

Dotfuscator accepts any standard MSIL assembly and we only emit 100% PEverifiable assemblies out so as long as your source assembly is Mono compatible the Dotfuscator output should also be Mono compatible. This can be verified using the Mono Migration Analyzer on both your source assembly and the Dotfuscator output.

Disclaimer: I do work for PreEmptive Solutions, the makers of Dotfuscator.

Joe Kuemerle
Dotfuscator community edition does not obfuscate strings.
JL
That is correct, but Dotfuscator Community Edition also does not have a command line interface and has not been tested under Mono.
Joe Kuemerle
+1  A: 

Try this tool, its free : http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx#downloads and it does what commercial products do.

JL