.NET Dotfuscator or something else?
-
- KVRAF
- Topic Starter
- 6409 posts since 22 Jan, 2005 from Sweden
Hi
Semicompiled code like .NET is pretty open for reverse engineering.
What tool do you think is the best protection, Dotfuscator or something else?
Any difference if working for C++/CLI too?
Or is pure code needed?
Thanks.
Semicompiled code like .NET is pretty open for reverse engineering.
What tool do you think is the best protection, Dotfuscator or something else?
Any difference if working for C++/CLI too?
Or is pure code needed?
Thanks.
-
- KVRer
- 12 posts since 7 Aug, 2006 from the Netherlands
You can encrypt the binaries with .NET if i remember correctly. I don't know if that's possible in combination with Something like VST.NET.
-
Stupid American Pig Stupid American Pig https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=4753
- KVRAF
- 7065 posts since 25 Nov, 2002 from not sure
Be careful here- If you make use of reflection, Dotfuscator can break your code. I think encrypted assemblies is the best bet, but I dont know that there is a fool proof way to obfuscate managed code.
-
Stupid American Pig Stupid American Pig https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=4753
- KVRAF
- 7065 posts since 25 Nov, 2002 from not sure
heres a good stack overflow link on the matter...
http://stackoverflow.com/questions/4942 ... assemblies
http://stackoverflow.com/questions/4942 ... assemblies
-
- KVRist
- 225 posts since 5 Oct, 2008
obfuscation or encryption will marginally decrease performance, obfuscated code can't be debugged properly etc...
IIRC, themida can protect .net assemblies, might be worth checking out, it's way more secure and easier to deploy than obfuscation, but then again, with all encryption packers, there's a marginal performance decrease.
IIRC, themida can protect .net assemblies, might be worth checking out, it's way more secure and easier to deploy than obfuscation, but then again, with all encryption packers, there's a marginal performance decrease.
-
- KVRAF
- Topic Starter
- 6409 posts since 22 Jan, 2005 from Sweden
thanks.Stupid American Pig wrote:Be careful here- If you make use of reflection, Dotfuscator can break your code. I think encrypted assemblies is the best bet, but I dont know that there is a fool proof way to obfuscate managed code.
The only thing I use reflection for is to get current assembly and access resources.
Is that enought to cause problems?
-
Stupid American Pig Stupid American Pig https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=4753
- KVRAF
- 7065 posts since 25 Nov, 2002 from not sure
Sounds generally safe, but just keep in mind that things like LINQ or anything that relies on XML serialization uses the reflection API(web services, object serialization, etc) so you still may be using reflection in your code. I dont know what type of project you are working with or if you are using C#/VB or Managed C++. I am really not all that familiar with the way the compiler generates that code(does any one used managed C++ these days??)
-
- KVRAF
- Topic Starter
- 6409 posts since 22 Jan, 2005 from Sweden
Thanks.Stupid American Pig wrote:Sounds generally safe, but just keep in mind that things like LINQ or anything that relies on XML serialization uses the reflection API(web services, object serialization, etc) so you still may be using reflection in your code. I dont know what type of project you are working with or if you are using C#/VB or Managed C++. I am really not all that familiar with the way the compiler generates that code(does any one used managed C++ these days??)
I use C++/CLI now and did on my former job too. But not the managed thingy that came 2003 or something like that that was called Managed C++.
I found one article, though old, of good value:
http://howtoselectguides.com/dotnet/obfuscators/1st
I do my my own serialize stuff to save workspaces and similar. Got the feeling the built in classes were doing too much.
-
- KVRian
- 522 posts since 19 Jul, 2007 from Netherlands
I've used http://code.google.com/p/obfuscar/ in the past in combination with ILMerge (MS research). Its perfect to discourage prying eyes.
If you want the full fledged battle ship you might like .NET Reactor. http://www.eziriz.com/ They say they've never been cracked...
Hope it helps.
If you want the full fledged battle ship you might like .NET Reactor. http://www.eziriz.com/ They say they've never been cracked...
Hope it helps.
-
- KVRian
- 522 posts since 19 Jul, 2007 from Netherlands
-
Stupid American Pig Stupid American Pig https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=4753
- KVRAF
- 7065 posts since 25 Nov, 2002 from not sure
Not to hijack the thread here, but I have never even looked into the managed C++ or C++\CLI. Is there a reason to use it other than possibly familiarity with C++? I am guessing it allows you to write the bits you want to be GC'd and then when you want to drop down to native code for the more intensive tasks you can do that more easily?obiwanjacobi wrote:Yes, VST.NET uses managed C++ to make the jump between the C++ VST interface and the managed .NET world.Stupid American Pig wrote:does any one used managed C++ these days??
I know C and C++ decently enough, but just seems that if Im doing .NET then I may as well just use C#. What am I missing?
-
- KVRer
- 20 posts since 24 Feb, 2010
If you are working in C# but need to use a C++ class that's in a DLL, MC++ can be helpful. I wrote an article on the subject:Stupid American Pig wrote: Not to hijack the thread here, but I have never even looked into the managed C++ or C++\CLI. Is there a reason to use it other than possibly familiarity with C++? I am guessing it allows you to write the bits you want to be GC'd and then when you want to drop down to native code for the more intensive tasks you can do that more easily?
I know C and C++ decently enough, but just seems that if Im doing .NET then I may as well just use C#. What am I missing?
"How to Marshal a C++ Class"
http://www.codeproject.com/KB/cs/marshalCPPclass.aspx
...but in general though, I don't care for MC++ and would only use it sparingly when I had to.
Jeff
-
Stupid American Pig Stupid American Pig https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=4753
- KVRAF
- 7065 posts since 25 Nov, 2002 from not sure
Thanks for this Jeff(and obiwan and helium too) I have done some things with Libsndfile and PInvoke, I found that using C# as a front end to this library, I was able to get quite good performance in bulk file conversion(vox to wav, though, so it was basically just adding the wav header to the raw bits). Thankfully It seems that in the enterprise software world the use cases for the above scenario are rare.