<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: An attempt to find a suitable Java &#8220;Obfuscator&#8221;</title>
	<atom:link href="http://closingbraces.net/2007/08/27/javaobfuscators/feed/" rel="self" type="application/rss+xml" />
	<link>http://closingbraces.net/2007/08/27/javaobfuscators/</link>
	<description>After-hours notes and opinions on Java and system development</description>
	<lastBuildDate>Wed, 11 Jan 2012 18:00:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: closingbraces</title>
		<link>http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2906</link>
		<dc:creator><![CDATA[closingbraces]]></dc:creator>
		<pubDate>Fri, 31 Aug 2007 11:33:42 +0000</pubDate>
		<guid isPermaLink="false">http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2906</guid>
		<description><![CDATA[Native code isn&#039;t remotely appropriate for this product. It&#039;s a library for Java programmers to use in their own testing, and it needs to be as portable and cross-platform as possible, and (as per the article) I want most of the library to be readily examinable in Java debuggers. That is, when users are debugging their own code that uses the library, it&#039;s useful to be able to see the state of the library&#039;s objects as they proceed.

More generally, the benefits of being cross-platform &quot;pure Java&quot; are important to me. The only thought I&#039;ve given to native code is to immediately rule it out.]]></description>
		<content:encoded><![CDATA[<p>Native code isn&#8217;t remotely appropriate for this product. It&#8217;s a library for Java programmers to use in their own testing, and it needs to be as portable and cross-platform as possible, and (as per the article) I want most of the library to be readily examinable in Java debuggers. That is, when users are debugging their own code that uses the library, it&#8217;s useful to be able to see the state of the library&#8217;s objects as they proceed.</p>
<p>More generally, the benefits of being cross-platform &#8220;pure Java&#8221; are important to me. The only thought I&#8217;ve given to native code is to immediately rule it out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry</title>
		<link>http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2903</link>
		<dc:creator><![CDATA[Dmitry]]></dc:creator>
		<pubDate>Fri, 31 Aug 2007 01:54:13 +0000</pubDate>
		<guid isPermaLink="false">http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2903</guid>
		<description><![CDATA[Have you considered compiling your application down to native code using &lt;a href=&quot;http://gcc.gnu.org/java/&quot; rel=&quot;nofollow&quot;&gt;GCJ&lt;/a&gt; or &lt;a href=&quot;http://www.excelsior-usa.com/jet.html&quot; rel=&quot;nofollow&quot;&gt;Excelsior JET&lt;/a&gt;?]]></description>
		<content:encoded><![CDATA[<p>Have you considered compiling your application down to native code using <a href="http://gcc.gnu.org/java/" rel="nofollow">GCJ</a> or <a href="http://www.excelsior-usa.com/jet.html" rel="nofollow">Excelsior JET</a>?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: closingbraces</title>
		<link>http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2889</link>
		<dc:creator><![CDATA[closingbraces]]></dc:creator>
		<pubDate>Wed, 29 Aug 2007 10:02:18 +0000</pubDate>
		<guid isPermaLink="false">http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2889</guid>
		<description><![CDATA[Javalobby also now has a &lt;a href=&quot;http://www.javalobby.org/java/forums/t100756.html&quot; rel=&quot;nofollow&quot;&gt;What&#039;s the Best Code Obfuscator?&lt;/a&gt; discussion underway.]]></description>
		<content:encoded><![CDATA[<p>Javalobby also now has a <a href="http://www.javalobby.org/java/forums/t100756.html" rel="nofollow">What&#8217;s the Best Code Obfuscator?</a> discussion underway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: callingshotgun</title>
		<link>http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2888</link>
		<dc:creator><![CDATA[callingshotgun]]></dc:creator>
		<pubDate>Wed, 29 Aug 2007 04:05:56 +0000</pubDate>
		<guid isPermaLink="false">http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2888</guid>
		<description><![CDATA[David-

While I agree with several of your points about obfuscation, it DOES have benefits.  I spent some time as a J2ME developer for a local startup, and there was a hard limit on what size JAR file different phones would accept.  Proguard was an absolute dream in this scenario, shaving off 30%-40% of the JAR size-  it was what let us get our applications onto the phone.  A 128KB ceiling is a tricky obstacle, especially when you&#039;re writing games (where graphics can easily take up a third of the overall jar, if not more).  We were able to write readable, maintanable code without sacrificing file size.]]></description>
		<content:encoded><![CDATA[<p>David-</p>
<p>While I agree with several of your points about obfuscation, it DOES have benefits.  I spent some time as a J2ME developer for a local startup, and there was a hard limit on what size JAR file different phones would accept.  Proguard was an absolute dream in this scenario, shaving off 30%-40% of the JAR size-  it was what let us get our applications onto the phone.  A 128KB ceiling is a tricky obstacle, especially when you&#8217;re writing games (where graphics can easily take up a third of the overall jar, if not more).  We were able to write readable, maintanable code without sacrificing file size.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: closingbraces</title>
		<link>http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2885</link>
		<dc:creator><![CDATA[closingbraces]]></dc:creator>
		<pubDate>Tue, 28 Aug 2007 16:42:42 +0000</pubDate>
		<guid isPermaLink="false">http://closingbraces.net/2007/08/27/javaobfuscators/#comment-2885</guid>
		<description><![CDATA[David,

I agree with some of that, especially no. 1, but think it all has to be taken in context. 

My own context is that:
- The product involved will have a zero-cost edition; 
- People can decide for themselves whether or not to buy the &quot;licenced&quot; edition for its extra features as they see fit (it&#039;s up to me to make that worthwhile...); 
- None of the actual functionality will be obfuscated, only some very specific pieces of the licence-checking code;
- The obfuscation won&#039;t be widespread &quot;renaming&quot;, just internal changes within the byte-code of specific methods to make them slightly non-trivial to decompile/replace;
- As stated in the post, I don&#039;t see this as worth lots of time, effort, or cost, or as somehow foolproof - in keeping with point 1 of your comment I largely trust my likely customers, and just want a minor obstacle to effortless hacking by all and sundry. 

More importantly, for anyone that wants the source code so that they can modify it, or to guarantee they can maintain/support it themselves if necessary, or if they want the unobfuscated code for any other  reason, &lt;b&gt;this will also be available&lt;/b&gt; - there will be a site-licenced edition that comes with full source code including test cases (with 100% code coverage) and Ant build script.

With regard to your general comment, this particular product is a tool to help with testing. There&#039;s no issue of claiming this is some kind of reusable business component that&#039;s somehow better than a company&#039;s own way of doing things, and no issue over &quot;data&quot; security. I think you might have been imagining an entirely different category of product - probably my fault for not spelling this out.

Obviously, your mileage may vary - in many situations obfuscation may be a very bad idea, for the reasons you&#039;ve explained. In other situations it may be entirely reasonable or even absolutely vital.

As for 5.c, anyone that suffers this has problems far more fundamental than obfuscation, and have only themselves to blame (source control? backup? disaster recovery? due diligence?). I don&#039;t think relying on copying the code back from your customers is the answer, with or without obfuscation!

Mike]]></description>
		<content:encoded><![CDATA[<p>David,</p>
<p>I agree with some of that, especially no. 1, but think it all has to be taken in context. </p>
<p>My own context is that:<br />
- The product involved will have a zero-cost edition;<br />
- People can decide for themselves whether or not to buy the &#8220;licenced&#8221; edition for its extra features as they see fit (it&#8217;s up to me to make that worthwhile&#8230;);<br />
- None of the actual functionality will be obfuscated, only some very specific pieces of the licence-checking code;<br />
- The obfuscation won&#8217;t be widespread &#8220;renaming&#8221;, just internal changes within the byte-code of specific methods to make them slightly non-trivial to decompile/replace;<br />
- As stated in the post, I don&#8217;t see this as worth lots of time, effort, or cost, or as somehow foolproof &#8211; in keeping with point 1 of your comment I largely trust my likely customers, and just want a minor obstacle to effortless hacking by all and sundry. </p>
<p>More importantly, for anyone that wants the source code so that they can modify it, or to guarantee they can maintain/support it themselves if necessary, or if they want the unobfuscated code for any other  reason, <b>this will also be available</b> &#8211; there will be a site-licenced edition that comes with full source code including test cases (with 100% code coverage) and Ant build script.</p>
<p>With regard to your general comment, this particular product is a tool to help with testing. There&#8217;s no issue of claiming this is some kind of reusable business component that&#8217;s somehow better than a company&#8217;s own way of doing things, and no issue over &#8220;data&#8221; security. I think you might have been imagining an entirely different category of product &#8211; probably my fault for not spelling this out.</p>
<p>Obviously, your mileage may vary &#8211; in many situations obfuscation may be a very bad idea, for the reasons you&#8217;ve explained. In other situations it may be entirely reasonable or even absolutely vital.</p>
<p>As for 5.c, anyone that suffers this has problems far more fundamental than obfuscation, and have only themselves to blame (source control? backup? disaster recovery? due diligence?). I don&#8217;t think relying on copying the code back from your customers is the answer, with or without obfuscation!</p>
<p>Mike</p>
]]></content:encoded>
	</item>
</channel>
</rss>

