<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geospecialling &#187; Code Protection</title>
	<atom:link href="http://www.geospecialling.com/index.php/tag/code-protection/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geospecialling.com</link>
	<description>Being a (G)IS Developer...</description>
	<lastBuildDate>Thu, 26 Jan 2012 04:11:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Remotesoft Protector Runtime Error &#8211; yet to handle multiple .NET framework runtime</title>
		<link>http://www.geospecialling.com/index.php/2011/11/remotesoft-protector-runtime-error-yet-to-handle-multiple-net-framework-runtime/</link>
		<comments>http://www.geospecialling.com/index.php/2011/11/remotesoft-protector-runtime-error-yet-to-handle-multiple-net-framework-runtime/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 03:07:49 +0000</pubDate>
		<dc:creator>Darrin Maidlow</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Code Protection]]></category>
		<category><![CDATA[Remotesoft Protector]]></category>

		<guid isPermaLink="false">http://www.geospecialling.com/index.php/2011/11/remotesoft-protector-runtime-error-yet-to-handle-multiple-net-framework-runtime/</guid>
		<description><![CDATA[Remotesoft protector is one of the best code protection tools out there.&#160; In fact, its pretty much the only one that really works.&#160; Since I moved to .NET 4.0 I’ve been getting an annoying error when attempting to protect my binaries using the 4.0 suite of tools (with the updated protector runtime).&#160; Everything still runs [...]]]></description>
			<content:encoded><![CDATA[<p>Remotesoft protector is one of the <a title="Remotesoft protector" href="http://www.remotesoft.com/salamander/protector.html" rel="tag" target="_blank">best code protection tools</a> out there.&#160; In fact, its pretty much the only one that really works.&#160; Since I moved to .NET 4.0 I’ve been getting an annoying error when attempting to protect my binaries using the 4.0 suite of tools (with the <a title="updated protector runtime" href="http://www.remotesoft.com/salamander/download_protector/rscoree.zip" rel="tag" target="_blank">updated protector runtime</a>).&#160; Everything still runs – it just pops up nasty alert boxes on load which is no good <img src='http://www.geospecialling.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>Remotesoft Protector Runtime Error &#8211; yet to handle multiple .NET framework runtime</p>
</blockquote>
<p>One other symptom of this was that .exe files would just blow chunks.&#160; I’ve finally figured out what was causing this!&#160; Most of our products are protected during the nightly builds.&#160; This error however is specific to assemblies protected using the the Remotesoft .NET Explorer UI.&#160; When using this application for the protect or obfuscate functionality it is really just a front end around the protector.exe/obfuscator.exe.&#160; The UI is building the following command line string and tonight it finally dawned on me:<a href="http://www.geospecialling.com/wp-content/uploads/2011/11/Remotesoft-.NET-Explorer.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Remotesoft .NET Explorer" border="0" alt="Remotesoft .NET Explorer" align="right" src="http://www.geospecialling.com/wp-content/uploads/2011/11/Remotesoft-.NET-Explorer_thumb.png" width="232" height="244" /></a></p>
<blockquote><p>Command: C:\Program Files (x86)\Remotesoft\Protector\bin\protector.exe -neutral -resource -string -cctor -clrversion v2.0.50727 &quot;C:\temp\SmartInk for Kahua\SmartInk.UI.exe&quot;</p>
</blockquote>
<p>The UI was forcing the clr version to .NET 2.0 – when my assemblies are all built against .NET 4.0.&#160; Oops…</p>
<p>After a bit of digging I found that you can set the CLR version in .NET Explorer from the Action / CLR Version menu item.&#160; Unfortunately it has not been updated to support .NET 4.0 – and so has been rendered pretty much useless as a front end for protector.</p>
<h2>The Fix</h2>
<p>The only solution is to use the command line to execute your protection.&#160;&#160; The updated command line ended up looking pretty similar:</p>
<blockquote><p>&quot;C:\Program Files (x86)\Remotesoft\Protector\bin\protector.exe&quot; -neutral -resource -string&#160; -clrversion v4.0.30319 &quot;C:\temp\SmartInk for Kahua\SmartInk.UI.exe&quot;</p>
</blockquote>
<p>There you have it – I can’t believe I missed that…</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:372d8d96-7723-4196-8917-b501d70c3e74" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Remotesoft+Protector" rel="tag">Remotesoft Protector</a>,<a href="http://technorati.com/tags/.NET" rel="tag">.NET</a>,<a href="http://technorati.com/tags/Code+Protection" rel="tag">Code Protection</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.geospecialling.com/index.php/2011/11/remotesoft-protector-runtime-error-yet-to-handle-multiple-net-framework-runtime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Code Protection &#8211; Remotesoft Protector to the Rescue!</title>
		<link>http://www.geospecialling.com/index.php/2008/05/net-code-protection-remotesoft-protector-to-the-rescue/</link>
		<comments>http://www.geospecialling.com/index.php/2008/05/net-code-protection-remotesoft-protector-to-the-rescue/#comments</comments>
		<pubDate>Sun, 25 May 2008 07:53:00 +0000</pubDate>
		<dc:creator>Darrin Maidlow</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Code Protection]]></category>

		<guid isPermaLink="false">http://www.geospecialling.com/index.php/2008/05/net-code-protection-remotesoft-protector-to-the-rescue/</guid>
		<description><![CDATA[When .NET based assemblies go out the door, it&#8217;s incredibly simple for others to get access to your code.&#160;&#160; Download Lutz Roeder&#8217;s Reflector and take a look at what some of your assemblies have to say.&#160; The code visible is likely not going to be anywhere near as elegant as the original.&#160; The comments will [...]]]></description>
			<content:encoded><![CDATA[<p>When .NET based assemblies go out the door, it&#8217;s incredibly simple for others to get access to your code.&#160;&#160; Download <a title="Lutz Roeder&#39;s Reflector" href="http://www.aisto.com/roeder/dotnet/" target="_blank" rel="tag">Lutz Roeder&#8217;s Reflector</a> and take a look at what some of your assemblies have to say.&#160; The code visible is likely not going to be anywhere near as elegant as the original.&#160; The comments will be gone.&#160; The gist of what you are doing will be there.&#160; If you would prefer that your work be a little tougher to get at, read on.</p>
<p>Obfuscation was one of my first answers to this problem.&#160; An obfuscator ships with Visual Studio Pro, free and there are many available on the market.&#160; Obfuscation just didn&#8217;t do it for me.&#160; I once helped a customer troubleshoot problems with one of their software solutions from an unnamed vendor using Reflector and walking through the obfuscated code.&#160; This was really a painful experience, it does make it harder to figure out what is going on &#8211; but a friend of mine suggested a product that takes code protection one step further.</p>
<p>Hello <a title="Remotesoft Protector - protect your code" href="http://www.remotesoft.com/salamander/protector.html" target="_blank" rel="tag">Remotesoft Protector</a>.&#160; This product is pretty cool.&#160; If you purchase the protector product you will receive three components.&#160; Salamander .NET Decompiler, .NET Obfuscator, and .NET Protector.&#160; Initially I was processing my assemblies with both the obfuscator and the protector.&#160;&#160; Now a days, I pretty much only run my assemblies through the protector.</p>
<p>Once you&#8217;ve processed an assembly with the protector and you open it up in reflector things are going to look a little different.&#160; Here is a little before and after action for you:</p>
<p align="center"><a href="http://www.geospecialling.com/wp-content/uploads/2010/02/image2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="478" alt="Code as disassembled by Reflector" src="http://www.geospecialling.com/wp-content/uploads/2010/02/image_thumb2.png" width="644" border="0" /></a>&#160;</p>
<p align="left">Now lets take a look at the same code, but after being protected:</p>
<p align="center"><a href="http://www.geospecialling.com/wp-content/uploads/2010/02/image3.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="73" alt="image" src="http://www.geospecialling.com/wp-content/uploads/2010/02/image_thumb3.png" width="244" border="0" /></a> </p>
<p align="left">That&#8217;s it.&#160; Protector has made all your code go bye bye =)&#160; What&#8217;s happened here?&#160; As I understand it, Protector compiles all your managed .NET code into native code.&#160; So, yes, is it possible to disassemble native binaries.&#160; The difference here is the height of the bar &#8211; with plain .NET assemblies even my grand mother could get my code.&#160; Reverse engineering a native assembly is a different story.&#160; If someone with the skill to do that wants your code &#8211; well you must be writing some damn fine code.&#160; It would probably be easier for that kind of person to write it from scratch =)</p>
<p align="left">I&#8217;ve been working on increasing my <a title="The Joel Test - 12 Steps to Better Code" href="http://www.joelonsoftware.com/articles/fog0000000043.html" target="_blank" rel="tag">Joel Test</a> score lately.&#160; One of my biggies is the one step build for RADE.&#160; That sentence really doesn&#8217;t do the task justice.&#160; The first step I&#8217;m tackling in the one step build is automating the process of protecting my .NET assemblies.&#160; I could not find any resources on doing with with MSBuild.&#160; Once I get it working, I&#8217;ll post some code.</p>
<p align="left">All that said, I highly recommend you check out Protector if code protection is your thing.&#160; The price is a little bit steep at 1899$ for 1-5 developers &#8211; but how much money have you invested in that one little DLL or EXE file?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geospecialling.com/index.php/2008/05/net-code-protection-remotesoft-protector-to-the-rescue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

