<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 Forums - Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Forums/rss"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>Channel 9 Forums - Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<link>http://channel9.msdn.com/Forums</link>
	</image>
	<description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
	<link>http://channel9.msdn.com/Forums</link>
	<language>en</language>
	<pubDate>Tue, 18 Jun 2013 22:59:17 GMT</pubDate>
	<lastBuildDate>Tue, 18 Jun 2013 22:59:17 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<c9:totalResults>29</c9:totalResults>
	<c9:pageCount>-29</c9:pageCount>
	<c9:pageSize>-1</c9:pageSize>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>I'm not looking for obfuscators.. I use commercial dotfuscator and it seems to do the job that all dotfuscators do..<br /><br />However, what other options are there from preventing our .net exe's being reversed?<br /><br />I know of solutions like:<br />thinstall<br />remotesoft<br /><a href="http://www.xheo.com/products/codeveil/default.aspx"><font color="#a55506">http://www.xheo.com/products/codeveil/default.aspx</font></a><br />.NET Reactor <br />smartassembly<br /><br />But are there any others?<br /><br />I know some say to put your protected IP into native .dll's and invoke them, however if your calling .net exe is still reversable, the methods of accessing/using that .dll are still visible.<br /><br />Thanks.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/261918#261918</link>
		<pubDate>Fri, 28 Mar 2008 18:36:31 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/261918#261918</guid>
		<dc:creator>CodeGuru123</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CodeGuru123/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;<br /><p>I know some say to put your protected IP into native .dll's and invoke them, however if your calling .net exe is still reversable, the methods of accessing/using that .dll are still visible.<br /></p>
</div>
</blockquote>
<br /><br />Get your native entry points to look at the calling assembly's file, take a hash and compare it to your code, and do useful things only if there's a match.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/b625c9412d9b4d1a997b9dfa00c2c2cb#b625c9412d9b4d1a997b9dfa00c2c2cb</link>
		<pubDate>Fri, 28 Mar 2008 19:18:58 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/b625c9412d9b4d1a997b9dfa00c2c2cb#b625c9412d9b4d1a997b9dfa00c2c2cb</guid>
		<dc:creator>evildictaitor</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/evildictaitor/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">evildictaitor wrote:</div>
<div class="quoteBody">&#65279;<br />Get your native entry points to look at the calling assembly's file, take a hash and compare it to your code, and do useful things only if there's a match.<br /></div>
</blockquote>
<br /><br />That's trivial to bypass. It is fundamentally impossible to verify the caller of a function, no amount of engineering a solution will rectify this.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/9aa7d48aaf464c87a1229dfa00c2c305#9aa7d48aaf464c87a1229dfa00c2c305</link>
		<pubDate>Fri, 28 Mar 2008 20:14:39 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/9aa7d48aaf464c87a1229dfa00c2c305#9aa7d48aaf464c87a1229dfa00c2c305</guid>
		<dc:creator>AndyC</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/AndyC/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>CodeVeil by xheo actually encrpyts your assembly and then decrypts into memory when it is ran.<br /><br />I haven't tried it though.<br /><br /><a href="http://www.xheo.com/products/codeveil/default.aspx">http://www.xheo.com/products/codeveil/default.aspx</a></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/eacb5b52ac8e4aa6a1839dfa00c2c379#eacb5b52ac8e4aa6a1839dfa00c2c379</link>
		<pubDate>Fri, 28 Mar 2008 23:50:57 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/eacb5b52ac8e4aa6a1839dfa00c2c379#eacb5b52ac8e4aa6a1839dfa00c2c379</guid>
		<dc:creator>Darin Clark</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/gadget/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;
<p>I'm not looking for obfuscators.. I use commercial dotfuscator and it seems to do the job that all dotfuscators do..<br /><br />However, what other options are there from preventing our .net exe's being reversed?<br /><br />I know of solutions like:<br />thinstall<br />remotesoft<br /><br />But are there any others?<br /><br />I know some say to put your protected IP into native .dll's and invoke them, however if your calling .net exe is still reversable, the methods of accessing/using that .dll are still visible.<br /><br />Thanks.</p>
</div>
</blockquote>
<br /><br />first thing I always ask is why?<br />then what is the risk?<br />what is the benefit?<br />what is the cost?<br />what is the audience (users, who, sales market)?<br /><br />most of the time the users are not going to mess with the code and the cost far outweighs the benefit.<br /><br />if the users are tech-savy hacker types then the same thing happens as a determined cracker will break any protection if they are willing to spend the time and effort.<br /><br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/f459629fcf9b48a987009dfa00c2c3f4#f459629fcf9b48a987009dfa00c2c3f4</link>
		<pubDate>Sat, 29 Mar 2008 01:08:09 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/f459629fcf9b48a987009dfa00c2c3f4#f459629fcf9b48a987009dfa00c2c3f4</guid>
		<dc:creator>figuerres</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/figuerres/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>The thing is that if somebody really wants to crack your app s/he always can. Look at how fast games and software get cracked - even if they are compiled down to native. Crackers just don't care, they analyze the assembly code and fix it...</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/079fd808f4804676aaf09dfa00c2c466#079fd808f4804676aaf09dfa00c2c466</link>
		<pubDate>Sat, 29 Mar 2008 01:36:43 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/079fd808f4804676aaf09dfa00c2c466#079fd808f4804676aaf09dfa00c2c466</guid>
		<dc:creator>Christian Liensberger</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/littleguru/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>Write code so crappy that it is self obfuscated and no one would want to use it anyway? <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-2.gif' alt='Big Smile' /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/b8936065ffdf44f283519dfa00c2c4f3#b8936065ffdf44f283519dfa00c2c4f3</link>
		<pubDate>Sat, 29 Mar 2008 01:54:51 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/b8936065ffdf44f283519dfa00c2c4f3#b8936065ffdf44f283519dfa00c2c4f3</guid>
		<dc:creator>JPeless</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/JPeless/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">littleguru wrote:</div>
<div class="quoteBody">&#65279;The thing is that if somebody really wants to crack your app s/he always can. Look at how fast games and software get cracked - even if they are compiled down to native. Crackers just don't care, they analyze the assembly code and fix
 it...</div>
</blockquote>
<br /><br />Cracking games for piracy is one thing, it just means unauthorised distributions can be made.<br /><br />That's different to disassembly where the consequences are much worse: commercial rivals can use your source to build a competing product with zero development expenses, then sell it for profit.<br /><br />By the time you get round to suing them for copyright infringement or other offenses they can change the source enough.<br /><br />....okay, that's definately a worst-case scenario, but you get the point. Unlike simple piracy, where pretending the problem doesn't exist works, you cannot ignore Grand IP Theft like this.<br /><br />With problems like this, I think the best way forward for massivly distributed programs written in .NET is GPL licensing, that way you retain control and with licensing quirks get to charge your customers good money anyway. Look at how MySQL is licensed for
 an example.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/a493f82f6da1408db9409dfa00c2c571#a493f82f6da1408db9409dfa00c2c571</link>
		<pubDate>Sat, 29 Mar 2008 01:59:14 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/a493f82f6da1408db9409dfa00c2c571#a493f82f6da1408db9409dfa00c2c571</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">figuerres wrote:</div>
<div class="quoteBody">&#65279;<br />first thing I always ask is why?<br />then what is the risk?<br />what is the benefit?<br />what is the cost?<br />what is the audience (users, who, sales market)?<br /><br />most of the time the users are not going to mess with the code and the cost far outweighs the benefit.<br /><br />if the users are tech-savy hacker types then the same thing happens as a determined cracker will break any protection if they are willing to spend the time and effort.<br /><br /></div>
</blockquote>
<br /><br />I often see similar types of responses when people ask about protecting their source..<br /><br />I guess some people simply don't understand.. <br /><br />For a small operation like mine, code security is key to our business future. If we were to release our product in unencrypted .net, our competitors would gain substantial IP to help rocket them into markets where we already exist, and if our .net app could
 easily be reversed many new competitors would pop up.<br /><br />You see, not everybody is a adobe, or microsoft, or even winzip or nero...<br /><br />Some outfits have a lot of development time invested into developing product for consumers that have no current available options.. We invest heavily to make a product that most of the time, others don't know how to do. Again, if we released our .net unprotected
 well then these others would pop up out of the wood work.<br /><br />Now, most people say, well you provide great customer service and a great product and you won't have to worry about that. That only works if your target consumer is willing to pay the premium for those services. If your target consumer (unfortunately) wants
 the product at the lowest price that argument goes right out the door.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/5aa87aa910f84499bd649dfa00c2c5f0#5aa87aa910f84499bd649dfa00c2c5f0</link>
		<pubDate>Sat, 29 Mar 2008 04:33:39 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/5aa87aa910f84499bd649dfa00c2c5f0#5aa87aa910f84499bd649dfa00c2c5f0</guid>
		<dc:creator>CodeGuru123</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CodeGuru123/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>If you're really that concerned,&nbsp;make it a web app or something and run it on a box you own. If you think your competitors will go to any length to reverse engineer your work, then don't give it out the EXE at all.<br /><br />I don't think many customers would be keen on this, though. Eventually if you make it too cumbersome to even use they'll go elsewhere regardless.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/3e5ce3d573044c01ab6b9dfa00c2c629#3e5ce3d573044c01ab6b9dfa00c2c629</link>
		<pubDate>Sat, 29 Mar 2008 08:02:41 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/3e5ce3d573044c01ab6b9dfa00c2c629#3e5ce3d573044c01ab6b9dfa00c2c629</guid>
		<dc:creator>TimP</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/TimP/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>I use smartassembly - it also gives me the nice feature of error reporting, in case something goes wrong once the app is deployed....</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/2ee76191aaa2476bad619dfa00c2c69e#2ee76191aaa2476bad619dfa00c2c69e</link>
		<pubDate>Sat, 29 Mar 2008 09:27:40 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/2ee76191aaa2476bad619dfa00c2c69e#2ee76191aaa2476bad619dfa00c2c69e</guid>
		<dc:creator>John</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/jh71283/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CompGuy101 wrote:</div>
<div class="quoteBody">&#65279;I use .NET Reactor and it works great. It injects the CLI header at runtime so when people try to open it up in .net reflector they just get errors. It also encrypts your source.<br /></div>
</blockquote>
<br /><br />Yea but no one would actually want to steal your source.. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif' alt='Tongue Out' /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/c2f772117e8b41efba7e9dfa00c2c71a#c2f772117e8b41efba7e9dfa00c2c71a</link>
		<pubDate>Sat, 29 Mar 2008 12:14:50 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/c2f772117e8b41efba7e9dfa00c2c71a#c2f772117e8b41efba7e9dfa00c2c71a</guid>
		<dc:creator>stevo_</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/stevo_/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">TimP wrote:</div>
<div class="quoteBody">&#65279;
<p>If you're really that concerned,&nbsp;make it a web app or something and run it on a box you own. If you think your competitors will go to any length to reverse engineer your work, then don't give it out the EXE at all.<br /><br />I don't think many customers would be keen on this, though. Eventually if you make it too cumbersome to even use they'll go elsewhere regardless.</p>
</div>
</blockquote>
<br /><br />A web service vs a web app, but yes - remote services are a good way to keep the 'underwater' part of the iceberg away from your users..<br /><br />Then you just have to worry about protecting innovation on your client <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif' alt='Tongue Out' /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/0c51265da9e84ff6aeca9dfa00c2c794#0c51265da9e84ff6aeca9dfa00c2c794</link>
		<pubDate>Sat, 29 Mar 2008 12:23:22 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/0c51265da9e84ff6aeca9dfa00c2c794#0c51265da9e84ff6aeca9dfa00c2c794</guid>
		<dc:creator>stevo_</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/stevo_/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;
<blockquote>
<table class="quoteTable">
<tbody>
<tr>
<td valign="top" width="10"><img src="/Themes/AlmostGlass/images/icon-quote.gif"></td>
<td class="txt3"><strong>figuerres wrote:</strong>
<hr size="1">
<i>&#65279;<br />first thing I always ask is why?<br />then what is the risk?<br />what is the benefit?<br />what is the cost?<br />what is the audience (users, who, sales market)?<br /><br />most of the time the users are not going to mess with the code and the cost far outweighs the benefit.<br /><br />if the users are tech-savy hacker types then the same thing happens as a determined cracker will break any protection if they are willing to spend the time and effort.<br /><br /></i></td>
</tr>
</tbody>
</table>
</blockquote>
<br /><br />I often see similar types of responses when people ask about protecting their source..<br /><br />I guess some people simply don't understand.. <br /><br />For a small operation like mine, code security is key to our business future. If we were to release our product in unencrypted .net, our competitors would gain substantial IP to help rocket them into markets where we already exist, and if our .net app could
 easily be reversed many new competitors would pop up.<br /><br />You see, not everybody is a adobe, or microsoft, or even winzip or nero...<br /><br />Some outfits have a lot of development time invested into developing product for consumers that have no current available options.. We invest heavily to make a product that most of the time, others don't know how to do. Again, if we released our .net unprotected
 well then these others would pop up out of the wood work.<br /><br />Now, most people say, well you provide great customer service and a great product and you won't have to worry about that. That only works if your target consumer is willing to pay the premium for those services. If your target consumer (unfortunately) wants
 the product at the lowest price that argument goes right out the door.</div>
</blockquote>
<br /><br />read what I posted....<br /><br />DID I say &quot;Do Not Protect&quot; ?<br />no.<br /><br />I said there are a set of things to know; who the threat is, why, when, where etc....<br /><br />the company I work for has 3 people, I think I know what &quot;small&quot; is.<br /><br />and your reply sounds like a lot of them I have seen.<br /><br />WHO WANTS YOUR CODE?<br /><br />ARE YOU SURE OF THIS ?<br /><br /><br />really I have to go back to what I posted:<br /><br />what is the threat?<br />who are they?<br />why do they want to steal your work?<br />who are you selling to?<br /><br />your reply shows you are concerned not that end users will copy but that pros will copy your work.&nbsp; that changes the threat.<br /><br />on one side you mention others cloning your work and on the other side you speak of the user wanting it cheap.<br /><br />sounds like you need to re-asses what you are developing and who you are selling to.<br /><br />have you got any real proof that your code is going to be stolen?<br />how many copies a year do you sell ?<br />are you selling direct on-line ? in a box( retail)?&nbsp; thru a partner?<br /><br />possibly you do not want .net at all?<br />afterall with .net you have to have the runtime and that tells the cracker a lot about what to look for.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/116a9460d5a44562b15f9dfa00c2c81f#116a9460d5a44562b15f9dfa00c2c81f</link>
		<pubDate>Sat, 29 Mar 2008 16:26:02 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/116a9460d5a44562b15f9dfa00c2c81f#116a9460d5a44562b15f9dfa00c2c81f</guid>
		<dc:creator>figuerres</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/figuerres/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>I take it your just trying to help.</p>
<p>I'm not asking for assistance as to if I need .net protection, I know I do. I'm asking what options others use.</p>
<p>The industry I am in is very competative. There have been src leaks and startups from reversing.. its real tough.</p>
<p>We use .net as its real easy to develop GUI based applications, much quicker than it is in C or using other dev tools.<br /><br />I look forward to when a main stream vendor releases a product in .net, should be very interesting.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/627a1b7cb8f249ba95109dfa00c2c85e#627a1b7cb8f249ba95109dfa00c2c85e</link>
		<pubDate>Sat, 29 Mar 2008 18:09:52 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/627a1b7cb8f249ba95109dfa00c2c85e#627a1b7cb8f249ba95109dfa00c2c85e</guid>
		<dc:creator>CodeGuru123</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CodeGuru123/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;I look forward to when a main stream vendor releases a product in .net, should be very interesting.</div>
</blockquote>
<br /><br />There has been.<br /><br />The computer game &quot;Arena Wars&quot; (circa 2005) was made in C#/.NET1.1 and Managed DirectX and sold pretty well. They didn't bother with much besides running it through the version of Dotfuscator that comes with VS2003. I don't think their sales were hurt any.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/85fa2b4e371c4d5185e49dfa00c2c8d6#85fa2b4e371c4d5185e49dfa00c2c8d6</link>
		<pubDate>Sat, 29 Mar 2008 19:51:39 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/85fa2b4e371c4d5185e49dfa00c2c8d6#85fa2b4e371c4d5185e49dfa00c2c8d6</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;
<p>I take it your just trying to help.</p>
<p>I'm not asking for assistance as to if I need .net protection, I know I do. I'm asking what options others use.</p>
<p>The industry I am in is very competative. There have been src leaks and startups from reversing.. its real tough.</p>
<p>We use .net as its real easy to develop GUI based applications, much quicker than it is in C or using other dev tools.<br /><br />I look forward to when a main stream vendor releases a product in .net, should be very interesting.</p>
</div>
</blockquote>
<br /><br />like say Norton Ghost ??&nbsp; I have a copy that has a bunch of .net .exe and .dll files in it.&nbsp; it's a version I paid for a while back...<br />there are others out there, you just have to check the installs for .config and .manifest files.<br /><br />that aside I am asking questions to better understand the problem you want to solve.<br />for example a leak of source code will in no way be fixed by any runtime protection so that comment leaves me wondering what the problem is?&nbsp;
<br /><br />and your statements like &quot;The industry I am in is very competative. &quot;<br />do not help me understand the nature of the problem.<br /><br />thus back to my questions I turn..... <br /><br />and to my points from before:&nbsp; if someone wants to crack/decompile/ reverse enginer some app they can and they will.<br /><br />the *ONLY* sure way to stop that is never release anything.<br />short of that it's all a game of shall we say &quot;Hide and seek&quot; that is we play.<br /><br />there is a saying:<br /><br />you can have it fast<br />or<br />you can have it cheap<br />or<br />you can have it high quality<br /><br />pick any two you want, but you can't have all three.<br /><br />the third one will be the rub.<br /><br />fast &#43; HQ means it will cost more<br />fast&nbsp; &#43; cheap means it will have less HQ<br />and so on....<br /><br />this tends to be very true....<br /><br />I have personally dealt with folks who spent so much time and effort&nbsp; on a possible deal that they killed it by failing to get it &quot;out the door&quot;<br /><br />and I have seen folks worry about copy-protection when they were selling 10 copies a month to folks who did good to run the app, much less hack it.<br /><br />I am *NOT* saying that is you.&nbsp; just telling you things I have seen.<br />if your thing is so secret you will not share more info on why it needs protectioin and from who then it's imposible for us to really help you.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/e88abc38199d409780ba9dfa00c2c961#e88abc38199d409780ba9dfa00c2c961</link>
		<pubDate>Sat, 29 Mar 2008 23:26:48 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/e88abc38199d409780ba9dfa00c2c961#e88abc38199d409780ba9dfa00c2c961</guid>
		<dc:creator>figuerres</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/figuerres/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>I understand that no method of software protection is completely secure, and I'm not asking for such.<br /></p>
<p>My goal is to protect my investments and make it more difficult (not impossible)&nbsp;for would be crackers to break.<br /><br />I have a solution that works very well for me now, its one of the ones already listed in this thread.. however I'm not sure about the future of this solution as an option for us, as their prices and methods of licensing are drastically changing.</p>
<p>The ideal solution for me, and for many .net users I'd imagine is something that:</p>
<ul>
<li>prevents viewing the MSIL from both a reflector type app and also via RAM dumpers.
</li><li>Packs the exe into a loader application that isn't easily unpacked. </li><li>Prevents .net extraction via modification of the native core .net dll's. </li><li>Prevents debugger attachments, softice, etc... </li><li>Disables .NET profiling </li><li>Protects against&nbsp;ProcDump </li><li>Does not require packing the entire .net framework into the exe to achieve the above protection</li></ul>
<p>That is my ideal list. I'm just trying to come up with a list of solutions that achieve this type of protection.<br /><br />According to my research, CodeVeil has unpackers available. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-6.gif' alt='Sad' /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/97cb63f52ee145e69c439dfa00c2c9dd#97cb63f52ee145e69c439dfa00c2c9dd</link>
		<pubDate>Sun, 30 Mar 2008 17:47:15 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/97cb63f52ee145e69c439dfa00c2c9dd#97cb63f52ee145e69c439dfa00c2c9dd</guid>
		<dc:creator>CodeGuru123</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CodeGuru123/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;My goal is to protect my investments and make it more difficult (not impossible)&nbsp;for would be crackers to break.</div>
</blockquote>
<br /><br />I think that line there is your problem. You cannot fight the warez crowd, but you can woo over their audience.<br /><br />Just wondering, what makes you think that a protectionist stance is the best?<br /><br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/4f5662fa40804bf1bc529dfa00c2ca51#4f5662fa40804bf1bc529dfa00c2ca51</link>
		<pubDate>Sun, 30 Mar 2008 18:54:23 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/4f5662fa40804bf1bc529dfa00c2ca51#4f5662fa40804bf1bc529dfa00c2ca51</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>Its the industry I'm in..</p>
<p>We deal in low volume sales and our product caters to a specific market. We're able to stay ahead of our competition because we have resources that make us able to develop new products in our industry before our competitors do.</p>
<p>Due to the nature of our product, it would be very easy for our competitors to gain key info from reversing our product which would allow them to tap into new customer bases.</p>
<p>By protecting our product the way we do, the amount of time it would take to crack is similar to the amount of time it would take to develop the new products the hard way.. the way we currently do.</p>
<p>If we released our application in unprotected .net form, it would be only a matter of time before our market share was decreased substantially due to the fact that we'd lose our edge of being first to market. We might still be first, but the second to market
 companies would follow very shortly after us, unlike now where we have a year or so or more...</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/e24dc05bf04a4a35a4669dfa00c2cad1#e24dc05bf04a4a35a4669dfa00c2cad1</link>
		<pubDate>Sun, 30 Mar 2008 19:04:47 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/e24dc05bf04a4a35a4669dfa00c2cad1#e24dc05bf04a4a35a4669dfa00c2cad1</guid>
		<dc:creator>CodeGuru123</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CodeGuru123/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>Ok, what industry you're working in? If you say it's industry then you're not the only one doing it right? What do you do?<br /><br />Also, if I can contribute - build your app with&nbsp;mvc paradigm in mind.. do Model and Controller in C/C&#43;&#43;&nbsp;and View in .net. You competitors are probably smart enough to do View(GUI) themselves, but it will be hard(er) for them to get to your algorihm code...
 or throw away .net completely and do it in c&#43;&#43;/mfc, machine code can be much more obfuscated than IL.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/97738ad5bdac45fc8d7a9dfa00c2cb4a#97738ad5bdac45fc8d7a9dfa00c2cb4a</link>
		<pubDate>Sun, 30 Mar 2008 22:05:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/97738ad5bdac45fc8d7a9dfa00c2cb4a#97738ad5bdac45fc8d7a9dfa00c2cb4a</guid>
		<dc:creator>RoyalSchrubber</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/RoyalSchrubber/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">RoyalSchrubber wrote:</div>
<div class="quoteBody">&#65279;Ok, what industry you're working in? If you say it's industry then you're not the only one doing it right? What do you do?<br /><br />Also, if I can contribute - build your app with&nbsp;mvc paradigm in mind.. do Model and Controller in C/C&#43;&#43;&nbsp;and View in .net. You competitors are probably smart enough to do View(GUI) themselves, but it will be hard(er) for them to get to your algorihm code...
 or throw away .net completely and do it in c&#43;&#43;/mfc, machine code can be much more obfuscated than IL.</div>
</blockquote>
<br /><br />MVC doesn't work for every program. It's geared towards 3-tier database apps, it wouldn't work well for Photoshop or Excel, for example.<br /><br />Anyway, re: the whole thing, I'd just go for a simple metadata stripping and .NET-header injection, that should be sufficient, otherwise I think you're just being paranoid. Often you don't need to see the source (or even know the algorithms) to see
<i>how</i> a program works.<br /><br />...unless your competitors know how your program works already, but want to know your algorithms, in which case you're teh b0rked.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/517c9ad3ad8147c1a10e9dfa00c2cbcb#517c9ad3ad8147c1a10e9dfa00c2cbcb</link>
		<pubDate>Sun, 30 Mar 2008 22:19:40 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/517c9ad3ad8147c1a10e9dfa00c2cbcb#517c9ad3ad8147c1a10e9dfa00c2cbcb</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">W3bbo wrote:</div>
<div class="quoteBody">&#65279;<br />MVC doesn't work for every program. It's geared towards 3-tier database apps, it wouldn't work well for Photoshop or Excel, for example.<br /></div>
</blockquote>
<br /><br />I'd hazard a fairly good guess that both Photoshop and Excel have an MVC approach at their core, almost all document-centric applications work that way.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/6c2c351956a342358e769dfa00c2cc06#6c2c351956a342358e769dfa00c2cc06</link>
		<pubDate>Sun, 30 Mar 2008 22:22:31 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/6c2c351956a342358e769dfa00c2cc06#6c2c351956a342358e769dfa00c2cc06</guid>
		<dc:creator>AndyC</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/AndyC/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>MVC pattern probably applies to most applications in some way.. hey - you could do an MVC on top of SOA.. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif' alt='Tongue Out' /><br /><br />I'm in a somewhat similar boat, where we're thickening our client on one of our products, we're well aware that the client is essentially open, but we accept that.. if anything it reminds some of the less hardened developers out there not to 'trust' the client..<br /><br />Our current plan is just to carry on as normal, but we may well instead 'come out' and just become entirely transparent about the 'framework' that exists on our client, if we're in fear of 'losing our ip', we might as well make some kind of publicitiy from
 it.. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-8.gif' alt='Expressionless' /><br /><br />Not to mention the gains you can get from open feedback and 'debugging' from your users.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/2de7568cde164b90accd9dfa00c2cc7d#2de7568cde164b90accd9dfa00c2cc7d</link>
		<pubDate>Sun, 30 Mar 2008 22:36:21 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/2de7568cde164b90accd9dfa00c2cc7d#2de7568cde164b90accd9dfa00c2cc7d</guid>
		<dc:creator>stevo_</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/stevo_/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;
<p>By protecting our product the way we do, the amount of time it would take to crack is similar to the amount of time it would take to develop the new products the hard way.. the way we currently do.</p>
<p>If we released our application in unprotected .net form, it would be only a matter of time before our market share was decreased substantially due to the fact that we'd lose our edge of being first to market. We might still be first, but the second to market
 companies would follow very shortly after us, unlike now where we have a year or so or more...</p>
</div>
</blockquote>
<br />There seems to be this arrogance that code written in an application is the only way the job could have been accomplished. So if a competitor wanted to duplicate your application, he would need to write it exactly like you did.<br /><br />A couple years ago a huge portion of the Windows 2000 source was released. Did that instantly spawn new OSes and allow the competition to take over Windows?&nbsp;It's easier in most all cases to duplicate the functionality of an application by writing it yourself
 rather than trying to decompile and understand someone else's source code.<br /><br />So the questions asked earlier of who and why people would want your source code is very relavent.<br /><br />And yes, there are many many major applications written in .NET.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/d49ea0099c41434ba09c9dfa00c2ccfb#d49ea0099c41434ba09c9dfa00c2ccfb</link>
		<pubDate>Mon, 31 Mar 2008 00:11:26 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/d49ea0099c41434ba09c9dfa00c2ccfb#d49ea0099c41434ba09c9dfa00c2ccfb</guid>
		<dc:creator>numedia</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/numedia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>I think the big questions are what algorithms you guys are using, because (like it or not) the vast majority of the code for a normal windows application is fluff and wouldn't be copied even if you gave the source away free with the app.<br /><br />If you're releasing complex algorithms (such as compilers, or solution solvers or hashes or implementing protected network protocols) which might legitimately be sought after with the intent of gaining
<i>knowledge </i>or <i>algorihms</i> (but not <i>code</i>) then you should be looking to build those algorithms in C and use a commercial grade obfuscatior over it.<br /><br />Frankly, for most apps the Dotfuscator product that you get free with VS will be more than enough to deter any prying eyes, and unless you have good reason to do otherwise, I'd just concentrate on getting the product out of the door rather than wasting time
 enhancing the security of code that nobody wants to steal.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/a171ac0a66f4472c912b9dfa00c2cdfe#a171ac0a66f4472c912b9dfa00c2cdfe</link>
		<pubDate>Mon, 31 Mar 2008 02:29:35 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/a171ac0a66f4472c912b9dfa00c2cdfe#a171ac0a66f4472c912b9dfa00c2cdfe</guid>
		<dc:creator>evildictaitor</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/evildictaitor/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p>Its not arrogance. Please don't be so close minded.<br /><br />We develop software tools that interface with hardware built by others..<br /><br />(These are just examples to get open your thought processes)<br />For example, it could be iPods, cell phones, pda's, etc.. devices built by vendors who we have no communication with and in many cases do not even know about us.<br /><br />So in our src is methods and keys to access these &quot;devices&quot;. So yes, to do what we do you would have to write the SAME exact code as there is one and only one way to do these things. These keys and methods are also not published by the manufacturers and are
 VERY, i repeat <strong>_VERY_</strong> hard to come by.<br /><br />And I know someone is going to say to put these secure pieces in a native dll or something else.. however the methods and keys are not as simple as you would think. They are actually very complicated and are really embedded into the parent .net program. To
 extract them into a seperate DLL would really muck up the entire program structure..<br /><br />I think the list I came up with on the first page is a great list.<br /><br /><li>prevents viewing the MSIL from both a reflector type app and also via RAM dumpers.
</li><li>Packs the exe into a loader application that isn't easily unpacked. </li><li>Prevents .net extraction via modification of the native core .net dll's. </li><li>Prevents debugger attachments, softice, etc... </li><li>Disables .NET profiling </li><li>Protects against&nbsp;ProcDump </li><li>Does not require packing the entire .net framework into the exe to achieve the above protection
<p>Also, if you think that list is unrealistic, there is an app on the first page that does the above. It is also the most expensive one listed by far. I'm looking for more options.</p>
<p>Edit: I know a lot of you are trying to help..&nbsp;&nbsp;As if I was your &quot;average&quot; coder trying to protect something that didn't need to be protected, or wasn't informed about software security. I know I didn't provide ALL the facts in my original post either, I
 didn't feel I needed to.<br /><br />I'd love for this thread to be about my original question though, methods for protecting .net applications. Lets pretend the reasons for protecting the .net app are not important but instead discuss ways to do so, for even the most simple &quot;hello world&quot; application.
 <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
</li></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/64ab026355da41bab7139dfa00c2cd82#64ab026355da41bab7139dfa00c2cd82</link>
		<pubDate>Mon, 31 Mar 2008 02:35:01 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/64ab026355da41bab7139dfa00c2cd82#64ab026355da41bab7139dfa00c2cd82</guid>
		<dc:creator>CodeGuru123</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CodeGuru123/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">evildictaitor wrote:</div>
<div class="quoteBody">&#65279;If you're releasing complex algorithms (such as compilers, or solution solvers or hashes or implementing protected network protocols) which might legitimately be sought after with the intent of gaining
<i>knowledge </i>or <i>algorihms</i> (but not <i>code</i>) then you should be looking to build those algorithms in C and use a commercial grade obfuscatior over it.</div>
</blockquote>
<br /><br />Bingo.<br /><br />We do exactly that for the VERY sensitive algo's we include in our app.<br /><br />We also do include a hardware key for some sensitive algo's too, however our app requires a crippled functionality w/o the hardware key so we're forced to do the method you described as well.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/b0439b2ced5340699a369dfa00c2ce77#b0439b2ced5340699a369dfa00c2ce77</link>
		<pubDate>Mon, 31 Mar 2008 02:39:03 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/b0439b2ced5340699a369dfa00c2ce77#b0439b2ced5340699a369dfa00c2ce77</guid>
		<dc:creator>CodeGuru123</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CodeGuru123/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Methods of protecting .net exe&#39;s from decompilation?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">CodeGuru123 wrote:</div>
<div class="quoteBody">&#65279;Its not arrogance. Please don't be so close minded.<br /><br />We develop software tools that interface with hardware built by others..<br /><br />(These are just examples to get open your thought processes)<br />For example, it could be iPods, cell phones, pda's, etc.. devices built by vendors who we have no communication with and in many cases do not even know about us.<br /><br />So in our src is methods and keys to access these &quot;devices&quot;. So yes, to do what we do you would have to write the SAME exact code as there is one and only one way to do these things.<br /><br />And I know someone is going to say to put these secure pieces in a native dll or something else.. however the methods and keys are not as simple as you would think. They are actually very complicated and are really embedded into the parent .net program. To
 extract them into a seperate DLL would really muck up the entire program structure..<br /><br />I think the list I came up with on the first page is a great list.<br /><br /><li>prevents viewing the MSIL from both a reflector type app and also via RAM dumpers.
</li><li>Packs the exe into a loader application that isn't easily unpacked. </li><li>Prevents .net extraction via modification of the native core .net dll's. </li><li>Prevents debugger attachments, softice, etc... </li><li>Disables .NET profiling </li><li>Protects against&nbsp;ProcDump </li><li>Does not require packing the entire .net framework into the exe to achieve the above protection
<p>Also, if you think that list is unrealistic, there is an app on the first page that does the above. It is also the most expensive one listed by far. I'm looking for more options.</p>
</li></div>
</blockquote>
<br /><br />Okay. The first thing you need to do is identify and eliminate every use of reflection within your entire program. Reflection by definition makes use of metadata embedded within the source program (such as method names, how types are stored etc). Be thorough
 when you do so - things like the binary and XML serializer also use reflection to obtain data about how your program works.<br /><br />The next thing you <i>really must </i>do is migrate all of your code to one project so you can eliminate DLL dependencies. You'll hate me for even suggesting it, but every call out to a DLL (in .NET or native) conveys a certain amount of information with it,
 particularly in the case of .NET. By migrating all of your code to one solution you can build the whole thing without dependencies (excepting the main dependencies such as System and System.Windows.Forms) and any .NET profiler worth it's salt will show you
 redundant code paths that you can eliminate as well.<br /><br />Do everything now that you want to do testwise as you will not have the opportunity to do so later. This includes profiling and tests. You should then ask the CS compiler to compile with maximum optimisations and generate a big EXE in .NET.<br /><br />You should now run a .NET obfuscator over the assembly, and then using the result and an NGEN make a native executable. It'll be big, and you should ask the program to make sure that all metadata is eliminated. You should now check that the program still works
 (if it doesn't that means there was probably some reflective code in the original CS, such as using the Object.ToString() on an object that doesn't overload it.<br /><br />Now you should be able to run a commercial grade native obscator over the program, and you should then do final testing to make sure that the output is still the expected output. Try using various decompilers to see what code is outputted.<br /><br />Now if you're really really paranoid, you can zip up the file (with a password or then encrypt it) and write a C app that unencrypts the file and de-zips it into memory and then runs it. You should run a commercial grade obfuscator over the C app if you do
 so, and you may find that the zipping process makes the program smaller (but slower) too.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/25d0ee28f3f84a4f9cf19dfa00c2cf09#25d0ee28f3f84a4f9cf19dfa00c2cf09</link>
		<pubDate>Mon, 31 Mar 2008 02:41:57 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261918-Methods-of-protecting-net-exes-from-decompilation/25d0ee28f3f84a4f9cf19dfa00c2cf09#25d0ee28f3f84a4f9cf19dfa00c2cf09</guid>
		<dc:creator>evildictaitor</dc:creator>
		<slash:comments>29</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/evildictaitor/Discussions/RSS</wfw:commentRss>
	</item>
</channel>
</rss>