Note that there are some explanatory texts on larger screens.

plurals
  1. POProtecting my code from reverse engineering
    primarykey
    data
    text
    <p>As discussed in similar questions <a href="https://stackoverflow.com/questions/506282/protect-net-code-from-reverse-engineering/506301#506301">here</a> and <a href="https://stackoverflow.com/questions/71195/should-you-obfuscate-a-commercial-net-application">here</a> I want to protect my code from reverse engineering. </p> <p>My situation is as <a href="https://stackoverflow.com/users/2635/simucal">Simucal</a> describes in his (excellent) answer <a href="https://stackoverflow.com/questions/506282/protect-net-code-from-reverse-engineering/506301#506301">here</a>:</p> <blockquote> <p>Basically, what it comes down to is the only chance you have of being targeted for source theft is if you have some very specific, hard to engineer, algorithm related to your domain that gives you a leg up on your competition. This is just about the only time it would be cost-effective to attempt to reverse engineer a small portion of your application.</p> </blockquote> <p>I have exactly this situation. A hard to engineer algorithm which is elegant and valuable for our specific domain.</p> <p>After spending months fine tuning and developing this the end result is very compact (approx. 100 lines of code) and elegant. I want to protect this specific part of the code from reverse engineering or at least make it reasonable difficult.</p> <p>The scenario is a rich-client application written in C# and I have to deploy this part of the code - I cannot execute it from a webservice.</p> <p>I think extracting the code and rewriting it in a unmanaged native binary is not an option due to performance reasons (and cross boundary issues).</p> <p>Initially I wanted to do simple obfuscation but given the small size of the code I don't think this will offer much protection.</p> <p>Ideally I would like to protect my whole application but there are two main issues that seem to make ordinary obfuscaters and 3rd party packers difficult to use:</p> <ol> <li><p>The application offers a plugin interface and therefore some assemblies (and interfaces/classes) should not be obfuscated and packed</p></li> <li><p>We still want to be able to get to a real stack trace when receiving error reports - potentially this could be done my mapping obfuscation to the real code.</p></li> </ol> <p>Setting these issues aside (although I would appreciate any input on this as well), what is a good way to protect a tiny part of my code from reverse engineering? I am not concerned about anyone altering or hacking the code but want to make it difficult to understand and reverse engineer it.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload