<?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>An Autonomous Zone &#187; Fuzzing</title>
	<atom:link href="http://anautonomouszone.com/blog/archives/category/fuzzing/feed" rel="self" type="application/rss+xml" />
	<link>http://anautonomouszone.com/blog</link>
	<description>An autonomous zone to promote an exchange of ideas, skills, and experiences with computer (in)security.</description>
	<lastBuildDate>Thu, 09 Apr 2009 23:23:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>File Fuzzing &#8211; Part 2</title>
		<link>http://anautonomouszone.com/blog/archives/14</link>
		<comments>http://anautonomouszone.com/blog/archives/14#comments</comments>
		<pubDate>Sun, 06 Jul 2008 15:31:12 +0000</pubDate>
		<dc:creator>Chuck B.</dc:creator>
				<category><![CDATA[Fuzzing]]></category>

		<guid isPermaLink="false">http://anautonomouszone.com/blog/?p=14</guid>
		<description><![CDATA[
So in light of it being the beginning of October I decided to celebrate by spending a little time on re-writing some of the functionalities of FileFuzz.
As I had mentioned in a previous post about this topic, fuzzing typically falls into two different categories – brute force (mutation-based fuzzing) and intelligent brute force (generation-based) fuzzing. [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">
<p class="MsoNormal">So in light of it being the beginning of October I decided to celebrate by spending a little time on re-writing some of the functionalities of FileFuzz.</p>
<p class="MsoNormal">As I had mentioned in a previous post about this topic, fuzzing typically falls into two different categories – brute force (mutation-based fuzzing) and intelligent brute force (generation-based) fuzzing. Just to recap, mutation based fuzzing is where we get some sample files of the file type and the fuzzer generator creates mutations of them. With intelligent brute force fuzzing we actually have to research the file specification. An intelligent fuzzing engine is still brute force attacking, but it relies on configuration files from the user, making the process more intelligent. Think of templates that the fuzzing engine will use that has a list of data structures, positions relative to each other, and possible values.</p>
<p class="MsoNormal">In the last little while, in my free time, I’ve been looking into different fuzzing generators in order to generate malformed files for different file formats. I decided to go with Autodafe for the generation based fuzzing. I have a newer release of Autodafe than the public version, (just because I emailed Martin Vuagnoux and he was cool enough to send me the newest he had at the time) – and I modified how it generates files for hex fuzzing. The stock version of Autodafe is missing the hex generator functionality. You can pick up the hex fuzzing mod  that I did for it <a title="generator_w_hex.sh" href="http://anautonomouszone.com/tools/generator_w_hex.sh">here</a>.</p>
<p class="MsoNormal">I also decided to spend a little time and modify FileFuzz for the mutation-based fuzzing.</p>
<p class="MsoNormal">One thing I tried to keep in mind while trying to figure out how to generate the data was exactly what data to generate. I figured I’d have greater success of finding bugs if I could generate smart data sets.</p>
<p class="MsoNormal">So let’s talk about “smart data sets” for a minute pertaining to mutation-based fuzzing (I also like to think of mutation-based fuzzing as file bit-flipping).</p>
<p class="MsoNormal">Bit flipping files can be really handy for not only finding integer overflows/underflows but also for other length calculations on data.</p>
<p class="MsoNormal">Let’s look at an example of length calculation stuff (this is pretty much taken from Pedram’s fuzzing book &#8211; &#8220;Fuzzing – Brute Force Vulnerability Discovery&#8221;). For example, MS04-028 “Buffer Overrun in JPEG Processing (GDI+) Could Allow Code Execution.” The JPEG format allows comments to be embedded within the image itself. Comments are preceded by the 0xFFFE byte sequence, followed by a 16-bit word value indicating the total size of the comment. The size includes the two bytes used for the size and the header ends with the comment itself.</p>
<p class="MsoNormal">We would see something like this in the file:</p>
<p class="MsoNormal">FF FE 00 06 66 75 7A 7A</p>
<p class="MsoNormal">Breakdown:</p>
<p class="MsoNormal">FF FE                                     Comment Preface</p>
<p class="MsoNormal">00 06                                    Length of comments in bytes</p>
<p class="MsoNormal">66 75 7A 7A                         ASCII value of ‘fuzz’</p>
<p class="MsoNormal">Now if the Length of comments in bytes was changed (flipped) from 0&#215;0006 to 0&#215;0000 we have an overflow in the vulnerable version of Windows Picture and Fax Viewer (shimgvw.dll).</p>
<p class="MsoNormal">The other big class of vulns. that typically found with bit flipping are the integer related overflow/underflow guys.</p>
<p class="MsoNormal">Continuing with “smart data sets” we can guess that the two extreme border cases (0 and 0xFFFFFFFF) are obvious choices to flip bits to – but let’s think of other choices as well.</p>
<p class="MsoNormal">For example (again from Pedram’s book) it’s not uncommon for additional space to be included with the specified size to accommodate a header, footer, or terminating NULL byte. The following code is an example:</p>
<p class="MsoNormal">int size = read_ccr_size(packet);</p>
<p class="MsoNormal">// save space for NULL termination.</p>
<p class="MsoNormal">buffer = (char *) malloc(size + 1);</p>
<p class="MsoNormal">Therefore, it might be a good idea to include near-border test cases such as 0XFFFFFFFF-1, 0XFFFFFFFF-2, 0XFFFFFFFF-3, (or even + sometimes) etc.</p>
<p class="MsoNormal">Then there’s also 16-bit integers (0xFFFF) and 8-bit integers to think about (0xFF).</p>
<p class="MsoNormal">Also there’s a host of other meaningful (“smart”) values we might want to try that could yield results:</p>
<p class="MsoNormal">0&#215;100</p>
<p class="MsoNormal">0&#215;1000</p>
<p class="MsoNormal">0&#215;3fffffff</p>
<p class="MsoNormal">0&#215;7ffffffe</p>
<p class="MsoNormal">0&#215;7fffffff</p>
<p class="MsoNormal">0&#215;80000000</p>
<p class="MsoNormal">0xfffffffe</p>
<p class="MsoNormal">0&#215;10000</p>
<p class="MsoNormal">0&#215;100000</p>
<p class="MsoNormal">0&#215;2000</p>
<p class="MsoNormal">0&#215;8000</p>
<p class="MsoNormal">etc…</p>
<p class="MsoNormal">So as I had mentioned previously I decided to work with FileFuzz to generate malformed (bit-flipped) files. The way Sutton designed FileFuzz there’s essentially two different ways to bit flip files. One is to use the “All Bytes” option which you can specify the Byte(s) to Overwrite (flip to) and the number of bytes to overwrite. It might be clearer with a small example:</p>
<p class="MsoNormal">Let’s say I have a file with the current values:</p>
<p class="MsoNormal">FF FE 00 06 66 75 7A 7A</p>
<p class="MsoNormal">If I specified the “All Bytes” option with the Byte(s) to Overwrite to be 0xBB and the number of bytes to be overwritten to be 2 the following would be the first file generated:</p>
<p class="MsoNormal">BB BB 00 06 66 75 7A 7A</p>
<p class="MsoNormal">The second file would be:</p>
<p class="MsoNormal">FF BB BB 06 66 75 7A 7A</p>
<p class="MsoNormal">The third file:</p>
<p class="MsoNormal">FF FE BB BB 66 75 7A 7A</p>
<p class="MsoNormal">and so on…</p>
<p class="MsoNormal">Using this technique one could generate a lot of files with combinations like 0&#215;00 x 4 (to create 0&#215;00000000 in place of our BB BB above we would overwrite 4 bytes at a time with 00 00 00 00), etc.</p>
<p class="MsoNormal">But we couldn’t generate different value pairs of bytes to overwrite like 0xFFFE or 0&#215;00000001, or even 0&#215;7FFE….</p>
<p class="MsoNormal">There’s also the “Depth” option in FileFuzz in which case you specify a location (bytes number) to fuzz in the file and the bytes to overwrite that location with.</p>
<p class="MsoNormal">Using our example hex values again:</p>
<p class="MsoNormal">FF FE 00 06 66 75 7A 7A</p>
<p class="MsoNormal">If I were to specify location 2 with the bytes to overwrite being 0&#215;01to 0&#215;03 the result would generate the following date in the files:</p>
<p class="MsoNormal">First file:</p>
<p class="MsoNormal">FF FE 01 06 66 75 7A 7A</p>
<p class="MsoNormal">Second file:</p>
<p class="MsoNormal">FF FE 02 06 66 75 7A 7A</p>
<p class="MsoNormal">Third file:</p>
<p class="MsoNormal">FF FE 03 06 66 75 7A 7A</p>
<p class="MsoNormal">So the “Depth” option just concentrates on one byte location at a time.</p>
<p class="MsoNormal">These options given to us by Sutton are pretty limiting. When I first used this and generated my first case of malformed zip files for fuzzing I used the “All Bytes” function to create files for 0&#215;00 (x 1) which gave me files for 0&#215;00, then I generated files with 0&#215;00 (x2) which gave me 0&#215;0000, then 0&#215;00 (x3) which is 0&#215;000000, and finally (x4) 0&#215;00000000, I did the same for 0xFF, 0&#215;01, 0&#215;80, 0&#215;10, 0&#215;3F, 0X7F and a few others.</p>
<p class="MsoNormal">I had generated a bunch but in the end I had to enter the Byte(s) to Overwrite / flip to (0&#215;00, 0xFF, 0&#215;01, 0&#215;80, 0&#215;10, 0&#215;3F, 0X7F, etc.) and the number of bytes to overwrite (1-4) and for each instance I had to enter the information in FileFuzz manually.</p>
<p class="MsoNormal">Well, luckily it came with the source code. What I did was I modified the “All Bytes” function to go ahead and produce a lot of malformed files for different cases without having to enter in the data in FileFuzz each time.</p>
<p class="MsoNormal">The different cases are the following at the moment:</p>
<p class="MsoNormal">It will generate files using “Bytes to Overwrite” with values of 0&#215;00 and 0xFF and the number of bytes to overwrite from 1-4.</p>
<p class="MsoNormal">I also prepend and append the following values if the number of bytes is &gt;= 2:</p>
<p class="MsoNormal">&#8220;00&#8243;, &#8220;FF&#8221;, &#8220;3F&#8221;, &#8220;7F&#8221;, &#8220;01&#8243;, &#8220;02&#8243;, &#8220;80&#8243;, &#8220;FE&#8221;, &#8220;10&#8243;, &#8220;20&#8243;, &#8220;40&#8243;, &#8220;60&#8243;</p>
<p class="MsoNormal">So, if the “Bytes to Overwrite” is 0&#215;00 and the number of bytes is 1 then it will simply overwrite each byte at a time with 0&#215;00.</p>
<p class="MsoNormal">If the “Bytes to Overwrite” is 0&#215;00 and the number of bytes is 2 then it will create the following values to bit flip each bit location with:</p>
<p class="MsoNormal">0&#215;0000</p>
<p class="MsoNormal">0xFF00</p>
<p class="MsoNormal">0&#215;3F00</p>
<p class="MsoNormal">0&#215;7F00</p>
<p class="MsoNormal">0&#215;0100</p>
<p class="MsoNormal">0&#215;0200</p>
<p class="MsoNormal">0&#215;8000</p>
<p class="MsoNormal">0xFE00</p>
<p class="MsoNormal">0&#215;1000</p>
<p class="MsoNormal">0&#215;2000</p>
<p class="MsoNormal">0&#215;4000</p>
<p class="MsoNormal">0&#215;6000</p>
<p class="MsoNormal">0&#215;00FF</p>
<p class="MsoNormal">0&#215;003F</p>
<p class="MsoNormal">0&#215;007F</p>
<p class="MsoNormal">0&#215;0001</p>
<p class="MsoNormal">0&#215;0002</p>
<p class="MsoNormal">0&#215;0080</p>
<p class="MsoNormal">0&#215;00FE</p>
<p class="MsoNormal">0&#215;0010</p>
<p class="MsoNormal">0&#215;0020</p>
<p class="MsoNormal">0&#215;0040</p>
<p class="MsoNormal">0&#215;0060</p>
<p class="MsoNormal">Then for good measure I if the number of bytes to overwrite is &gt;= 2 then I also prepend the values with 7F and append the value with FE. In which case I’d also generate files with bits that flip to</p>
<p class="MsoNormal">0&#215;7FFE</p>
<p class="MsoNormal">0&#215;7FFFFE</p>
<p class="MsoNormal">0&#215;7FFFFFFE</p>
<p class="MsoNormal">In the end, it’s a lot of test cases – which brings me to my next thought: creating the base test file which FileFuzz will use to do the mutations against.</p>
<p class="MsoNormal">So, at first I thought it was important to use a very simple test file (for example in my zip test base file I zipped up one text file in a directory that had like 4 bytes written in it). The goal was to keep the file simple and small – because brute force fuzzing (bit flipping) is inefficient. We want to focus on the file headers not the data itself. For example, if I was fuzzing a JPEG I’d want to create a JPEG image with like a 1 x 1 white pixel.</p>
<p class="MsoNormal">My base test zip file is 248 bytes, which by my modified FileFuzz I got back 36207 different files to fuzz.</p>
<p class="MsoNormal">If we used a meduim or large (any format type) file the amount of files we&#8217;d generate would be way too much to realistically try and fuzz &#8211; it would generate way too many test cases, and most of them would be useless because we&#8217;d be fuzzing mostly the data in the file, not the headers (the stuff we generally really care about).</p>
<p class="MsoNormal">Which makes total sense. However, there are some files (like, say randomly downloaded from the Internet) that have more and/or wacky extraneous stuff in the headers that seem to trip up programs much better than just some simple vanilla test file that you create yourself.</p>
<p class="MsoNormal">For instance, I&#8217;ve fuzzed programs with pdf files using a base test case with the same data content (the word &#8220;test&#8221; in the pdf file, highlighted, bolded, red in color, etc.) from a pdf generated from a Microsoft Word plugin and a pdf generated from a different program. One made Adobe reader crash and the other one didn&#8217;t.</p>
<p class="MsoNormal">So I modified another version of FileFuzz: one that  has a modified Range of bytes functionality. The modifications I did to the previous version only pertained to the All bytes functionality. Now with this newer version we can modify a range of bytes in the file. This way we can concentrate on just fuzzing interesting ranges of a larger file (like the file headers).</p>
<p class="MsoNormal">Also &#8211; there was a bug in FileFuzz that I had to fix. It kept crapping out on me when generating certain files (generally larger ones over a certain size) and I tracked the problem down to line 78 in Read.cs:</p>
<p>while (brSourceFile.PeekChar() != -1)</p>
<p>has to be changed to this:</p>
<p>while (brSourceFile.BaseStream.Position != brSourceFile.BaseStream.Length)</p>
<p>So this thing is semi-interesting too.</p>
<p>So, just for the background info here’s brSourceFile being declared:</p>
<p>private BinaryReader brSourceFile;</p>
<p>instantiated like this:</p>
<p>brSourceFile = new BinaryReader(File.Open(sourceFile, FileMode.Open));</p>
<p>Then later in the code we get the while loop to read the data from our test file:</p>
<p>while (brSourceFile.PeekChar() != -1){</p>
<p>//readfile…</p>
<p>}</p>
<p>Turns out the problem is in PeekChar(). This method tries to peek at a char (with UTF8 encoding as default) and can get into an error state if it sees a byte that it can’t understand.</p>
<p>I guess Microsoft is “actively looking to obsolete BinaryReader.PeekChar in a future release since it has some design issues.”</p>
<p>Heh – I guess PeekChar() is a method in the BinaryReader class that can only handle chars (not binary as the class name suggests)</p>
<p class="MsoNormal">Anyways, if anyone comes up with more interesting datasets to use for brute-force fuzzing or any other thoughts on how I might improve my modified version of FileFuzz let me know&#8230;</p>
<p class="MsoNormal">Cheers,</p>
<p class="MsoNormal">Chuck B.</p>
]]></content:encoded>
			<wfw:commentRss>http://anautonomouszone.com/blog/archives/14/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>File Fuzzing &#8211; Part 1</title>
		<link>http://anautonomouszone.com/blog/archives/13</link>
		<comments>http://anautonomouszone.com/blog/archives/13#comments</comments>
		<pubDate>Sun, 06 Jul 2008 15:09:38 +0000</pubDate>
		<dc:creator>Chuck B.</dc:creator>
				<category><![CDATA[Fuzzing]]></category>

		<guid isPermaLink="false">http://anautonomouszone.com/blog/?p=13</guid>
		<description><![CDATA[So I’ve been wanting to play with some fuzzers for a bit and get some fuzzers going on some boxes that I have laying around (they might as well be doing something – right?).
After reading “Fuzzing – Brute Force Vulnerability Discovery” http://www.amazon.com/Fuzzing-Brute-Force-Vulnerability-Discovery/dp/0321446119 (which I highly recommend if you want to get into fuzzing anything) I [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">So I’ve been wanting to play with some fuzzers for a bit and get some fuzzers going on some boxes that I have laying around (they might as well be doing something – right?).</p>
<p class="MsoNormal">After reading “Fuzzing – Brute Force Vulnerability Discovery” <a href="http://www.amazon.com/Fuzzing-Brute-Force-Vulnerability-Discovery/dp/0321446119">http://www.amazon.com/Fuzzing-Brute-Force-Vulnerability-Discovery/dp/0321446119</a> (which I highly recommend if you want to get into fuzzing anything) I think I have a little bit clearer idea (at least a start) on what it is I want to fuzz and how to go about it a bit.</p>
<p class="MsoNormal">I decided that on my spare time I’ll play with fuzzing file formats / media files. I chose file formats for a few different reasons – the ones that come to the top of my head are:</p>
<ul>
<li><!--[if !supportLists]-->I wanted to play with / discover some client side vulns. I used to think that there was a big push discovering client side bugs recently (I guess mostly starting last year with all of the office and browser exploits) because there was simply less low-hanging server side vulns to be discovered. Since most systems have firewalls and extraneous services turned off there is less attack area – which means less chance to find remote (and not reliant on a dumb user) bugs. However, I think there is something that client side bugs can offer that remote exploits can’t – chiefly a targeted attack to a system inside an organization in one hit. If I was going to attack a corporation for data / internal access I’d totally start with some client side exploit to compromise a system that’s already inside of the internal network and install a rootkit. Do that to an HR, IT or similar department or a C-level guy and game over.</li>
</ul>
<ul>
<li><!--[if !supportLists]-->There are many different applications that open the same type of file. For example, consider a zip file – there’s a ton of applications that open a zip file. On my box I generally have winrar, winzip and 7-zip and the default windows unzipper. They all do the same thing – so we can use one test case (a malformed or malicious zip file) and test it against a ton of applications. I think this way we have an easier chance to find some bugs, if one application is not vulnerable to the malicious zip file maybe another one is.</li>
</ul>
<ul>
<li><!--[if !supportLists]--><!--[endif]-->A lot of file formats are OS independent. Going back to the point above – we can generate one malformed test case and test it against numerous OS’s. If we had a .rar file we could test it against all the windows apps that take .rar files along with, let’s say linux apps (like unrar) and even antivirus scanners.</li>
</ul>
<p>Anyways, the main reason I think I’m choosing file formats is more bang for my buck. As long as I can generate a large number of effective test cases I’m bound to find a vuln. if I test it against a ton of applications</p>
<p class="MsoNormal">Generally the method is going to be the following (from &#8220;Fuzzing – Brute Force Vulnerability Discovery&#8221;):</p>
<ol>
<li><!--[if !supportLists]--><span><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: "> </span></span></span>Prepare a test case (malformed file).</li>
<li><!--[endif]-->Launch the target application and load the test case file.</li>
<li><span><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: "> </span></span></span><!--[endif]-->Monitor the target application for faults, typically with a debugger.</li>
<li><!--[if !supportLists]-->In the event a fault is discovered, log the finding. Alternatively, if after some period of time no fault is uncovered, manually kill the target application.</li>
<li><!--[if !supportLists]--><!--[endif]-->Repeat.</li>
</ol>
<p class="MsoNormal">So at this moment I’m kind of leaning toward starting my testing on windows apps / platform (although not exclusively). One of the main reasons I am picking windows to start with is simply the large user base and impact of a finding. Plus, I just feel a bit more comfortable writing exploits on newer windows platforms vs. newer varied unix ones. Considering the point of fuzzing is to find vulnerabilities using low effort and getting a high payoff – I’m (at least for the moment) thinking the same of exploits. With unix exploits there is generally more factors when considering writing an exploit that will work on a ton of boxes (kernel version, compilation flags, aslr, etc.).</p>
<p class="MsoNormal">Before I go into the tools I’m thinking of using I should go into some specifics really quick. Generally there is two types of file format fuzzing:</p>
<ul>
<li><span style="font-family: Symbol;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: "> </span></span></span>Brute force or mutation-based fuzzing: This is where we get some sample files of the file type and the fuzzer generator creates mutations of them. For example it could replace data byte for byte. An example would be replacing every byte (or multiple bytes) with 0xff. You can also insert data into the file as opposed to just overwriting bytes. This is useful when testing string values. However, when inserting data into the file, we have to be aware that we might be upsetting the offsets within the file. This can severely disrupt code coverage as some parsers will quickly detect an invalid file and exit. There’s also things like checksums that can foil brute force fuzzers. Generally it’s a simple method but can be really inefficient (Although this method has been used to find high profile bugs in apps like office). An example of these types of fuzzers are FileFuzz and ufuz3.</li>
</ul>
<ul>
<li><!--[if !supportLists]--><!--[endif]-->Intelligent Brute Force or generation-based fuzzing: With intelligent brute force fuzzing we actually have to research the file specification. An intelligent fuzzing engine is still brute force attacking, but it relies on configuration files from the user, making the process more intelligent. Think of templates that the fuzzing engine will use that has a list of data structures, positions relative to each other, and possible values. An example of this kind of fuzzer is SPIKEfile.</li>
</ul>
<p class="MsoNormal">Besides the importance of the fuzzing generator (for heuristics) we can’t forget the importance of an automated way to load test cases in an application and monitor them for faults. What good is shoving 10,000 malicious test cases or files at an app and it crashes 4 times – if we don’t know the specifics of when/where/how it crashed? In the end the better the details we have for how the application crashed and what exactly made it crash, the easier it will be to develop an exploit for it (if it’s an exploitable bug).</p>
<p class="MsoNormal">So almost of equal importance to a fuzzing generator is some sort of framework for automating and monitoring the actual fuzzing.</p>
<p class="MsoNormal">I’m thinking that I’m going to start off with using FileFuzz from iDefense. It’s ok for what it does I guess – which is generally brute forcing file formats. It has a pretty limited functionality for a fuzzing engine – but it does have a easy-to-get-started automation and debugging/monitoring engine. Right now I’m thinking of using some other intelligent fuzzing generator to generate a shit-ton of test file cases then kick off FileFuzz to automate the loading/monitoring of the application. The drawback of FileFuzz is that the generation engine sucks and it’s not capable of muti-threading the apps that it’s testing (at least it come with the source so we can change that later if it turns out that it works well).</p>
<p class="MsoNormal">The other things I’m currently in the process of trying to figure out are exactly what fuzzing engine I want to use to generate test files and what file format to start on.</p>
<p class="MsoNormal">If anyone is interested in getting in on this buy the book and shoot me an email (anautonomouszone [at] gmail [dot] com). I’d really like to get more people on this stuff to bounce ideas off of each other.</p>
<p class="MsoNormal">Cheers,</p>
<p>Chuck B.</p>
]]></content:encoded>
			<wfw:commentRss>http://anautonomouszone.com/blog/archives/13/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

