<?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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: MD5 Checksum Doesn&#8217;t Match in swf Files</title>
	<atom:link href="http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/feed/" rel="self" type="application/rss+xml" />
	<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/</link>
	<description>Flash &#038; ActionScript 3 info, source, &#038; experiments</description>
	<lastBuildDate>Fri, 13 Aug 2010 23:09:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Flüge</title>
		<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/comment-page-1/#comment-57899</link>
		<dc:creator>Flüge</dc:creator>
		<pubDate>Fri, 12 Sep 2008 13:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://natejc.com/blog/?p=75#comment-57899</guid>
		<description>Very interesting blogpost. Well, if silverlight allows it, this difference  would be it´s right to exist, as there are no benefits from silverlight, it´s just a redundant product.</description>
		<content:encoded><![CDATA[<p>Very interesting blogpost. Well, if silverlight allows it, this difference  would be it´s right to exist, as there are no benefits from silverlight, it´s just a redundant product.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zir0</title>
		<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/comment-page-1/#comment-34483</link>
		<dc:creator>Zir0</dc:creator>
		<pubDate>Wed, 21 May 2008 21:34:49 +0000</pubDate>
		<guid isPermaLink="false">http://natejc.com/blog/?p=75#comment-34483</guid>
		<description>Hey.

Mr. Nate - Thanks for your reply.

They were STILL different!? Wow... don&#039;t know why that would be. It could very well be Adobe using hashes of sorts at compile-time as you mentioned, or it can probably be explained in the format of a SWF, since it is open-source and all. Or, Adobe just likes to play games.

Speaking of games... what about that Konami code, man? Maybe try putting the code in WHILE your SWF is compiling, and that will stop random hashes. :-) lol No, wait, don&#039;t do that - it might produce THIRTY swfs, all totally different!

----------

Thanks for your comments on my idea, and yes, I am already aware of the caveat. That&#039;s not a big deal for me, as the SWF is not likely to change much, once you are done working on it.

I started to work on the idea, and I&#039;ve already re-calculated the hashes several times after recompiling my SWF while testing, just to make sure it works. You&#039;d only have to re-calculate and upload your hashes, say for example, on a new version of your SWF.

Hope you find out why your comparisons are always off, soldier.

__________
-Ziro out.</description>
		<content:encoded><![CDATA[<p>Hey.</p>
<p>Mr. Nate &#8211; Thanks for your reply.</p>
<p>They were STILL different!? Wow&#8230; don&#8217;t know why that would be. It could very well be Adobe using hashes of sorts at compile-time as you mentioned, or it can probably be explained in the format of a SWF, since it is open-source and all. Or, Adobe just likes to play games.</p>
<p>Speaking of games&#8230; what about that Konami code, man? Maybe try putting the code in WHILE your SWF is compiling, and that will stop random hashes. <img src='http://natejc.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  lol No, wait, don&#8217;t do that &#8211; it might produce THIRTY swfs, all totally different!</p>
<p>&#8212;&#8212;&#8212;-</p>
<p>Thanks for your comments on my idea, and yes, I am already aware of the caveat. That&#8217;s not a big deal for me, as the SWF is not likely to change much, once you are done working on it.</p>
<p>I started to work on the idea, and I&#8217;ve already re-calculated the hashes several times after recompiling my SWF while testing, just to make sure it works. You&#8217;d only have to re-calculate and upload your hashes, say for example, on a new version of your SWF.</p>
<p>Hope you find out why your comparisons are always off, soldier.</p>
<p>__________<br />
-Ziro out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Chatellier</title>
		<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/comment-page-1/#comment-34466</link>
		<dc:creator>Nate Chatellier</dc:creator>
		<pubDate>Wed, 21 May 2008 20:12:33 +0000</pubDate>
		<guid isPermaLink="false">http://natejc.com/blog/?p=75#comment-34466</guid>
		<description>Hey Zir0, I understand about the md5 &quot;avalanche&quot; effect, but this should not also be true of a hex compare when nothing at all has been changed.  And yes, I compiled once, moved the swf, immediately compiled a second time without changing anything, then did the hex compare. The hex compare of the swf&#039;s were *completely* different. My only guess is that Adobe uses some sort of hash key or something when the compiler runs--probably for security reasons.

What your proposing to do for your security sounds like it would work great, with one caveat: each time you recompiled the external swf, your checksum would no longer match. So you would also have to update your preloader (or better, some external file/database that the preloader gets the checksum values from).</description>
		<content:encoded><![CDATA[<p>Hey Zir0, I understand about the md5 &#8220;avalanche&#8221; effect, but this should not also be true of a hex compare when nothing at all has been changed.  And yes, I compiled once, moved the swf, immediately compiled a second time without changing anything, then did the hex compare. The hex compare of the swf&#8217;s were *completely* different. My only guess is that Adobe uses some sort of hash key or something when the compiler runs&#8211;probably for security reasons.</p>
<p>What your proposing to do for your security sounds like it would work great, with one caveat: each time you recompiled the external swf, your checksum would no longer match. So you would also have to update your preloader (or better, some external file/database that the preloader gets the checksum values from).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ziro</title>
		<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/comment-page-1/#comment-34331</link>
		<dc:creator>Ziro</dc:creator>
		<pubDate>Tue, 20 May 2008 21:34:11 +0000</pubDate>
		<guid isPermaLink="false">http://natejc.com/blog/?p=75#comment-34331</guid>
		<description>Hey.

Ok, seriously. ;-)

MD5 has what they call the &quot;avalanche&quot; effect, where even the slightest change in the data produces a totally different output.

Have you tried compiling the Flash, moving the resulting SWF to another folder, so you don&#039;t overwrite it, then compiling it a second time, and comparing the two SWFs? I don&#039;t have Flash CS3, so I don&#039;t what implications that would have.

Off topic, if I may digress...

What a coincidence! I was looking for was to add some security my Flash SWF game once I am ready to put it on the net, and I found this page. Comparing hashes is something I am currently implementing.

One idea I had was to have a &quot;pre-preloader&quot; SWF, which loads a preloader SWF. The preloader is encrypted, so it&#039;s a bunch of mangled bytes. Then I compute a checksum, or some other hash, of this encrypted data, and run the result against a hash value stored in a server-side database. If they match, then it&#039;s ok; the preloader is decrypted then loaded into Flash, which finally loads the &quot;real&quot; Flash SWF (which would be the game), which also is encrypted. Using AES-256 encryption.

__________
-Zir0 out.</description>
		<content:encoded><![CDATA[<p>Hey.</p>
<p>Ok, seriously. <img src='http://natejc.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>MD5 has what they call the &#8220;avalanche&#8221; effect, where even the slightest change in the data produces a totally different output.</p>
<p>Have you tried compiling the Flash, moving the resulting SWF to another folder, so you don&#8217;t overwrite it, then compiling it a second time, and comparing the two SWFs? I don&#8217;t have Flash CS3, so I don&#8217;t what implications that would have.</p>
<p>Off topic, if I may digress&#8230;</p>
<p>What a coincidence! I was looking for was to add some security my Flash SWF game once I am ready to put it on the net, and I found this page. Comparing hashes is something I am currently implementing.</p>
<p>One idea I had was to have a &#8220;pre-preloader&#8221; SWF, which loads a preloader SWF. The preloader is encrypted, so it&#8217;s a bunch of mangled bytes. Then I compute a checksum, or some other hash, of this encrypted data, and run the result against a hash value stored in a server-side database. If they match, then it&#8217;s ok; the preloader is decrypted then loaded into Flash, which finally loads the &#8220;real&#8221; Flash SWF (which would be the game), which also is encrypted. Using AES-256 encryption.</p>
<p>__________<br />
-Zir0 out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ziro</title>
		<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/comment-page-1/#comment-34327</link>
		<dc:creator>Ziro</dc:creator>
		<pubDate>Tue, 20 May 2008 21:17:13 +0000</pubDate>
		<guid isPermaLink="false">http://natejc.com/blog/?p=75#comment-34327</guid>
		<description>Hey.

So,  you&#039;re a Konami fan, too, huh?

You forgot about START, or SELECT, START for two players, like back in the day. :-)</description>
		<content:encoded><![CDATA[<p>Hey.</p>
<p>So,  you&#8217;re a Konami fan, too, huh?</p>
<p>You forgot about START, or SELECT, START for two players, like back in the day. <img src='http://natejc.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Chatellier</title>
		<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/comment-page-1/#comment-6757</link>
		<dc:creator>Nate Chatellier</dc:creator>
		<pubDate>Thu, 14 Feb 2008 17:09:23 +0000</pubDate>
		<guid isPermaLink="false">http://natejc.com/blog/?p=75#comment-6757</guid>
		<description>@Josh - I agree completely and the MD5 sum would definitely be completely different even if the only thing that changed was the date. But when I did the hex compare, there were TONS of things different in the actual files (not just the checksum). This is the part that baffles me.</description>
		<content:encoded><![CDATA[<p>@Josh &#8211; I agree completely and the MD5 sum would definitely be completely different even if the only thing that changed was the date. But when I did the hex compare, there were TONS of things different in the actual files (not just the checksum). This is the part that baffles me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Josh</title>
		<link>http://natejc.com/blog/2008/02/md5-checksum-doesnt-match-in-swf-files/comment-page-1/#comment-6721</link>
		<dc:creator>Josh</dc:creator>
		<pubDate>Thu, 14 Feb 2008 00:10:53 +0000</pubDate>
		<guid isPermaLink="false">http://natejc.com/blog/?p=75#comment-6721</guid>
		<description>SWF files are generally compressed (they don&#039;t have to be, though). I imagine that if a timestamp is saved into the SWF before compression, the MD5 sum would be completely different every time even if the rest of the uncompressed SWF is the same.</description>
		<content:encoded><![CDATA[<p>SWF files are generally compressed (they don&#8217;t have to be, though). I imagine that if a timestamp is saved into the SWF before compression, the MD5 sum would be completely different every time even if the rest of the uncompressed SWF is the same.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
