<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Don&#039;t Stuff Beans Up Your Nose</title>
	<atom:link href="http://dontstuffbeansupyournose.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dontstuffbeansupyournose.com</link>
	<description>Nerdy things...</description>
	<lastBuildDate>Sun, 29 Jan 2012 20:27:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dontstuffbeansupyournose.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/0284587ef11f8a5ac8a39d90e2fbdf75?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Don&#039;t Stuff Beans Up Your Nose</title>
		<link>http://dontstuffbeansupyournose.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dontstuffbeansupyournose.com/osd.xml" title="Don&#039;t Stuff Beans Up Your Nose" />
	<atom:link rel='hub' href='http://dontstuffbeansupyournose.com/?pushpress=hub'/>
		<item>
		<title>Practical ARM Exploitation: A New Training</title>
		<link>http://dontstuffbeansupyournose.com/2012/01/12/practical-arm-exploitation-a-new-training/</link>
		<comments>http://dontstuffbeansupyournose.com/2012/01/12/practical-arm-exploitation-a-new-training/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 06:23:14 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Cons & Events]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[exploit dev]]></category>
		<category><![CDATA[goings on]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=520</guid>
		<description><![CDATA[So&#8230;.we heard Dino &#38; Alex and Aaron &#38; Zef were doing some blingin new trainings. So we felt we had to keep up with the rest of the New York Krew and do one&#8230;.Ok, not really. We (the two Stephens) have spent a bunch of head-down time recently doing embedded research (as we mentioned in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=520&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="https://docs.google.com/viewer?url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F2595211%2FLab_Manual_preview.pdf"><img class="alignright  wp-image-540" style="border-color:black;border-style:solid;border-width:1px;margin:5px;" title="Lab_Manual_Cover_Page" src="http://dontstuffbeansupyournose.files.wordpress.com/2012/01/lab_manual_cover_page1.png?w=230&#038;h=300" alt="" width="230" height="300" /></a>So&#8230;.we heard <a href="http://trailofbits.com/2011/11/29/pwn2own-pre-game/" target="_blank">Dino &amp; Alex and Aaron &amp; Zef </a>were doing some blingin new trainings. So we felt we had to keep up with the rest of the <a href="https://lh5.googleusercontent.com/-X1YmCHycSiY/S3Gn5_FxQQI/AAAAAAAAT9o/LH_cV6WLmHI/s0-d/%2540drraid%252C%2B%2540dguido%252C%2B%2540dinodaizovi%252C%2B%2540katiecouric%252C%2B%2540adamcecc%252C%2B%2540sa7ori%252C%2B%2540alexsotirov%252C%2Band%2BErik%2Bon%2Ba%2Btrain.%2B%2BOne%2Bof%2Bthese%2Bis%2Bnot%2Blike%2Bthe%2Bothers...jpeg" target="_blank">New York Krew</a> and do one&#8230;.Ok, not really.</p>
<p>We (<a href="http://dontstuffbeansupyournose.com/about-2/" target="_blank">the two Stephens</a>) have spent a bunch of head-down time recently doing embedded research (<a href="http://dontstuffbeansupyournose.com/2011/11/28/recon-2011/" target="_blank">as we mentioned in the last post)</a>. In fact, in our <a href="http://dontstuffbeansupyournose.com/2011/08/25/hardware-hacking-for-software-people/" target="_blank">&#8220;Hardware  Hacking For Software People&#8221;</a> talk, we ended with a demo of a neat crash/bug found in a VERY popular cable modem. &#8220;But what about exploitation of that bug?&#8221;. This is the question we kept getting. Well, we honestly hadn&#8217;t done much of  that at the time last year. But that has all changed, and we&#8217;ve collected all of our notes on embedded exploitation (specifically on the <a href="http://en.wikipedia.org/wiki/ARM_architecture" target="_blank">ARM architecture</a>), added some additional research and developed a course! We are proud to announce the public release the course  we&#8217;ve developed entitled &#8220;Practical ARM Exploitation&#8221;.</p>
<p><span style="text-decoration:underline;"><strong>A New Course:</strong></span></p>
<p>The purpose of the course is to introduce students with prior basic exploitation experience (on other architectures) to &#8220;real world&#8221; exploitation scenarios on the <a href="http://en.wikipedia.org/wiki/ARM_architecture" target="_blank">ARM processor architecture</a>. The reality is that exploitation these days is harder and a bit more nuanced than it was in the past with the advent of protection mechanisms like XN, ASLR, stack cookies, etc. As such, this course is called &#8220;practical&#8221; because it aims to teach exploitation on ARM under the real-world circumstances (with all these protection mechanisms) that the exploit developer will encounter and have to circumvent. The course materials focus on advanced exploitation topics using Linux as the target platform running on the ARM architecture. The goal here is to use Linux as a platform for circumventing &#8220;advanced protections&#8221; while also teaching about the ARM architecture itself,  although there is obvious application for these techniques against platforms running on mobile phones, tablets, net-books, embedded devices, etc.</p>
<p>Our hope is that students with some previous exploitation experience go from knowing nothing about ARM on the ﬁrst day to exploiting custom heap implementation (bypassing ASLR, NX) using their hand-built ROP connect-back-shell payload on the the last day.<br />
The course contains the following:</p>
<ul>
<li>650+ slides across 12 decks</li>
<li>17 lab exercises (ranging from code auditing and simple stack overﬂows to advanced heap exploitation and application speciﬁc exploitation)</li>
<li>some &#8220;CTF style&#8221; exploitation challenges</li>
<li>80+ page printed/bound/laminated lab manual with comprehensive notes including: architecture quick reference, ARM GDB and IDA &#8216;gotchas&#8217;, et al</li>
<li>&#8230;and maybe some exploitation exercises running on <a href="http://en.wikipedia.org/wiki/Raspberry_Pi" target="_blank">real ARM hardware</a> (instead of in QEmu which is where we do everything for the course)</li>
</ul>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2012/01/classmaterials_21.jpg" target="_blank"><img class="alignright size-medium wp-image-535" style="border-color:black;border-style:solid;border-width:1px;margin:5px;" title="classmaterials_2" src="http://dontstuffbeansupyournose.files.wordpress.com/2012/01/classmaterials_21.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a>We are proud to also announce that we will be publicly<a href="http://cansecwest.com/dojos/2012/arm_exploit.html" target="_blank"> debuting the course at CanSecWest</a> in Vancouver in March of 2012. This thang was a lotta work so we are really excited to be giving this course and we look forward to meeting and talking with folks who are also interested in this stuff.</p>
<p>As a teaser for the course, we&#8217;ve cut out the &#8220;Cliff&#8217;s Notes&#8221; reference section from our much larger Lab Manual and are <a href="http://docs.google.com/viewer?url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F2595211%2FLab_Manual_Preview.pdf" target="_blank">giving it away as a free piece of reference material </a>(for that directory you keep full of notes, slides, and presentations <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Enjoy.</p>
<p>If you want to learn a bit more about the layout of the course, you can read our <a href="http://docs.google.com/viewer?url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F2595211%2FSyllabus_And_StudentProfile.pdf" target="_blank">Syllabus</a> which has a brief description of every Lab exercise and Slide deck. If you are curious about if you are right for the course the <a href="http://docs.google.com/viewer?url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F2595211%2FSyllabus_And_StudentProfile.pdf" target="_blank">Syllabus</a> also includes a short blurb about prerequisite skills and what you should bring if you decide to take it.</p>
<p>Anyway, thats it, we&#8217;re really excited and look forward to seeing you there! Feel free to post any questions about the course as comments below.</p>
<p style="text-align:center;"><a href="http://docs.google.com/viewer?url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F2595211%2FSyllabus_And_StudentProfile.pdf" target="_blank">Syllabus, &#8220;Who Should Take This Course&#8221; and &#8220;What to bring if you do&#8221;</a></p>
<p style="text-align:center;">Free Give Away!: <a href="http://docs.google.com/viewer?url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F2595211%2FLab_Manual_Preview.pdf" target="_blank">Lab Manual Sample: ARM Architecture Reference</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/520/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=520&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2012/01/12/practical-arm-exploitation-a-new-training/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2012/01/classmaterials_4.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2012/01/classmaterials_4.jpg?w=150" medium="image">
			<media:title type="html">classmaterials_4</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2012/01/lab_manual_cover_page1.png?w=230" medium="image">
			<media:title type="html">Lab_Manual_Cover_Page</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2012/01/classmaterials_21.jpg?w=300" medium="image">
			<media:title type="html">classmaterials_2</media:title>
		</media:content>
	</item>
		<item>
		<title>Recon 2011 (a late retrospective)</title>
		<link>http://dontstuffbeansupyournose.com/2011/11/28/recon-2011/</link>
		<comments>http://dontstuffbeansupyournose.com/2011/11/28/recon-2011/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 20:41:27 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Cons & Events]]></category>
		<category><![CDATA[ReCon]]></category>
		<category><![CDATA[reversing]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=506</guid>
		<description><![CDATA[In July 2011, Beans gave a talk at ReCon in Montreal, CA entitled &#8220;Hardware Hacking for Software People&#8220;. This year ReCon broke away from its more humble conference venue roots, took corporate sponsorship, and upgraded the venue to a MUCH nicer hotel. (After last year&#8217;s debacles, I think Hugo and Dave decided it was just [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=506&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In July 2011, Beans gave a talk at <a href="http://recon.cx/2011/schedule/events/193.en.html" target="_blank">ReCon</a> in Montreal, CA entitled &#8220;<a href="http://dontstuffbeansupyournose.com/2011/08/25/hardware-hacking-for-software-people/" target="_blank">Hardware Hacking for Software People</a>&#8220;. This year ReCon broke away from its more humble conference venue roots, <a href="https://plus.google.com/photos/106134305311113452207/albums/5633167475161410209/5633171903684928722" target="_blank">took corporate sponsorship</a>, and upgraded the venue to a <a href="https://plus.google.com/photos/106134305311113452207/albums/5633167475161410209/5633175706920590274" target="_blank">MUCH nicer hotel</a>. (After<a href="https://plus.google.com/photos/106134305311113452207/albums/5494023088545131889/5494035451004702658" target="_blank"> last year&#8217;s debacles</a>, I think <a href="https://plus.google.com/photos/106134305311113452207/albums/5500335681379636065/5500346308749268658" target="_blank">Hugo</a> and <a href="https://plus.google.com/photos/106134305311113452207/albums/5633167475161410209/5633178169167522322" target="_blank">Dave</a> decided it was just time to bite the bullet.) Anyway, it was a great time. As usual, this conference remains one of our favorites.</p>
<p><strong>Why we&#8217;ve been away:</strong></p>
<p>This post is long overdue. Our apologies. We&#8217;ve been head-down focusing on research (mostly around embedded devices and mobiles) and in the upcoming year plan to debut tools, talks, and comprehensive training on ARM Exploitation.</p>
<p>The materials focus on and teach about advanced exploitation topics (circumventing ASLR, XN, stack cookies, etc.) using Linux as a basis to learn the ARM architecture but with obvious applications for embedded devices and mobiles. Students (with some previous exploitation experience) go from knowing nothing about ARM to exploiting custom heap implementations using their own hand-built ROP connect-back-shell payloads. The course is:</p>
<ul>
<li>600+ slides</li>
<li>17 lab exercises (from simple stack up through advanced heap exploitation and &#8216;application-specific&#8217; exploitation)</li>
<li>3 &#8220;CTF&#8221; style exploitation challenges</li>
<li>80+ page lab manual (comprehensive notes including: architecture quick reference, ARM GDB and IDA &#8216;gotchas&#8217;)</li>
<li>neat ARM-specific exploitation techniques</li>
<li>Many useful tools including a library of 30+ ARM ROP gadgets for use with the exercises (with several lab units focused on techniques for finding and building ROP libraries from scratch for specific targets).</li>
</ul>
<p>All of this from a &#8220;use only what is on the box&#8221; approach. We want people to understand the core concepts so no relying on other people&#8217;s IDA plugins, debugger helpers (like DEPLIB), or anyone else&#8217;s shellcode. You have to do it all and we show you how. We haven&#8217;t seen anything like our materials circulated publicly so we are really really excited to be releasing all of the details in the coming weeks.</p>
<p>Anyway, our ReCon 2o11 talk is embedded below and is also available (along with more detail) in the <a href="http://dontstuffbeansupyournose.com/2011/08/25/hardware-hacking-for-software-people/" target="_blank">&#8220;Hardware Hacking for Software People&#8221;  blogpost.</a> All of the<a href="https://plus.google.com/photos/106134305311113452207/albums/5633167475161410209" target="_blank"> photos from our visit to ReCon 2011 are here</a>. Stay tuned for more on the ARM stuff&#8230;</p>
<p>Cheers.</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/28164302' width='400' height='300' frameborder='0'></iframe></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/506/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=506&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2011/11/28/recon-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/12/recon2011.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/12/recon2011.jpg?w=150" medium="image">
			<media:title type="html">Recon2011</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>
	</item>
		<item>
		<title>Hardware Hacking for Software People</title>
		<link>http://dontstuffbeansupyournose.com/2011/08/25/hardware-hacking-for-software-people/</link>
		<comments>http://dontstuffbeansupyournose.com/2011/08/25/hardware-hacking-for-software-people/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 20:07:52 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[debugging]]></category>
		<category><![CDATA[goings on]]></category>
		<category><![CDATA[ReCon]]></category>
		<category><![CDATA[reversing]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=423</guid>
		<description><![CDATA[For most of my career as a software developer/security researcher I&#8217;ve romanticized &#8216;hardware hacking&#8217;. In my late teens and early twenties as I was learning about software development and software security I would occasionally buy Nuts and Volts from Microcenter and read Karl Lunt&#8216;s Amateur Robotics column. Having devoured William Gibson&#8216;s oeuvre in my late [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=423&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_5848.jpg"><img class="alignleft size-medium wp-image-446" style="border-color:black;border-style:solid;border-width:1px;margin:5px;" title="IMG_5848" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_5848.jpg?w=300&#038;h=200" alt="" width="300" height="200" /></a>For most of my career as a software developer/security researcher I&#8217;ve romanticized &#8216;hardware hacking&#8217;. In my late teens and early twenties as I was learning about software development and software security I would occasionally buy <a href="http://www.nutsvolts.com/" target="_blank">Nuts and Volts</a> from <a href="http://www.microcenter.com/at_the_stores/fairfax.html" target="_blank">Microcenter</a> and read <a href="http://www.nutsvolts.com/index.php?/magazine/contributor/karl_lunt" target="_blank">Karl Lunt</a>&#8216;s Amateur Robotics column. Having devoured <a href="http://en.wikipedia.org/wiki/William_Gibson" target="_blank">William Gibson</a>&#8216;s oeuvre in my late teens, I fantasized about cutting my teeth on PIC Assembly and amateur robotics until I eventually ascended to a mage-like proficiency: effortlessly whipping up software AND hardware exploits for any technology that dared stand in my way&#8230;like a real-life <a href="http://en.wikipedia.org/wiki/Shadowrun" target="_blank">Shadowrun</a> <a href="http://shadowrun.wikia.com/wiki/Decker" target="_blank">Decker</a>&#8230;</p>
<p>Then I grew up.</p>
<p>None of that ever happened &#8230;the closest I&#8217;ve come to any of this fantasy is attending/speaking at  &#8221;hacker&#8221; conferences, finding a bunch of bugs, and writing mostly lame software and exploits. I did all of that amidst the hyper-focused software quality assurance that ostentatiously calls itself &#8220;computer security research&#8221;.</p>
<p><img class="size-medium wp-image-447 alignright" style="border-color:black;border-style:solid;border-width:1px;margin:3px;" title="IMG_5834" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_5834.jpg?w=199&#038;h=300" alt="" width="199" height="300" /></p>
<p>But still, the dream lingered like a dusty raisin swept underneath the refrigerator in some derelict apartment. I would occasionally read about stuff like elaborate <a href="http://krebsonsecurity.com/2010/01/would-you-have-spotted-the-fraud/" target="_blank">custom atm skimmer hardware</a>, <a href="http://www.flickr.com/photos/micahdowty/sets/72157621023570420/" target="_blank">Nintendo DSi hacking</a>, <a href="http://www.engadget.com/2010/03/11/idongle-hardware-iphone-jailbreak-tool-makes-hacker-life-a-littl/" target="_blank">iPhone</a><a href="http://www.engadget.com/2010/03/11/idongle-hardware-iphone-jailbreak-tool-makes-hacker-life-a-littl/" target="_blank">hardware jailbreaks</a>, <a href="https://docs.google.com/viewer?a=v&amp;q=cache:0ZPk1MlJTYIJ:www.autosec.org/pubs/cars-oakland2010.pdf+Experimental+Security+Analysis+of+a+Modern+Automobile&amp;hl=en&amp;pid=bl&amp;srcid=ADGEESjN8yEDbH5S1dDWWsesXgNncCnH98zgJ89NlY0-eze00dJAw9ZYfxa3JQ97JuaWDIOlYROLOqyf9oGUtQjFNOgLWqPXg-xydu5-2tdcFQba_lS3d7GD4v3CG66M2eJJAv8doWoj&amp;sig=AHIEtbSdhrJ7lzvQQdjY8JoHR77ErCv09g" target="_blank">automobile computer hacks</a>, <a href="http://www.forbes.com/2009/04/29/smart-grid-legislation-technology-security-smart-grid.html" target="_blank">smart-meter fiascos</a> or see <a href="http://docs.google.com/viewer?a=v&amp;q=cache:tc9Kpqta3UYJ:cansecwest.com/csw07/csw07-jack.pdf+exploiting+embedded+systems&amp;hl=en&amp;pid=bl&amp;srcid=ADGEESgo-tNzjs6Hz_meted5Ni_V7FfIcXmI6nQidQcbE_5viPxWDop8zmrrCZWAin1RkzHcp9PciUUWL46MXnx7IKL_YogQDzSFW9rTI8kqwLjz-NKCjXW1bFgxPtLw3SCgpmiOVuJ-&amp;sig=AHIEtbQ-eLW-oDI_wmxdT5o5hGvmxqi8-A" target="_blank">presentations by Barnaby Jack</a> or <a href="http://travisgoodspeed.blogspot.com/" target="_blank">Travis Goodspeed</a> and my chin would quiver with envy as I fought back tears of regret&#8230;&#8221;Man, I&#8217;d always wanted to do *that* kind of stuff&#8230;&#8221;&#8230;ok not really.</p>
<p>Over the years as I focused on software security professionally, I flirted with &#8220;hardware stuff&#8221; by periodically buying PICs, solderless breadboards, jumpers, and <a href="http://www.parallax.com/tabid/295/Default.aspx" target="_blank">BASIC Stamp development kits</a>. All of this stuff ultimately sat unused on my desks and bookshelves&#8230;</p>
<p>That is until the last few years&#8230;</p>
<p>On a pentest project a few years ago, I was tasked with attacking a network infrastructure that supported a series of wireless sensors. The project was overwhelming because I&#8217;d never done any professional &#8220;results-oriented&#8221; hardware reversing or penetration testing. However, in a few short weeks, armed with Python (<a href="http://pyserial.sourceforge.net/" target="_blank">pyserial</a>), a dilettante&#8217;s google-knowledge of serial taps, two days of soldering parts from <a href="http://www.frys.com/" target="_blank">Fry&#8217;s</a>, and some basic protocol reversing/replication we had some great findings with code injection through a blackbox telemetry sensor into to the infrastructure&#8217;s backend&#8230;..All from a serial cable.<a href="https://picasaweb.google.com/106134305311113452207/RECon2011#slideshow/" target="_blank"><img class="alignleft" style="border-color:black;border-style:solid;border-width:1px;margin:5px;" src="https://lh6.googleusercontent.com/-aEKVdC1zj3Y/Ti0Jjqai6VI/AAAAAAAAljI/C5PnX0N58Gs/s800/IMG_7294.jpg" alt="" width="230" height="154" /></a></p>
<p>This success taught me a lot: mostly that a little bit of knowledge of hardware can go a long way for a software reverse engineer and vulnerability researcher especially now that many of the most interesting targets are implemented on embedded systems.</p>
<p>Over the last few years I&#8217;d collected a number of <a href="http://en.wikipedia.org/wiki/Arduino" target="_blank">Arduino</a> development boards from <a href="http://www.sparkfun.com/" target="_blank">SparkFun</a>. These (like so much other crap I&#8217;ve accumulated over the years) were destined to become re-gifted stocking stuffers&#8230;that is until I started reading one day about the simple serial protocol common in embedded controllers and integrated circuits. Most of these protocols were so simple that they only required two wires (some only requiring one!).</p>
<p>Enter i2c/SPI/2-Wire:</p>
<p>I was surprised to discover not only that there were simple serial data protocols down in those little ICs on circuit boards, but also that they were so ubiquitous. As I began reading more about them, I began finding out that ICs using <a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus" target="_blank">SPI</a> and <a href="http://en.wikipedia.org/wiki/I%C2%B2C" target="_blank">i2C</a> were virtually everywhere like:</p>
<ul>
<li><a href="http://www.sparkfun.com/products/525" target="_blank">EEPROM</a></li>
<li><a href="http://www.analog.com/en/mems-sensors/inertial-sensors/adis16003/products/product.html" target="_blank">Accelerometers</a></li>
<li><a href="http://dangerousprototypes.com/2009/08/19/bus-pirate-wii-nunchuck-quick-guide/" target="_blank">Nintendo Wii Controllers</a></li>
<li><a href="http://www.youtube.com/watch?v=Y2p3Fal-UXI" target="_blank">Medical Equipment</a></li>
<li><a href="http://mcu.emea.fujitsu.com/mcu_product/detail/MB91F479PMC1.htm" target="_blank">Microcontrollers for Home Appliances</a></li>
<li><a href="http://hackaday.com/2011/03/12/nba-hangtime-pinball-display/" target="_blank">Pinball Machines</a></li>
<li><a href="http://hackaday.com/2011/07/23/apple-laptop-batteries-vulnerable-to-firmware-hack/" target="_blank">Notebook Batteries</a></li>
<li>Routers and Cablemodems</li>
<li><a href="http://en.wikipedia.org/wiki/Display_Data_Channel" target="_blank">HDMI and VGA cables</a></li>
</ul>
<p>Of all the above, the ones that piqued my interest most were how EEPROM, HDMI/VGA, and Microcontrollers used this serial protocol. To start, very first thing I wanted to learn was how to tap these busses to begin observing them in &#8220;the wild&#8221;. I needed to perfect my methods for blindly approaching a piece of hardware. I needed to know how to go from knowing nothing about a hardware target to determining of any tappable busses were exposed. The resulting techniques and notes (along with hardware used) turned into a presentation given at <a href="http://summercon.org/presentations.html#hardware" target="_blank">SummerCon</a> (in New York) in the summer of 2011 and <a href="http://recon.cx/2011/schedule/events/193.en.html" target="_blank">ReCon Reverse Engineering Conference</a> 2011 (in Montreal, Canada).</p>
<p><a href="http://dl.dropbox.com/u/2595211/HardwareSniffing.pdf"><img class="alignleft size-medium wp-image-445" title="Slides_cover_page" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/slides_cover_page.png?w=240&#038;h=186" alt="" width="240" height="186" /></a>During this talk I walk you from knowing nothing about exposed pins to investigating them, tapping them and injecting data onto them.  The presentation concludes with a demonstration of how these techniques were applied to finding and later exploiting a bug in a popular cable modem. Along the way I discuss the types of hardware (<a href="http://www.totalphase.com/products/beagle_ism/" target="_blank">Beagle i2c</a>, <a href="http://dangerousprototypes.com/bus-pirate-manual/" target="_blank">BusPirate</a>, <a href="http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove" target="_blank">Arduinos</a>, <a href="http://www.seeedstudio.com/depot/micro-digital-storage-oscilloscopedso-nano-p-512.html" target="_blank">cheap oscilloscopes</a>, etc) used (to do all the above) and I demonstrate how to use them (with diagrams/photos and <a href="http://vimeo.com/album/1632121" target="_blank">video demontrations</a>). There are also some extras thrown in like:</p>
<ul>
<li>building passive ethernet taps from Home Depot parts,</li>
<li>assembling/soldering hardware 9/25 pin serial taps with Radio Shack parts</li>
<li>building VGA &#8220;taps&#8221;</li>
</ul>
<p>Additionally, while developing and practicing these techniques I briefly assisted <a href="http://twitter.com/#!/0xcharlie" target="_blank">Charlie Miller</a> on a project he was privately researching that resulted in<a href="https://www.blackhat.com/html/bh-us-11/bh-us-11-briefings.html#Miller" target="_blank"> his talk at BlackHat 2011</a> on <a href="http://www.forbes.com/sites/andygreenberg/2011/07/22/apple-laptops-vulnerable-to-hack-that-kills-or-corrupts-batteries/" target="_blank">reverse engineering MacBook batteries</a>. My assistance with his project is <a href="http://www.accuvant.com/capability/accuvant-labs/security-research/featured-presentation" target="_blank">noted in his talk and whitepaper</a>.</p>
<p>If you want a more detailed walkthrough please check out the<a href="http://www.archive.org/details/HardwareStuffForSoftwarePeople" target="_blank"> video of the recon talk available here</a> and embedded below. <a href="http://dl.dropbox.com/u/2595211/HardwareSniffing.pdf" target="_blank">Slides are also available here</a>.</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/28164302' width='400' height='300' frameborder='0'></iframe></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/423/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=423&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2011/08/25/hardware-hacking-for-software-people/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_5842.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_5842.jpg?w=150" medium="image">
			<media:title type="html">IMG_5842</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_5848.jpg?w=300" medium="image">
			<media:title type="html">IMG_5848</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_5834.jpg?w=199" medium="image">
			<media:title type="html">IMG_5834</media:title>
		</media:content>

		<media:content url="https://lh6.googleusercontent.com/-aEKVdC1zj3Y/Ti0Jjqai6VI/AAAAAAAAljI/C5PnX0N58Gs/s800/IMG_7294.jpg" medium="image" />

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/slides_cover_page.png?w=300" medium="image">
			<media:title type="html">Slides_cover_page</media:title>
		</media:content>
	</item>
		<item>
		<title>INFILTRATE 2011</title>
		<link>http://dontstuffbeansupyournose.com/2011/07/27/infiltrate-2/</link>
		<comments>http://dontstuffbeansupyournose.com/2011/07/27/infiltrate-2/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 16:41:30 +0000</pubDate>
		<dc:creator>slawlerguy</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cons & Events]]></category>
		<category><![CDATA[exploit dev]]></category>
		<category><![CDATA[goings on]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=407</guid>
		<description><![CDATA[Beans recently (okay, it was MONTHS ago and I had this post pending in review since then) attended the Immunity INFILTRATE Conference in South Beach Miami, as well as the MASTER CLASS HACKING TRAINING.  Unfortunately this Stephen rarely (if ever) takes photos of anything, so you won’t see pictures of Internet superstar hackers here. Instead [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=407&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/07/dsc00138.jpg"><img class="alignright size-medium wp-image-439" title="DSC00138" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/07/dsc00138.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a>Beans recently (okay, it was MONTHS ago and I had this post pending in review since then) attended the Immunity <a title="INFILTRATE" href="https://www.immunityinc.com/infiltrate.shtml">INFILTRATE </a>Conference in South Beach Miami, as well as the <a title="MASTER CLASS HACKER TRAINING" href="https://www.immunityinc.com/infiltrate/training.html">MASTER CLASS HACKING TRAINING</a>.  Unfortunately this Stephen rarely (if ever) takes photos of anything, so you won’t see pictures of Internet superstar hackers here. Instead just a boring list of things we learned.</p>
<p>The conference was held on Saturday and Sunday.  Almost all of Immunity was there, only a few Immuniacs were missing.  Probably the most important part of the conference was that Immunity had an open bar on Saturday night.  As a consequence, Beans actually visited the sandy part of the beach for a few minutes, and met some interesting folks, which would otherwise not have happened.</p>
<p>Another incredibly important part of the conference and the training was that the food was pretty good. I really hate eating bad food at conferences. Outside of the conference, I would highly recommend<a title="David's Cafe" href="http://www.davidscafe.com"> David’s Café</a> on 11<sup>th</sup> Street for awesome home-style Cuban food and <a title="La Sandwhicherie" href="http://www.lasandwicherie.com">La Sandwhicherie</a> for affordable late-night sandwhiches. But otherwise be careful because South Beach can be damned expensive.</p>
<p>Ok now for the less interesting parts…</p>
<p>Halvar mentioned trying to overwrite compiled Javascript bytecode as an alternative to “getting EIP” which was a cool idea.  He also talked about the practical limits of static analysis such as regarding analysis of loops, which is what I’ve learned myself from trying to do automated static analysis.</p>
<p>Immunity gave a talk on how pathetically easy it is to own Android devices. Basically, your phone is always a year or two behind on the current set of WebKit and Linux kernel vulnerabilities. You are aided by the fact that TCMalloc has absolutely no security features in it whatsoever (the subject of another talk), and Android does not support ASLR or NX.  So…you can be 1337 by downloading shit off full disclosure again!</p>
<p>Valasek and Smith detailed how they owned the IIS FTPSVC vulnerability, which pretty much boiled down to overwriting the NextEntryOffset in a free LFH chunk with 0xffff after performing extensive heap grooming to ensure that the next allocated OVERLAPPED structure containing a function pointer would point to within the range of memory pointed to by the NextEntryOffset.  (Thus, when the &#8220;next entry&#8221; is popped off, it would overwrite the function pointer). This can happen basically because the NextEntryOffset is not validated (via a checksum) when entries are popped off the list of free LFH chunks. Of course there is a lot of voodoo that was glossed over (how to &#8220;feng sheu&#8221;, &#8220;massage&#8221;, &#8220;groom&#8221;, &#8220;whatever&#8221; the heap).  Also I don&#8217;t know how reliable it would be &#8220;IRL&#8221; or on multi-core systems, but a decent talk overall.</p>
<p>I was unfortunately really hung over on Sunday and missed Cesar’s and Tarjeh’s talks on Windows stuff. I assume they were good talks.  I also missed Nagy’s talk on Saturday for roughly the same reason, even though the bar hadn’t even opened yet. After being informed that the conference had not actually yet finished, I made my way back in time to see the arcade-hacking presentation by Ron.  Basically he has a USB stick he can use to upload privileged Lua code to certain DDR-like arcade machines to give free credits or “tweak” the dance program to give him an advantage in competition. The entire presentation was hilarious and I mean that in a good way.</p>
<p>The PAX bypass was interesting.  Basically, assume you have an arbitrary memory write privilege in the kernel, and assume you can get an uninitialized stack variable disclosure vulnerability as well. Normally with PAX installed you are S-O-L. So what you do is you fork a child, he does the stack disclosure vuln to leak his kstack address back to you. Then put him into a blocking syscall that will return data back to you via a user buffer (think &#8220;wait&#8221;) and, as a consequence, the syscall will have to write the destination address somewhere on the stack while it&#8217;s waiting. Use your arbitrary write to overwrite that saved destination address with &#8220;anywhere you&#8217;d like to read&#8221; (its just an offset from the known kstack address).  The memcpy back to user is in copy_to_user and is hence protected (mostly) from SEGV type issues. &#8216;NUFF SAID.</p>
<p>This guy from McAfee talked about a fast shellcode detection engine. Basically he played tricks with the LDT to make a heuristic shellcode scanning engine faster. My opinion on shellcode detection is that there&#8217;s always the vector you didn&#8217;t think about (such as perhaps &#8220;not shellcode&#8221;). What&#8217;s more interesting really is just the dumb/clever tricks you can do with LDT entries to safely segment memory accesses even if the face of untrusted code.</p>
<p>The MASTER CLASS was pretty decent, but I think Immunity was over-optimistic in what they could cover in a week.  The first two days were all in ho-hum heap stuff, but if you were unfamiliar with pwning heap vulnerabilities it would’ve been useful I guess. We went over client-side use-after-free vulnerabilities which was interesting, although that could have been a week long class in itself. Also I don’t think the (not-)Chinese IE_PEERS exploit was as much &#8220;pray-after-free&#8221; as Immunity let on. Basically in the in-the-wild IE_PEERS exploit they go in a loop going &#8220;blah.setAttribute(&#8216;s&#8217;, window);&#8221; 10 times. But the refcount on the window object was exactly 9, so that loop does actually perfectly decrement and free the window object, and on the 10th iteration the call to VariantChangeTypeEx actually allocates a new size 0&#215;28 object which perfectly replaces the tearoff that was freed when the refcount hit 0.  So it pretty much works &#8220;perfectly&#8221;.  The only weird part is they rely on the fact that at offset 0x1c of the new object is the value 0x0fxxxxxx instead of a legit function pointer, but that still pretty much can be relied upon to point into your standard 0x0c0c0c0c heapspray. The saddest part of the (not-)Chinese exploit really was that they were doing lazy 0x0c0c0c0c-style heapspray 7 years after it was already lazy and largely unnecessary in decent exploits.  Except what’s sadder is that kind of crap actually works <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>The real highlight of the MASTER CLASS was Sean and Pablo’s talks on using SAT/SMT solvers. Immunity has clearly put a lot of work into making SAT/SMT usable. They provide python bindings so you can manually code constraints in a nice, easy-to-read language like Python (as opposed to this awful pseudo-LISP SMT2 language), and they can obtain and parse the results of the solver and present them back to you in an easy-to-read way.   Their sequence analyzer is also really easy to use. Basically within a day they had us (at least me) writing python scripts to automatically parse x86 machine code to ask questions like “what do I need to put into EAX to make EDX equal to 0&#215;100” or “in this block of horrific checksumming/crypto/hashing code, what are the possible values that EDX could be on output assuming I control ECX”?  They had some dumb tricks (e.g., binary search, avoid inequalities) to make using this stuff more efficient. Instead of spending months worrying about how to do x86-&gt;IR-&gt;SMT translation, or madly scribbling notes on paper, I was just sitting around answering questions about machine code using a SMT solver after a day of instruction.</p>
<p>Kostya lead the kernel part of the class, but again for me it was all old hat. A lot of the mystique of “kernel stuff” is mostly because most people don’t know how to write kernel drivers. If you didn’t know about METHOD_NEITHER or that usermode code is usually mapped into kernelmode space upon vulnerability trigger, it would probably have been more interesting than I found it. However they also had us work on that SMB function pointer vulnerability from a year or two ago which was amusing to try and exploit. I lucked into it by sorting the pointed-to functions by function size and stumbling into the fact that esi gets loaded with the SMB2 packet if you redirect the ValidationRoutine to a function that executes a &#8220;retn 0&#215;10&#8243;.  Subsequently I doodled around in IDA Free looking for interesting code paths until I found a &#8220;write zero&#8221;, &#8220;call arbitrary address&#8221;, and lastly &#8220;increment&#8221;. It seemed like the ideal place to be able to code up some constraints in a SMT solver to figure out how to explore the different potential code paths based on SMB2 packet contents but I didn&#8217;t have time to do that. I may try and revisit this vulnerability and &#8220;do it with SMT&#8221; to see how that compares to trying to figure everything out &#8220;in your head&#8221;.</p>
<p>Also deplib is actually pretty sweet, I’ve never used it and as a publically available tool it’s great. It really does beat manually grepping through machine code using regular expressions.  Apparently 64-bit support is forthcoming and will mostly “just work” with a few tweaks to the Immunity Debugger.</p>
<p>So that’s pretty much it basically. I hope I haven’t left anything out. If you go to INFILTRATE next year (assuming it is next year) make sure to visit David’s Café and get the fried pork chunks.  And talk a walk around Collins Ave to watch 20-year-old kids drive Rolls-Royces and Lamborghinis up and down the street all night long.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/407/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=407&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2011/07/27/infiltrate-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/07/infiltrate-2011-information-security-event.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/07/infiltrate-2011-information-security-event.jpg?w=150" medium="image">
			<media:title type="html">Infiltrate 2011 - Information security Event !</media:title>
		</media:content>

		<media:content url="http://0.gravatar.com/avatar/8aff1eb14a05e03a54e1966efb38a087?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">slawlerguy</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/07/dsc00138.jpg?w=300" medium="image">
			<media:title type="html">DSC00138</media:title>
		</media:content>
	</item>
		<item>
		<title>SMT Solvers Summerschool at MIT</title>
		<link>http://dontstuffbeansupyournose.com/2011/06/20/smt-solvers-summerschool-at-mit/</link>
		<comments>http://dontstuffbeansupyournose.com/2011/06/20/smt-solvers-summerschool-at-mit/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 20:33:30 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[Cons & Events]]></category>
		<category><![CDATA[exploit dev]]></category>
		<category><![CDATA[fuzzing]]></category>
		<category><![CDATA[goings on]]></category>
		<category><![CDATA[reversing]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=480</guid>
		<description><![CDATA[Earlier this summer Beans attended the weeklong SMT Solver Summer school held at MIT campus in Boston, Mass. Over the last few years having seen some of the presentations by Pablo Sole on DEPLIB, blogposts by Sean Heelan, and having messed around a little bit with the REIL in BinNavi we were really curious to get a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=480&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="https://lh3.googleusercontent.com/-81psQ9FiArY/Ti0FepD3lqI/AAAAAAAAlQE/p5Dw_k8ohbU/s800/IMG_6090.jpg" rel="https://lh3.googleusercontent.com/-81psQ9FiArY/Ti0FepD3lqI/AAAAAAAAlQE/p5Dw_k8ohbU/s800/IMG_6090.jpg" target="_blank"><img class="alignleft" style="border-color:black;border-style:solid;border-width:1px;margin:5px;" src="https://lh3.googleusercontent.com/-81psQ9FiArY/Ti0FepD3lqI/AAAAAAAAlQE/p5Dw_k8ohbU/s800/IMG_6090.jpg" alt="" width="259" height="173" /></a>Earlier this summer Beans attended the weeklong SMT Solver Summer school held at MIT campus in Boston, Mass. Over the last few years having seen some of the presentations by <a href="http://docs.google.com/viewer?url=http%3A%2F%2Fivanlef0u.fr%2Frepo%2Fexpl0it%2FDEPLIB20_ekoparty.pdf" target="_blank">Pablo Sole</a> on <a href="http://docs.google.com/viewer?url=http%3A%2F%2Fwww.immunityinc.com%2Fdownloads%2FDEPLIB.pdf" target="_blank">DEPLIB</a>, <a href="http://seanhn.wordpress.com/category/smt-solving/" target="_blank">blogposts by Sean Heelan</a>, and having messed around a little bit with the REIL in <a href="http://www.zynamics.com/binnavi.html" target="_blank">BinNavi</a> we were really curious to get a bigger picture on SMT Solvers. What was the current state of research on this stuff? and how were other industries applying it? Sean Heelan has <a href="http://seanhn.wordpress.com/2011/06/13/satsmt-summer-school-2011-summary/" target="_blank">a great series of blogposts</a> that summarize all the days of presentations so we aren&#8217;t going to parrot any of that. Check out his great blog posts. Additionally, all the presentations, presentation summaries, presenter bios, and even some videos <a href="https://wikis.mit.edu/confluence/display/satsmtschool11/SATSMT+Summer+School+2011" target="_blank">are available on a publicly accessible MIT wiki</a>. The other Steve has also written a bit about his experience at Infiltrate Conference and the SMT Solver/DEPLIB talks that were given there. Pablo Sole&#8217;s <a href="http://vimeo.com/16530270" target="_blank">EkoParty talk on DEPLIB is also available here</a>.</p>
<p>In general (I personally) found the SMT Summerschool to be very academic and high-level. Much of it was over my head. But this was good and bad. It was a good experience because I (perhaps masochistically) like to be exposed to new things especially things that I know nothing about.  The &#8220;bad&#8221; part of all of this was that of what I could comprehend (with the exception of a few presentations)  I found the ideas to be spectacular but completely divorced from any kind of practical implementation.</p>
<p>For example: In the presentation: <a href="https://wikis.mit.edu/confluence/display/satsmtschool11/LiquidTypes" target="_blank">Liquid Types: SMT Solver-based Types</a> the researcher (<a href="http://pho.ucsd.edu/rjhala/" target="_blank">Ranjit Jhala</a>) demonstrated how a simple high-level type system can be used to describe many &#8220;insecure patterns&#8221; in an<a href="http://docs.google.com/viewer?url=https%3A%2F%2Fwikis.mit.edu%2Fconfluence%2Fdownload%2Fattachments%2F75632493%2Fliquid_types_SMT_School.pdf"><img class="alignright size-medium wp-image-492" title="liquid_types" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/09/liquid_types.png?w=300&#038;h=226" alt="" width="300" height="226" /></a> abstract way so that a user needs not fumble with building these constraints by hand. During the first half of his presentation I began to get really excited and when it came closer to time for demonstration of the tools and such, it was partially implemented for use only with OCAML (with C support maybe later)! This to me was such a big let-down, and from the comments and questions of others in the audience, I was not the only one. These kinds of post-presentations discussions were a common theme that demonstrated how divorced academia is from industry. In many of the Q&amp;A sessions small discussions would break out between presenters and audience members on the practicality of implementation. The age old tension between the purity of academia and the &#8220;get it done so it&#8217;s usable&#8221; mentality of industry.</p>
<p>Of all of the presentations most relevant to vulnerability research, these were my favorites because the concepts were the most accessible for me:</p>
<ul>
<li><a href="https://wikis.mit.edu/confluence/display/satsmtschool11/WebBlaze" target="_blank">BitBlaze &amp; WebBlaze: Tools for computer security using SMT Solvers</a></li>
<li><a href="https://wikis.mit.edu/confluence/display/satsmtschool11/Klee" target="_blank">Constraint Solving Challenges in Dynamic Symbolic Execution</a></li>
<li><a href="https://wikis.mit.edu/confluence/display/satsmtschool11/LiquidTypes" target="_blank">Liquid Types: SMT Solver-based Types</a></li>
<li><a href="https://wikis.mit.edu/confluence/display/satsmtschool11/CompilerOptimizationVerification" target="_blank">SMT Solver-based Compiler Optimization Verification</a></li>
<li><a href="https://wikis.mit.edu/confluence/display/satsmtschool11/Sage" target="_blank">SAGE: Automated Whitebox Fuzzing using SMT solvers</a></li>
<li><a href="https://wikis.mit.edu/confluence/display/satsmtschool11/SymbolicExploitGeneration" target="_blank">Symbolic Execution and Automated Exploit Generation</a></li>
</ul>
<p>Of all the talks, the <a href="https://wikis.mit.edu/confluence/display/satsmtschool11/Klee" target="_blank">Constraint Solving Challenges in Dynamic Symbolic Execution</a> was probably the best introduction to the use of SMT Solvers for basic vulnerability research. The researchers leveraged symbolic execution and the <a href="https://sites.google.com/site/stpfastprover/" target="_blank">STP constraint solver</a> to find bugs laying dormant in GNU CoreUtils. Some of these bugs were simple enough to trigger with command-line arguments (<a href="http://docs.google.com/viewer?url=http%3A%2F%2Fwww.doc.ic.ac.uk%2F~cristic%2Ftalks%2Fconstrsolv-in-symex-smtsat-2011.pdf" target="_blank">see slide 36 &#8220;Ten Command Lines of Death&#8221;</a>).</p>
<p>In the end, it was a great experience to have participated in the SMT Summer School. I learned a lot and got interested in new and different applications for SMT Solvers&#8230;but I will probably have to work with them a bit more before I can get more value from another conference like this.</p>
<p><a href="https://picasaweb.google.com/106134305311113452207/MITSMTSolverSummerSchool#slideshow" target="_blank">Also a very short slideshow of some photos taken during the SMT Summer School are here.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/480/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/480/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/480/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/480/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/480/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/480/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/480/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/480/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/480/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/480/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/480/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/480/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/480/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/480/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=480&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2011/06/20/smt-solvers-summerschool-at-mit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/smt_summer_school_nametags.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/smt_summer_school_nametags.jpg?w=150" medium="image">
			<media:title type="html">smt_summer_school_nametags</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="https://lh3.googleusercontent.com/-81psQ9FiArY/Ti0FepD3lqI/AAAAAAAAlQE/p5Dw_k8ohbU/s800/IMG_6090.jpg" medium="image" />

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/09/liquid_types.png?w=300" medium="image">
			<media:title type="html">liquid_types</media:title>
		</media:content>
	</item>
		<item>
		<title>SummerC0n 2011 retrospektiv</title>
		<link>http://dontstuffbeansupyournose.com/2011/06/11/summerc0n/</link>
		<comments>http://dontstuffbeansupyournose.com/2011/06/11/summerc0n/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 17:36:48 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=466</guid>
		<description><![CDATA[This summer Beans had the honor of speaking at SummerC0n in NYC. At SummerCon 2011 we debut&#8217;d a talk on Hardware Reverse Engineering with the help of Rajendra Umadras of Intrepidus Group. (This talk was given later in the summer at Recon 2011). SummerC0n is one of the older (maybe one of the oldest) &#8220;grassroots&#8221; infosec conferences with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=466&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="https://picasaweb.google.com/106134305311113452207/SummerConNYC2011#slideshow" target="_blank"><img class="alignleft" style="border-color:black;border-style:solid;border-width:1px;margin:5px;" src="https://lh3.googleusercontent.com/-le1JqcmvxFE/Ti0GLhmncCI/AAAAAAAAlTc/0AlpidhHvxo/s800/IMG_5906.jpg" alt="" width="259" height="173" /></a>This summer Beans had the honor of <a href="http://summercon.org/presentations.html#hardware" target="_blank">speaking at SummerC0n in NYC</a>. At SummerCon 2011 we debut&#8217;d a talk on <a href="http://dontstuffbeansupyournose.com/2011/08/25/hardware-hacking-for-software-people/" target="_blank">Hardware Reverse Engineering</a> with the help of <a href="http://twitter.com/#!/0xD1AB10" target="_blank">Rajendra Umadras</a> of <a href="http://intrepidusgroup.com/" target="_blank">Intrepidus Group</a>. (This talk was given later in the summer at <a href="http://www.archive.org/details/HardwareStuffForSoftwarePeople" target="_blank">Recon 2011</a>). SummerC0n is one of the older (<a href="http://en.wikipedia.org/wiki/Summercon" target="_blank">maybe one of the oldest</a>) &#8220;grassroots&#8221; infosec conferences with a history of some very smart/infamous speakers. It&#8217;s known for being one of the conferences that didn&#8217;t &#8220;sell out&#8221; having some philosophical ties to <a href="http://en.wikipedia.org/wiki/Antisec_Movement" target="_blank">antisec</a> (it&#8217;s because of this that I guess it has &#8220;street cred&#8221; amongst the newer infosec folks). After deriding us for the usual &#8220;sellout&#8221;/&#8221;whitehat&#8221; reasons, some of our oldskool retired infosec friends were happy to hear that we were participating in SummerC0n but really surprised to see that the conference was now more formal, having corporate sponsorship and such. (<a href="http://en.wikipedia.org/wiki/The_Times_They_Are_a-Changin'" target="_blank">Times they are a changin&#8217;</a> I guess&#8230;maybe because <a href="http://www.youtube.com/watch?v=tzhzU2WUHJ4" target="_blank">its a new world</a>.) But of all the corporate sponsors that could come to SummerCon,  <a href="http://www.accuvant.com/" target="_blank">Accuvant</a>&#8216;s <a href="http://www.prnewswire.com/news-releases/security-researcher-chris-valasek-joins-accuvant-labs-team-99538054.html" target="_blank">Chris Valasek</a> is a pretty great choice. The con remained small and really intimate (reminded me a bit of <a href="http://pumpcon.org/" target="_blank">PumpCon</a>, but with better talks). Held on a small &#8220;gig&#8221;-stage in Brooklyn&#8217;s <a href="http://www.littlefieldnyc.com/" target="_blank">Littlefields</a> Bar, <a href="https://twitter.com/#!/nudehaberdasher" target="_blank">Valasek</a> did a great job of not being overbearing with the sponsorship. He also did a great job of pulling together interesting talks and keeping with some of the <a href="http://www.urbandictionary.com/define.php?term=7%20stages%20of%20drinking" target="_blank">con traditions</a>. At the conference I met some <strong>really</strong> oldschool folks that were more Electrical<a href="https://picasaweb.google.com/106134305311113452207/SummerConNYC2011#slideshow"><img class="alignright" src="https://lh6.googleusercontent.com/-rhlfuXhNsm4/Ti0GHC-oTwI/AAAAAAAAlTE/zRogsXsQI9w/s800/IMG_5905.jpg" alt="" width="269" height="179" /></a> Engineering and Computer Science than Infosec. (I tend to like meeting and working with those people more on &#8220;infosec&#8221; stuff.) Some had driven to NYC from as far as Tennessee and Florida to attend this conference&#8230;.and I guess that says the most about Summercon&#8217;s reputation.  In addition to being a great chance to hang out with cool people, <a href="https://picasaweb.google.com/106134305311113452207/SummerConNYC2011#5633171826752746098" target="_blank">Valasek</a> also hooked speakers up with one of the blinginest speaker gifts we&#8217;ve ever gotten: A bottle of <a href="http://www.domperignon.com/" target="_blank">Don P</a>!</p>
<p>SummerC0n was a great time. We hope to attend the next one&#8230;whenever or wherever it will be.</p>
<p>An annotated slideshow of our visit to <a href="https://picasaweb.google.com/106134305311113452207/SummerConNYC2011#slideshow" target="_blank">Summercon 2011 is available here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/466/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=466&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2011/06/11/summerc0n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_8607.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/08/img_8607.jpg?w=150" medium="image">
			<media:title type="html">IMG_8607</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="https://lh3.googleusercontent.com/-le1JqcmvxFE/Ti0GLhmncCI/AAAAAAAAlTc/0AlpidhHvxo/s800/IMG_5906.jpg" medium="image" />

		<media:content url="https://lh6.googleusercontent.com/-rhlfuXhNsm4/Ti0GHC-oTwI/AAAAAAAAlTE/zRogsXsQI9w/s800/IMG_5905.jpg" medium="image" />
	</item>
		<item>
		<title>Greyhat Ruby (Source Boston)</title>
		<link>http://dontstuffbeansupyournose.com/2011/04/27/greyhat-ruby-source-boston/</link>
		<comments>http://dontstuffbeansupyournose.com/2011/04/27/greyhat-ruby-source-boston/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 23:06:56 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[Cons & Events]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[reversing]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=369</guid>
		<description><![CDATA[In 2011, I (Stephen A. Ridley) don&#8217;t plan on attending too many conferences that require far away travel for many reasons. 1) My work isn&#8217;t as interesting anymore ;-( and 2) I can&#8217;t travel as easily with Sammiches. With Boston being in the northeast (close to us) we decided we&#8217;d try SourceBoston out for the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=369&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In 2011, I (Stephen A. Ridley) don&#8217;t plan on attending too many conferences that require far away travel for many reasons. 1) My work isn&#8217;t as interesting anymore ;-( and 2) I can&#8217;t travel as easily with <a href="http://twitpic.com/47c7zf" target="_blank">Sammiches</a>. With Boston being in the northeast (close to us) we decided we&#8217;d try SourceBoston out for the first time. We&#8217;ve known the <a href="http://twitter.com/#!/dildog" target="_blank">conference</a> <a href="http://twitter.com/#!/stacythayer" target="_blank">organizers</a> from past meetings and conferences, but this is the first time we&#8217;d ever attended any of the Source conferences.</p>
<p><img class="size-medium wp-image-373 alignright" style="border-color:black;border-style:solid;border-width:1px;margin:5px;" title="Sammie_at_Source" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/04/sammie_at_source.jpg?w=207&#038;h=300" alt="" width="207" height="300" /></p>
<p>SourceBoston was held at the (dog friendly <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  <a href="http://www.seaportboston.com/" target="_blank">Boston Seaport Hotel</a>, a surprisingly fancy venue that was on the waterfront and adjacent to <a href="http://maps.google.com/maps/place?hl=en&amp;bav=on.2,or.r_gc.r_pw.&amp;um=1&amp;ie=UTF-8&amp;q=World+Trade+Center+of+boston&amp;fb=1&amp;hq=World+Trade+Center+of&amp;hnear=Boston,+MA&amp;cid=3393079504487538159" target="_blank">The World Trade Center of Boston</a>. Unlike many Infosec conferences we&#8217;ve attended, SourceBoston did a good job of intermingling &#8220;suits&#8221; with &#8220;grunts&#8221;. In other words, the attendees and speakers hailed from many different levels in their organizations (with a healthy sprinkling of academic types mixed in). There was also quality representation from the different niches in the Information Security community (from &#8220;hardware hacking&#8221; to &#8220;management and policy&#8221;). In short, its a cool little conference.</p>
<p><a href="http://www.sourceconference.com/boston/speakers_2011.asp#sridley" target="_blank">My talk at Source Boston 2011</a> was entitled &#8220;GreyHat Ruby&#8221;. The talk was on the many ways that a devout Python coder has come to find Ruby very useful for Information Security work. Here is a bullet list from a section of the presentation entitled &#8220;12 Good Reasons for C/C++/Python coders&#8221; (<a href="http://docs.google.com/viewer?url=http://dl.dropbox.com/u/2595211/GreyhatRuby.pdf" target="_blank">see examples/comparisons/screenshots in the slides!</a>):</p>
<ol>
<li>Ruby has an equally useful Interactive Interpreter.</li>
<li>Ruby has &#8220;real&#8221; case/switch statements</li>
<li>Ruby has C style ternary statements</li>
<li>Ruby has &#8220;public&#8221; and &#8220;private&#8221; namespaces</li>
<li>Ruby (like C++ and Java) let’s you define classes in “piecemeal” (split that class def across files!).</li>
<li>Ruby has a “container” class called &#8220;module&#8221; that act as namespace &#8220;directories&#8221; letting <strong>you</strong> arrange things as you see fit.</li>
<li>Ruby doesn’t automatically make a namespace entry for an “included” file.</li>
<li>Ruby has better &#8220;sprintf&#8221; functionality.</li>
<li>Ruby has strong OOP paradigm and convenient “getter/setter” syntax.</li>
<li>You can modify Ruby Class definitions “on the fly” without cumbersome “get_attr”/”set_attr”.</li>
<li>Ruby is a &#8220;functional&#8221; programming language. It has “blocks” and “anonymous functions” (not kludgy lambdas).</li>
<li>Lots of other neat things like send() and __END__.</li>
</ol>
<p>After that list, I dive into some of the specific things useful for Information Security professionals:</p>
<ol>
<li>Accessing &#8220;foreign&#8221; functions: getting your Ruby code to call into DLLs and shared objects.</li>
<li>Existing pure ruby process debuggers and hit-tracers</li>
<li>Using JRuby to talk to Java RMI services</li>
<li>Ruby and IDA</li>
<li>Build quick user-friendly CLIs (like Python&#8217;s Cmd module).</li>
<li>Plugging Ruby into Burp</li>
<li>Using Ruby&#8217;s Win32OLE/Win32API/RubyDL  to &#8220;script&#8221; mouse clicks and keyboard actions on Windows via User32. (<a href="http://www.youtube.com/user/dontstuffbeansupyour#p/a/u/0/j1Xb5s75pko" target="_blank">demo video here</a>)</li>
<span style="text-align:center; display: block;"><a href="http://dontstuffbeansupyournose.com/2011/04/27/greyhat-ruby-source-boston/"><img src="http://img.youtube.com/vi/j1Xb5s75pko/2.jpg" alt="" /></a></span>
<li>Complete browser automation (Firefox, IE, Safari) allowing you to &#8220;script&#8221; user interaction with the browser. (Web pen-testing, QA, or fuzzing!)</li>
<li>Writing distributed code with Drb and Rinda. (Don&#8217;t bother with socket code. Or, build a distributed fuzz farm!)</li>
<li>Using Ruby to create &#8220;Domain Specific Languages&#8221; for your tasks (like fuzzing <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</li>
</ol>
<h3><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">That&#8217;s it in a nutshell, if you want to see more detail: </span></h3>
<h1><a href="http://docs.google.com/viewer?url=http://dl.dropbox.com/u/2595211/GreyhatRuby.pdf" target="_blank">Check out the slides!</a></h1>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/369/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=369&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2011/04/27/greyhat-ruby-source-boston/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/04/ghr_icon.png?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/04/ghr_icon.png?w=150" medium="image">
			<media:title type="html">ghr_icon</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/04/sammie_at_source.jpg?w=207" medium="image">
			<media:title type="html">Sammie_at_Source</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Spam Looks Like That (Part 1): A Laymen&#8217;s peek into Natural Language Processing, Statistics, and Neural Networks</title>
		<link>http://dontstuffbeansupyournose.com/2011/02/01/why-spam-looks-like-that-part1/</link>
		<comments>http://dontstuffbeansupyournose.com/2011/02/01/why-spam-looks-like-that-part1/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 18:24:58 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=274</guid>
		<description><![CDATA[I had always wondered why spam looked the way it did. Is it written by people in the third world that don&#8217;t really know English? Why does the sentence structure look kinda correct but not quite?  Do people really click the links in blogspam? What is all this hubbub about SEO? In this two part [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=274&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/spam2_2.jpg"><br />
</a>I had always wondered why spam looked the way it did. Is it written by people in the third world that don&#8217;t really know English? Why does the sentence structure look kinda correct but not quite?  Do people really click the links in <a href="http://en.wikipedia.org/wiki/Spam_in_blogs" target="_blank">blogspam</a>? What is all this hubbub about <a href="http://en.wikipedia.org/wiki/Search_engine_optimization" target="_blank">SEO</a>? In this two part blogpost I will share what I&#8217;ve learned as I looked into all these questions and ultimately how I (as a sophomoric hacker-type) was able to use a little math (neural classifiers and natural language processing) to write code that artificially influenced search engine results (namely Google Page rank and keyword relevance). But before I dive into the details about all that SEO crap, a little background&#8230;</p>
<p>In 2003 I read the book &#8220;<a href="http://www.amazon.com/Linked-Everything-Connected-Else-Means/dp/0452284392" target="_blank">Linked: How Everything is Connected to Everything Else and Why It Matters</a>&#8220;. This was one of those books that comes out every few years and<a href="http://www.amazon.com/Linked-Everything-Connected-Else-Means/dp/0452284392" target="_blank"><img class="size-thumbnail wp-image-283 alignright" title="0738206679" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/0738206679.jpg?w=149&#038;h=200" alt="" width="149" height="200" /></a> immediately becomes a bestseller for it&#8217;s ability to make a niche science comprehendible for us laymen. I am a sucker for these kinds of books, favorites being: &#8220;<a href="http://www.amazon.com/Hyperspace-Scientific-Odyssey-Parallel-Universes/dp/0385477058/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1296201537&amp;sr=1-1" target="_blank">Hyperspace</a>&#8220;, &#8220;<a href="http://en.wikipedia.org/wiki/Guns,_Germs,_and_Steel" target="_blank">Guns, Germs, and Steel</a>&#8220;, &#8220;<a href="http://www.amazon.com/Black-Swan-Impact-Highly-Improbable/dp/1400063515" target="_blank">The Black Swan</a>&#8220;, &#8220;<a href="http://www.amazon.com/Blink-Power-Thinking-Without/dp/0316172324" target="_blank">Blink</a>&#8220;, and &#8220;<a href="http://en.wikipedia.org/wiki/Freakonomics" target="_blank">Freakonomics</a>&#8220;. But &#8220;<a href="http://www.amazon.com/Linked-Everything-Connected-Else-Means/dp/0452284392" target="_blank">Linked</a>&#8221; remains one of my all time favorites because it taught me a bit about the science of networks just as terms like &#8220;social network&#8221; and &#8220;<a href="http://en.wikipedia.org/wiki/Meme" target="_blank">internet meme</a>&#8221; were entering the vernacular.  Before this, I&#8217;d never really though about these concepts beyond road-trip games of of &#8220;<a href="http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon" target="_blank">Six Degrees of Kevin Bacon</a>&#8220;. This book also led me to other books that would become favorites like: &#8220;<a href="http://www.amazon.com/Turtles-Termites-Traffic-Jams-Explorations/dp/0262680939" target="_blank">Turtles, Termites, and Traffic Jams</a>&#8221; and strangely &#8220;<a href="http://en.wikipedia.org/wiki/The_Hero_with_a_Thousand_Faces" target="_blank">The Hero With A Thousand Faces</a>&#8220;. While the subjects differ, the themes remain the same: finding common unifying threads in seemingly disparate pieces of information.</p>
<p>Shortly after reading this book, I stumbled upon an article about a &#8220;Matrix-style&#8221; <a href="http://cordis.europa.eu/esprit/src/28193.htm" target="_blank">brain interface device</a> created by a team from a university in Italy that was being demo&#8217;d at <a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/bci_abi.jpg"><img class="size-medium wp-image-284 alignright" title="bci_abi" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/bci_abi.jpg?w=300&#038;h=300" alt="" width="300" height="300" /></a>Neuroscience conferences. The device was supposedly revolutionary because it was non-invasive and adaptive. I was called &#8220;non-invasive&#8221; because it used only an Electro-Encepalagraph (aka <a href="http://en.wikipedia.org/wiki/Electroencephalography" target="_blank">EEG</a> which is worn on the head) and &#8220;adaptive&#8221; because the device supposedly worked on virtually everyone. At the conferences, the demonstration of the device was essentially a booth, open to anyone willing to try it. Because every brain is different and produces different signals, a short 15 minute &#8220;training session&#8221; was needed for the device to adapt itself to the new user. During those 15 minutes the ABI device would hone in on the specific electro-encephalograph signals produced by parts of the brain responsible for motor control. After those fifteen minutes, when the user merely thought about moving their left hand, a mouse cursor would move left. When they thought about moving their right hand, the cursor would move right.</p>
<p>This <strong>blew</strong> my mind, not only because of the crazy<a href="http://www.imdb.com/title/tt0104692/" target="_blank"> Lawnmower Man</a> powers it might give me or the potential of the device (in all it&#8217;s <a href="http://en.wikipedia.org/wiki/Neuromancer" target="_blank">Neuromancer</a>-esque <a href="http://en.wikipedia.org/wiki/Cyberpunk" target="_blank">cyberpunkish</a> glory) to be a <a href="http://www.youtube.com/watch?v=eBWv3XmGnGs" target="_blank">boon for paraplegics</a> but because it implied that there was some fascinating signal processing going on inside the device. Something inside that thing was able to do the <a href="http://en.wikipedia.org/wiki/Data_mining" target="_blank">data mining</a> necessary to find those needles in the proverbial haystack of brain noise.<br />
<span style="text-align:center; display: block;"><a href="http://dontstuffbeansupyournose.com/2011/02/01/why-spam-looks-like-that-part1/"><img src="http://img.youtube.com/vi/yIpNZ2Eo2CA/2.jpg" alt="" /></a></span>I wanted to know what it was and how it worked, so I tried to consume the <a href="http://infoscience.epfl.ch/record/150447/files/ieee_tnn_print.pdf?version=1" target="_blank">few research papers produced by the ESPRIT ABI team</a>.  As a full scholarship-third year Physics dropout this was very ambitious for me (thats right ladies, I&#8217;m a quitter, take a number!). After a few hours googling every odd word in the research paper and instant messaging all the smart people in my buddy list, I had a general idea of how the Adaptive Brain Interface worked.</p>
<p>The device essentially worked like this:</p>
<p>After running the EEG signals through a lot of signal filters and transformations (things with fancy names like <a href="http://en.wikipedia.org/wiki/Fast_Fourier_transform" target="_blank">Fast-Fourier Transforms</a> and <a href="http://en.wikipedia.org/wiki/Butterworth_filter" target="_blank">Butterworth Filters</a>) the system shat out massive matrices of information. All this data was ultimately passed into a &#8216;<a href="http://iopscience.iop.org/0967-3334/29/3/N01" target="_blank">neural classifier</a>&#8216; that was itself largely based upon a single simple classification algorithm that I learned was called Mahalanobis Distance Statistic.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/11322391090750385.png"><img class="aligncenter size-full wp-image-301" title="11322391090750385" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/11322391090750385.png?w=594" alt=""   /></a></p>
<p>If you are thinking: &#8220;<em>That equation looks like Greek!</em>&#8221; (which is <a href="http://en.wikipedia.org/wiki/Sigma" target="_blank">kinda is </a> <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  and &#8220;<em>What the hell is a &#8216;<a href="http://en.wikipedia.org/wiki/Statistical_classification" target="_blank">neural classifier</a>&#8216;?</em>&#8221; Then you and I aren&#8217;t too dissimilar, &#8216;cuz that exactly what I first thought.</p>
<p>Firstly, it is important to note that just because the ESPRIT ABI is a neurological interface the &#8216;neural&#8217; in the phrase &#8216;neural classifier&#8217; is just a coincidence. The neural <a href="http://en.wikipedia.org/wiki/Ant_colony_optimization"><img class="alignright" src="http://upload.wikimedia.org/wikipedia/commons/a/af/Aco_branches.svg" alt="" width="315" height="235" /></a>classifier has nothing to do with the fact that this is a neurological device. Don&#8217;t let it confuse you, the way it did me. The neural classifier is merely an algorithm that makes use of basic neural network concepts to optimize the task of separating data into classes. The neural network is the &#8220;decision engine&#8221; that decides if a piece of data is an apple or an orange. In the case of the ESPRIT Adaptive Brain Interface, it&#8217;s neural classifier relied heavily upon Mahalanobis Distance Statistic. Other than this, we don&#8217;t need to know anything more about neural networks to continue understanding how this thing works. ( I, myself, know nothing more about neural networks other than that oft-quoted <a href="http://en.wikipedia.org/wiki/Ant_colony_optimization#Summary" target="_blank">Ant-Colony Optimization</a> technique wherein computer programs<a href="http://www.scientificamerican.com/article.cfm?id=swarm-intelligence-research" target="_blank"> mimic ants and their pheromone trails</a> to do &#8220;AI stuff&#8221;.)</p>
<p><img class="alignright size-full wp-image-287" title="9780071362634_150x150" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/9780071362634_150x150.jpg?w=594" alt=""   /></p>
<p>At the time that I was diving into this, there was very little information on the web about <a href="http://en.wikipedia.org/wiki/Mahalanobis_distance" target="_blank">Mahalobis Distance</a> (certainly not the <a href="http://en.wikipedia.org/wiki/Mahalanobis_distance" target="_blank">Wikipedia page</a> that there is now) so in early 2003 or 2004 I ordered a <a href="http://www.amazon.com/Mahalanobis-Taguchi-System-Genichi-Taguchi/dp/0071362630/ref=sr_1_2?ie=UTF8&amp;qid=1296018746&amp;sr=8-2" target="_blank">book</a> from Amazon called the <a href="http://www.amazon.com/Mahalanobis-Taguchi-System-Genichi-Taguchi/dp/0071362630/ref=sr_1_2?ie=UTF8&amp;qid=1296018746&amp;sr=8-2" target="_blank">Mahalanobis-Taguchi System</a>. In this book, I learned that a nerdy Japanese Quality Assurance guy was able to get famous and make a buncha money by applying the Mahalanobis Distance Statistic to manufacturing processes. How? Well, take the task of photo development as an example.</p>
<p>With photo processing you have to apply costly chemicals to film gradually over many stages before you can produce a final photo that can be determined to be &#8220;bad&#8221; (overexposed, out of focus, etc). Well if you are able to determine that the photo will turn out bad at earlier stages in the process, you don&#8217;t have to invest the resources in developing the full final product before you decide to throw it out. This is also true of other kinds of manufacturing: from automobiles, to <a href="http://en.wikipedia.org/wiki/The_Jetsons" target="_blank">Spacely Sprockets</a>. (Especially for <a href="http://arstechnica.com/hardware/news/2008/09/moore.ars/2" target="_blank">things like CPUs</a> where almost half of your production yield gets thrown away.)</p>
<p>This japanese Quality Assurance guy was able to collect metrics about the &#8220;bad yields&#8221; of different products as they flowed through their manufacturing processes.</p>
<p><img class="size-medium wp-image-286 alignright" title="5-steve-urkel" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/5-steve-urkel.jpg?w=166&#038;h=240" alt="" width="166" height="240" /> He applied Mahalanobis Distance Statistic to these metrics at &#8220;checkpoints&#8221; along the manufacturing process and was able to make early predictions about if a yield would be good or bad. This saves companies a whole <a href="http://www.urbandictionary.com/define.php?term=grip" target="_blank">grip</a> of cash. He presumably made loads of money and got girls from it. I too wanted money and girls, and this math crap seemed like a perfect angle for my new &#8220;tortured genius&#8221; affectation. Although rare like black pearls, Black nerds like myself need additional gimmicks to snag chicks&#8230;&#8221;tortured genius&#8221; was my new attempt after &#8220;DJ&#8221;, &#8220;tortured writer&#8221;, and &#8220;international man of mystery&#8221; had all met with limited success. (Oh, and if you think Black Nerds aren&#8217;t that rare, I challenge you to name more than five: <a href="http://www.youtube.com/watch?v=oiljoS4ChOk" target="_blank">Steve Urkel</a>, <a href="http://www.freakingnews.com/pictures/32000/Nerd-Barack-Obama--32054.jpg" target="_blank">Barack Obama</a>, <a href="http://www.imdb.com/name/nm0779467/" target="_blank">Lamar from &#8220;Revenge of the Nerds&#8221;</a>, <a href="http://en.wikipedia.org/wiki/Toofer_Spurlock" target="_blank">that dude from 30 Rock</a>, and &#8230;.yea, see? Not easy.)</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/img75.gif"><img class="alignleft size-medium wp-image-288" title="img75" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/img75.gif?w=300&#038;h=257" alt="" width="300" height="257" /></a> Anyway, in addition to the Mahalanobis-Taguchi book, I found that Mahalanobis is used for lots of other sexy applications like &#8220;<a href="http://en.wikipedia.org/wiki/Computer_vision" target="_blank">computer vision</a>&#8220;. But perhaps my favorite other application of Mahalanobis Distance I found in some obscure articles on the web. These articles were about how Astronomers and Chemists use Mahalanobis with <a href="http://en.wikipedia.org/wiki/Spectrograph" target="_blank">spectrographs</a> (things that measure wavelengths from light sources) to determine the chemical composition of distant stars based solely on the type of light the star emits.</p>
<p>&#8220;Wait a minute. How the hell does this crap have anything to do with stars?&#8221; Well, the universe is imperfect. When you burn a chemical in a lab it produces light that you can</p>
<p><img class="alignright size-medium wp-image-303" title="54350main_MM_image_feature_101_jw4" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/54350main_mm_image_feature_101_jw41.jpg?w=300&#038;h=225" alt="" width="300" height="225" />measure with a spectrograph. A pure sample of a chemical will basically always produce the same spectrograph reading. However, when the same chemical gets mixed in with a buncha other stuff and burns as part of a chemical compound (like in a star) it will produce an &#8220;imperfect&#8221; spectrograph reading. A human can overlay the perfect andimperfect graphs to see that they look kinda similar, but your average computer program would likely nitpick at all the little abberations and imperfections in the &#8220;real-world&#8221; sample and call the two samples vastly different. Mahalanobis Distance Statistic is one tool that Astronomers use (coded into computer programs) to measure the &#8220;sameness&#8221; between the real-world readings (of stuff burning in distant stars) to the samples of purer chemicals burning in their labs. This is how we (as humans) determine the chemical composition of <strong>real</strong> stuff in the universe. Effectively, Mahalanobis Distance Statistic helps humans discover what stars are made of without actually having to visit them. It&#8217;s real <strong>sh*t,</strong> that really works!</p>
<p>After reading all this crap, my mind was flush with crazy ideas:</p>
<ul>
<li><em>&#8220;If this equation could filter through seemingly chaotic radio noise from our brains, then surely it could be used to do something simple like classify mp3s on my filesystem based on the &#8216;way they sounded&#8217;&#8221;</em> (A few short years later, I would read about <a href="http://en.wikipedia.org/wiki/Pandora_Radio" target="_blank">Pandora</a> which uses a similar classification system.)</li>
</ul>
<p>Or:</p>
<ul>
<li><em>&#8220;Surely if this thing can data-mine brain noise then it can be used to help decide if an email is spam!&#8221;</em> (It turns out that Mahalanobis Distance offers no real improvement over <a href="http://en.wikipedia.org/wiki/Bayesian_spam_filtering" target="_blank">Bayesian filtering</a> because it requires some <a href="http://en.wikipedia.org/wiki/Determinant#n-by-n_matrices" target="_blank">computationally expensive matrix math</a> and <a href="http://en.wikipedia.org/wiki/Covariance_matrix" target="_blank">matrix transformations</a>.)</li>
</ul>
<p>Or even better:</p>
<ul>
<li><em>&#8220;I could use this to classify streams of traffic from <a href="http://en.wikipedia.org/wiki/Pcap#libpcap" target="_blank">libpcap</a> or <a href="http://www.snort.org/" target="_blank">Snort</a> to help discover previously overlooked intrusions and <a href="http://www.csoonline.com/article/570813/data-exfiltration-how-data-gets-out" target="_blank">data exfiltrations</a>!&#8221;</em></li>
</ul>
<p>Or:</p>
<ul>
<li><em>&#8220;I could use this to find out the encoding or compression schemes of data inside of seemingly arbitrary data streams.&#8221;</em></li>
</ul>
<p>Or:</p>
<ul>
<li><em>&#8220;I could use this to decide if an executable is malicious based on traces of it&#8217;s execution!&#8221;</em></li>
</ul>
<p>My young over-zealous mind was awash in great applications for a flexible &#8220;decision engine&#8221; based on statistical classifiers like Mahalanobis Distance.  All anyone would need to do is extract &#8220;features&#8221; from any data set and feed it to my magical solver to have all the data classified! All these ideas teemed in my head for a few years and like <a href="http://web.archive.org/web/20030411224736/www.zenapse.org/thoughtmapper/" target="_blank">most of my ideas</a> and life aspirations only manifested as half-assed and <a href="https://github.com/s7ephen/Tamatebako/blob/master/mahal_calc/mahalcalc.pl" target="_blank">unfinished code in a repository</a> on some <a href="https://github.com/s7ephen/Tamatebako/blob/master/mahal_calc/simple.py" target="_blank">forgotten backup disk</a>. (That is until a few  months ago <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>But lets rewind a bit. First I had to understand a bit of more about how Mahalanobis Distance worked. I will not bore you with the details in this blogpost (if you want to know there is a <a href="http://en.wikipedia.org/wiki/Mahalanobis_distance" target="_blank">Wikipedia page</a> and plenty of <a href="http://people.revoledu.com/kardi/tutorial/Similarity/MahalanobisDistance.html" target="_blank">step-by-step tutorials</a>) but what <strong>is</strong> important is why Mahalanobis Distance is uniquely useful over other types of classification.</p>
<p>Lets imagine that you and I were tasked with creating a system that was able to categorize the two dimensional data points like the ones in the chart below:</p>
<p style="text-align:center;"><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/raw_points.png"><img class="aligncenter size-full wp-image-304" title="Raw_Points" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/raw_points.png?w=594" alt=""   /></a></p>
<p>After a few minutes of looking at the data, we would probably come up with a scheme that probably worked something like this:</p>
<p style="text-align:center;">1. Graph all of the observations as points on a graph.</p>
<p style="text-align:center;"><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/graph_without_average.png"><img class="aligncenter size-full wp-image-305" title="Graph_Without_Average" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/graph_without_average.png?w=594" alt=""   /></a>2. Finding the center-point (or average) of the cluster of points and plot this average as a point on the graph.</p>
<p style="text-align:center;"><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/averages_graph_and_points.png"></a><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/averages_graph_and_points1.png"><img class="aligncenter size-full wp-image-309" title="Averages_graph_and_points" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/averages_graph_and_points1.png?w=594" alt=""   /></a><span style="color:#444444;">3. Calculate some kind of radius from this center-point. This radius will serve as our &#8220;class threshold&#8221;. (In this case we will use a radius of ~2.o)</span></p>
<p>4. Draw a circle using the radius or &#8220;class threshold&#8221; and the center-point of the cluster.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/class_threshold.png"><img class="aligncenter size-full wp-image-312" title="Class_Threshold" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/class_threshold.png?w=594" alt=""   /></a> Using this scheme, any new points added to the graph would either fall within the circle our outside of the circle. With this system, those outside can be said to be &#8220;a part of the class&#8221; or &#8220;not part of the class&#8221;.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/excluded-from-the-class.png"><img class="aligncenter size-full wp-image-311" title="Excluded from the Class" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/excluded-from-the-class.png?w=594" alt=""   /></a></p>
<p>The fancy terms for this common-sense technique are &#8220;<a href="http://en.wikipedia.org/wiki/Euclidean_distance" target="_blank">Euclidean Mean</a>&#8221; or &#8220;<a href="http://www.pcigeomatics.com/cgi-bin/pcihlp/MINDIS" target="_blank">Minimum Distance Classifier</a>&#8220;.</p>
<p>Well if you think like a hacker, you are probably already imagining scenarios where this classification system breaks down.  Such as:</p>
<ul>
<li><em>&#8220;What happens if a point happens to fall on the line, is it part of the class or not? How close to the line is too close?&#8221;</em></li>
</ul>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/some_overlapping_points.png"><img class="aligncenter size-full wp-image-313" title="some_overlapping_points" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/some_overlapping_points.png?w=594" alt=""   /></a></p>
<ul>
<li><em>&#8220;If two points are plotted with one point falling just inside the circle and the other falling just outside of the circle, they themselves are very similar to one another but determined to be drastically different simply because they don&#8217;t both fall within the &#8220;class threshold&#8221;. Is that ok?&#8221;</em></li>
</ul>
<p>And lastly, and most importantly:</p>
<ul>
<li><em>&#8220;How would this system scale?&#8221; </em>That is to say, how would it hold up if we tried to classify richer sets of data.</li>
</ul>
<p><span style="font-family:Georgia, 'Bitstream Charter', serif;line-height:24px;font-size:16px;"> For example: what about data sets that have more than just X and Y coordinates? If they had X, Y, and Z coordinates we could maybe extend this idea into three dimensions by drawing a sphere as our threshold. But what if we wanted to have the same system work for data with X, Y, Z, D, E, F, H coordinates? What if we want an equation that would classify data sets with N dimensions just as easily as 2 dimensions? As coders we don&#8217;t want to hand code a different classification system for every possible dimension, we want a single algorithm we can reuse for N dimensions!</span></p>
<p>That is precisely what Mahalanobis Distance gives us. It is a scheme that does not fall apart for any of these above issues (as well as a bunch of other ones that us noobs can&#8217;t yet dream up).</p>
<p>Well let&#8217;s bring this back the the ESPRIT ABI thingy I mentioned earlier. You&#8217;ll recall that the ABI uses an EEG to read electrical signals in the brain from electrodes attached the surface of the head.</p>
<p><img class="size-medium wp-image-289 alignright" title="Epilepsy-11-66418" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/epilepsy-11-66418.jpg?w=296&#038;h=300" alt="" width="296" height="300" /> At any given time in a recording there is a reading for each electrode of the EEG. This data, at any given time, can be represented as a &#8220;multi dimensionalarray&#8221;. Instead of the simplistic 2-dimensional data-points like the ones from earlier, these readings have many &#8220;features&#8221;. Instead of having just X and Y coordinates the EEG readings have F3, C3, F7, T7, P7, O1, P3, (and so on), with each coordinate representing a reading from a corresponding electrode. At any given time, the EEG is constantly producing a stream of data in the form of a matrix containing the frequencies of data for each electrode.</p>
<p>If a researcher wanted to add more electrodes, this would effectively increase the number of dimensions (or features) that the datastream from the EEG produced. Thus, the analysis engine that consumes this data would have to be flexible and able to process data with matrices of N-dimensions. This is precisely why the researchers chose to use Mahalanobis Distance in the Adaptive Brain Interface it is one of few statistical classifiers that can be used on matrices of N-dimensions.</p>
<p>Well this is all very interesting, but how the hell does this have <strong>anything</strong> to do with SEO, spam, and tricking search engines? When you perform a message digest (like md5) on two blocks of text that differ by only one byte, comparing the md5 sums only tells you that the two blocks differ.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/neuromancer_diff.png"><img class="aligncenter size-full wp-image-310" title="neuromancer_diff" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/neuromancer_diff.png?w=594" alt=""   /></a></p>
<p>Thus, message digests are not suited to give you a measure of similarity because they can only indicate uniqueness. Well Mahalanobis is suited for exactly this. (In fact, the <a href="http://en.wikipedia.org/wiki/Covariance_matrix" target="_blank">S-Matrix</a> can even be represented by something that looks like a <a href="http://en.wikipedia.org/wiki/SHA-2" target="_blank">SHA256</a> hash). With this in mind, I set out to try to use Mahalanobis Distance Statistic to tell me &#8220;how similar&#8221; two blocks of text were.</p>
<p>After implementing this, I found that I could also use a bit of <a href="http://www.nltk.org/" target="_blank">Natural Language Processing</a> and <a href="http://wordnet.princeton.edu/" target="_blank">word databases</a> to not only tell me how unique a block of text was (based on the characters it contained) but also to give me a measure of uniqueness based on the lexical sentence structure (i.e. placement of nouns, pronouns, determiners, etc within the text).</p>
<p>From this, I was able to write proof-of-concept applications that &#8220;borrowed&#8221; the lexical structure of one body of text to programmatically generate hundreds and thousands of articles that made absolutely no sense to a human reader but were grammatically and syntactically correct enough that Google considered it indexable (including the content and links it contained). This in turn increases page rank for the sites referenced in the generated text. When performed in an automated fashion you could effectively implement this on a scale large enough to influence search engine results for specific keywords&#8230;.Sound familiar? Blog spam!</p>
<p>In the next blogpost I will dive into the technical details, code, and applications of all this. Some of the more interesting points are:</p>
<ul>
<li>SEO vernacular: templates, articles, keywords oh my!</li>
<li><a href="http://en.wikipedia.org/wiki/Combinatorics" target="_blank">Combinatorics</a> and <a href="http://en.wikipedia.org/wiki/Set_(mathematics)" target="_blank">Set Math</a>: How your <a href="http://en.wikipedia.org/wiki/Fuzz_testing" target="_blank">fuzzer</a> is not so different from what spammers use to generate article content.</li>
<li>WTF is a <a href="http://en.wikipedia.org/wiki/Markov_chain" target="_blank">Markov Chain</a>?: How <a href="http://en.wikipedia.org/wiki/Natural_language_processing" target="_blank">Natural Language Processing</a> is used to &#8220;game&#8221; the search engines by determining <a href="http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html" target="_blank">parts of speech</a> and &#8220;<a href="http://www.ehow.com/how_2086253_use-article-spinning-seo.html" target="_blank">spinning</a>&#8221; blocks of text.</li>
<li>Automation: How spammers and SEOs defeat <a href="http://en.wikipedia.org/wiki/CAPTCHA" target="_blank">Captchas</a>. How spammers and SEOs mass mail and automate control of many web identities (blogs, webmail, etc).</li>
<li>Code and technical details for all of the above.</li>
<li>Lastly, my ideas on how to defeat/improve this stuff by using Statistical classifiers like Mahalanobis distance to see if blocks of text are lexically similar.</li>
</ul>
<p>[spinner screenshot]</p>
<p>[nlp post screenshot]</p>
<p>[mahal nlp screenshot]</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/274/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=274&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2011/02/01/why-spam-looks-like-that-part1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/spam2_2.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/spam2_2.jpg?w=150" medium="image">
			<media:title type="html">Spam2_2</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/0738206679.jpg?w=99" medium="image">
			<media:title type="html">0738206679</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/bci_abi.jpg?w=300" medium="image">
			<media:title type="html">bci_abi</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/11322391090750385.png" medium="image">
			<media:title type="html">11322391090750385</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/a/af/Aco_branches.svg" medium="image" />

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/9780071362634_150x150.jpg" medium="image">
			<media:title type="html">9780071362634_150x150</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/5-steve-urkel.jpg?w=207" medium="image">
			<media:title type="html">5-steve-urkel</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/img75.gif?w=300" medium="image">
			<media:title type="html">img75</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/54350main_mm_image_feature_101_jw41.jpg?w=300" medium="image">
			<media:title type="html">54350main_MM_image_feature_101_jw4</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/raw_points.png" medium="image">
			<media:title type="html">Raw_Points</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/graph_without_average.png" medium="image">
			<media:title type="html">Graph_Without_Average</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/averages_graph_and_points1.png" medium="image">
			<media:title type="html">Averages_graph_and_points</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/class_threshold.png" medium="image">
			<media:title type="html">Class_Threshold</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/excluded-from-the-class.png" medium="image">
			<media:title type="html">Excluded from the Class</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/some_overlapping_points.png" medium="image">
			<media:title type="html">some_overlapping_points</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/01/epilepsy-11-66418.jpg?w=296" medium="image">
			<media:title type="html">Epilepsy-11-66418</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/neuromancer_diff.png" medium="image">
			<media:title type="html">neuromancer_diff</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackHat Abu Dhabi 2010 (a photojournal)</title>
		<link>http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/</link>
		<comments>http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:43:36 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[BlackHat]]></category>
		<category><![CDATA[Cons & Events]]></category>
		<category><![CDATA[goings on]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=271</guid>
		<description><![CDATA[Last week we here at Beans attended the first annual BlackHat Abu Dhabi to speak on software sandboxing technologies (Google Chrome) and relevant security issues. (This was the same talk from EuSecWest and ReCon.) This was the first time I (Stephen A. Ridley) had been outside of the airport in the Middle East. (The closest [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=271&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2256.jpg"><img class="alignleft size-medium wp-image-334" title="IMG_2256" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2256.jpg?w=157&#038;h=240" alt="" width="157" height="240" /></a>Last week we here at Beans attended the first annual <a href="http://www.blackhat.com/html/bh-ad-10/bh-ad-10-briefings.html#Ridley" target="_blank">BlackHat Abu Dhabi</a> to speak on <a href="http://en.wikipedia.org/wiki/Sandbox_(computer_security)" target="_blank">software sandboxing technologies</a> (<a href="http://dev.chromium.org/developers/design-documents/sandbox" target="_blank">Google Chrome</a>) and relevant security issues. (This was the same talk from <a href="http://dontstuffbeansupyournose.com/2010/07/02/poppas-got-a-brand-new-bag/" target="_blank">EuSecWest</a> and <a href="http://dontstuffbeansupyournose.com/2010/09/16/recon-2010/" target="_blank">ReCon</a>.) This was the first time I (Stephen A. Ridley) had been outside of the airport in the Middle East. (The closest I&#8217;d ever come previously for any extended period was <a href="https://picasaweb.google.com/s7ephen/India2006Bangalore#slideshow" target="_blank">India</a> or maybe <a href="https://picasaweb.google.com/s7ephen/Rome2008#slideshow" target="_blank">Italy</a>).</p>
<p>The conference location (<a href="http://www.emiratespalace.com/en/home/index.htm" target="_blank">the Emirates Palace</a>) was lavish to say the least. Shortly after Blackhat Abu Dhabi it was the first to host the <a href="http://www.bbc.co.uk/news/world-middle-east-12006875" target="_blank">most expensive Christmas Tree in the world</a>. And earlier that year, the hotel made headlines for hosting the world&#8217;s first <a href="http://www.businessinsider.com/gold-vending-machine-abu-dhabi-2010-5" target="_blank">gold vending machine</a>. Funny story about Barnaby Jack and that ATM (who was <a href="http://news.cnet.com/8301-1009_3-20012019-83.html" target="_blank">speaking at Blackhat Abu Dhabi about breaking into ATMs</a> <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>What made the trip even better was that my dad also came along with me. With my dad about to meet some grungy hacker types, I worried a<a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2037.jpg"><img class="alignright size-medium wp-image-331" title="IMG_2037" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2037.jpg?w=240&#038;h=160" alt="" width="240" height="160" /></a> bit about <a href="http://www.google.com/search?rls=en&amp;q=seinfeld+worlds+collide&amp;ie=UTF-8&amp;oe=UTF-8#sclient=psy&amp;hl=en&amp;client=safari&amp;rls=en&amp;q=seinfeld+worlds+collide&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;pbx=1&amp;fp=a2587425152f2ac5" target="_blank">worlds colliding</a> but my dad is a chill dude so my worries soon abated&#8230;only to immediately return upon introducing him to a very inebriated Grugq and Barnaby Jack. (I heard: <em>&#8220;Nice friends you have here son.&#8221; </em>a few times on this trip <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  But in the end, everyone decided my dad was cooler than me anyway.</p>
<p>As is usual for these conferences, I got to hang with old friends, make some new ones, and to meet some interesting folks like <a href="http://en.wikipedia.org/wiki/Moxie_Marlinspike" target="_blank">Moxie</a> and Vanity Fair&#8217;s <a href="http://en.wikipedia.org/wiki/Michael_Joseph_Gross" target="_blank">Michael Joseph Gross</a>. I even got a chance to bore the <a href="https://picasaweb.google.com/s7ephen/BlackhatAbuDhabi2010#5539564539548477426" target="_blank">FireEye CEO</a> with some of my <a href="http://dontstuffbeansupyournose.com/2011/02/01/why-spam-looks-like-that-part1/" target="_blank">wacky data correlation ideas </a>for malware analysis.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_9785.jpg"><img class="alignleft size-medium wp-image-337" title="IMG_9785" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_9785.jpg?w=270&#038;h=180" alt="" width="270" height="180" /></a>The conference itself and my talk went very well despite a relatively small turnout (by Blackhat standards). The sponsors (the <a href="http://en.wikipedia.org/wiki/Mohammed_bin_Zayed_Al_Nahyan" target="_blank">Crown Prince himself</a>, <a href="http://www.aecert.ae/" target="_blank">AE Cert</a>, and <a href="https://picasaweb.google.com/s7ephen/BlackhatAbuDhabi2010#slideshow/5539565617532280322" target="_blank">officials</a> from the &#8220;<a href="https://picasaweb.google.com/s7ephen/BlackhatAbuDhabi2010#5539563037144192114" target="_blank">Telecommunications Regulatory Authority</a>&#8220;) were very gracious and forgiving <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .</p>
<p>Blackhat Abu Dhabi wrapped up the same weekend as the first <a href="http://en.wikipedia.org/wiki/2010_Abu_Dhabi_Grand_Prix" target="_blank">Abu Dhabi Grand Prix</a>, so <a href="https://picasaweb.google.com/s7ephen/BlackhatAbuDhabi2010#slideshow/5539567523568016626" target="_blank">as grungy hackers were leaving the Emirates Palace</a> celebrities, aristocrats, and foreign dignitaries were all showing up.</p>
<p>All-in-all, I&#8217;m sure the next one will be even bigger and better. If you have the chance, you should go to the next one. The UAE is pretty blingin&#8217;.</p>
<p>Some sample images are below, but a complete photo-journal of the trip you can view as <a href="https://picasaweb.google.com/s7ephen/BlackhatAbuDhabi2010#slideshow/" target="_blank"> a big labeled slideshow here</a>.</p>

<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_9785/' title='IMG_9785'><img data-attachment-id='337' data-orig-size='720,480' data-liked='0'width="150" height="100" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_9785.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="IMG_9785" title="IMG_9785" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_2548/' title='IMG_2548'><img data-attachment-id='336' data-orig-size='389,512' data-liked='0'width="113" height="150" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2548.jpg?w=113&#038;h=150" class="attachment-thumbnail" alt="IMG_2548" title="IMG_2548" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_2315/' title='IMG_2315'><img data-attachment-id='335' data-orig-size='720,456' data-liked='0'width="150" height="95" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2315.jpg?w=150&#038;h=95" class="attachment-thumbnail" alt="IMG_2315" title="IMG_2315" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_2256/' title='IMG_2256'><img data-attachment-id='334' data-orig-size='336,512' data-liked='0'width="98" height="150" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2256.jpg?w=98&#038;h=150" class="attachment-thumbnail" alt="IMG_2256" title="IMG_2256" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_2212/' title='IMG_2212'><img data-attachment-id='333' data-orig-size='720,480' data-liked='0'width="150" height="100" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2212.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="IMG_2212" title="IMG_2212" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_2098/' title='IMG_2098'><img data-attachment-id='332' data-orig-size='720,480' data-liked='0'width="150" height="100" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2098.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="IMG_2098" title="IMG_2098" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_2037/' title='IMG_2037'><img data-attachment-id='331' data-orig-size='720,480' data-liked='0'width="150" height="100" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2037.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="IMG_2037" title="IMG_2037" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_1908/' title='IMG_1908'><img data-attachment-id='330' data-orig-size='720,480' data-liked='0'width="150" height="100" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1908.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="IMG_1908" title="IMG_1908" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_1894/' title='IMG_1894'><img data-attachment-id='329' data-orig-size='720,480' data-liked='0'width="150" height="100" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1894.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="IMG_1894" title="IMG_1894" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_1880/' title='IMG_1880'><img data-attachment-id='328' data-orig-size='342,512' data-liked='0'width="100" height="150" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1880.jpg?w=100&#038;h=150" class="attachment-thumbnail" alt="IMG_1880" title="IMG_1880" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_1837/' title='IMG_1837'><img data-attachment-id='327' data-orig-size='720,480' data-liked='0'width="150" height="100" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1837.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="IMG_1837" title="IMG_1837" /></a>
<a href='http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/img_1781/' title='IMG_1781'><img data-attachment-id='326' data-orig-size='342,512' data-liked='0'width="100" height="150" src="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1781.jpg?w=100&#038;h=150" class="attachment-thumbnail" alt="IMG_1781" title="IMG_1781" /></a>

<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/271/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=271&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2010/11/17/blackhat-abu-dhabi-2010-a-photojournal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2315.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2315.jpg?w=150" medium="image">
			<media:title type="html">IMG_2315</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2256.jpg?w=196" medium="image">
			<media:title type="html">IMG_2256</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2037.jpg?w=300" medium="image">
			<media:title type="html">IMG_2037</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_9785.jpg?w=300" medium="image">
			<media:title type="html">IMG_9785</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_9785.jpg?w=150" medium="image">
			<media:title type="html">IMG_9785</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2548.jpg?w=113" medium="image">
			<media:title type="html">IMG_2548</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2256.jpg?w=98" medium="image">
			<media:title type="html">IMG_2256</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2212.jpg?w=150" medium="image">
			<media:title type="html">IMG_2212</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2098.jpg?w=150" medium="image">
			<media:title type="html">IMG_2098</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_2037.jpg?w=150" medium="image">
			<media:title type="html">IMG_2037</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1908.jpg?w=150" medium="image">
			<media:title type="html">IMG_1908</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1894.jpg?w=150" medium="image">
			<media:title type="html">IMG_1894</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1880.jpg?w=100" medium="image">
			<media:title type="html">IMG_1880</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1837.jpg?w=150" medium="image">
			<media:title type="html">IMG_1837</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2011/02/img_1781.jpg?w=100" medium="image">
			<media:title type="html">IMG_1781</media:title>
		</media:content>
	</item>
		<item>
		<title>WhoHasTlb? : Extracting TypeLib data from COM Objects</title>
		<link>http://dontstuffbeansupyournose.com/2010/09/16/whohastlb-extracting-typelib-data-from-com-objects/</link>
		<comments>http://dontstuffbeansupyournose.com/2010/09/16/whohastlb-extracting-typelib-data-from-com-objects/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 18:28:39 +0000</pubDate>
		<dc:creator>s7ephen</dc:creator>
				<category><![CDATA[fuzzing]]></category>
		<category><![CDATA[reversing]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://dontstuffbeansupyournose.com/?p=236</guid>
		<description><![CDATA[So let&#8217;s say that you&#8217;re sitting down to a project (perhaps a malware analysis gig, fuzzing something, or just reversing) and you realize that most of the target is implemented in COM/ActiveX Objects. What would really help you starting off on this project is a human readable version (IDL) of the TypeLib associated with the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=236&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So let&#8217;s say that you&#8217;re sitting down to a project (perhaps a malware analysis gig, fuzzing something, or just reversing) and you realize that most of the target is implemented in COM/ActiveX Objects. What would really help you starting off on this project is a human readable version (<a href="http://en.wikipedia.org/wiki/Component_Object_Model#Interface_Definition_Language_and_type_libraries" target="_blank">IDL</a>) of the TypeLib associated with the COM Object. This way you can quickly begin to see what the COM Object exports, and you can then begin to map out the rest of your project (choosing fuzzing targets, etc). But unfortunately the .tlb file didn&#8217;t come with it (for whatever reason). There are no known Microsoft public APIs for extracting typelib data directly from a PE. You also think it&#8217;s &#8220;sloppy&#8221; to register the COM Object just so tools like <a href="http://msdn.microsoft.com/en-us/library/ms693754(VS.85).aspx" target="_blank">OLEView</a>, and the code you ripped from <a href="http://digitaloffense.net/tools/axman/" target="_blank">AxMan</a> <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  can find it. Furthermore, if you did chose the &#8220;register it&#8221; method, you&#8217;d have more asspain cuz&#8217; you&#8217;d have to snapshot the registry before and after, and then diff to just to identify what changed after you <a href="http://support.microsoft.com/kb/249873" target="_blank">regsrv32</a>&#8216;d the COM Object. Blah blah blah blah. <strong>BORING</strong>. <em>Get to the point Stephen</em>.</p>
<p>Ok. So (as you may already know), compiled TLB data is stored in the resource section of the PE file it is associated with. Here is what I used to do:</p>
<p>1. Observe the section in the resource section of the target PE using <a href="http://www.magma.ca/~wjr/" target="_blank">PEView</a>.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_peview_typelib.jpg"><img class="aligncenter size-medium wp-image-245" title="cscript_peview_typelib" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_peview_typelib.jpg?w=300&#038;h=297" alt="" width="300" height="297" /></a></p>
<p>2. Find out the length of that specific section using the PE Header data.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_rva_and_size.jpg"><img class="aligncenter size-medium wp-image-244" title="cscript_rva_and_size" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_rva_and_size.jpg?w=300&#038;h=119" alt="" width="300" height="119" /></a></p>
<p>3. Do some basic math to find where the TLB data begins inside the PE file (using the TLB magic bytes to identify the beginning).</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_peview_magicbytes.jpg"><img class="aligncenter size-medium wp-image-246" title="cscript_peview_magicbytes" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_peview_magicbytes.jpg?w=300&#038;h=121" alt="" width="300" height="121" /></a></p>
<p>4. Open the target PE file in a Hex Editor and manually extract the TLB file data into a new file (or otherwise extract it using file offsets calculated from PE Header values).</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/tlb_magicbytes.jpg"><img class="aligncenter size-medium wp-image-241" title="tlb_magicbytes" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/tlb_magicbytes.jpg?w=300&#038;h=59" alt="" width="300" height="59" /></a></p>
<p>5. Open the newly created TLB file (that we extracted from the PE) in OLEView so that we can convert it back to IDL form.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/oleview_main.jpg"><img class="aligncenter size-medium wp-image-242" title="oleview_main" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/oleview_main.jpg?w=300&#038;h=103" alt="" width="300" height="103" /></a></p>
<p>Well, this process obviously got tedious for every single binary I encountered, so I wrote a tool called <a href="http://github.com/s7ephen/tlb_extract" target="_blank">WhoHasTLB</a>? (using Ero Carrera&#8217;s extremely useful <a href="http://code.google.com/p/pefile/" target="_blank">PeFile</a>) to automate steps 1-4. I also compiled it into a standalone executable so it was a bit more portable and easier to use (especially moving between VMs).</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_usage.jpg"><img class="aligncenter size-medium wp-image-239" title="whohas_usage" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_usage.jpg?w=300&#038;h=133" alt="" width="300" height="133" /></a></p>
<p>I then also wrapped the TLB extraction routines in something that will search a directory recursively for PE files containing TypeLib data. This is useful on those large build directories that you get from customers with lots of binaries in them.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_cscript_extract.jpg"><img class="aligncenter size-medium wp-image-240" title="whohas_cscript_extract" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_cscript_extract.jpg?w=300&#038;h=168" alt="" width="300" height="168" /></a></p>
<p>After the TLB files have been extracted automatically by WhoHasTLB? you can then just open them in <a href="http://msdn.microsoft.com/en-us/library/ms693754(VS.85).aspx" target="_blank">OleView</a> to have them converted to human readable IDL&#8217;s.</p>
<p><a href="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/oleview_cscript_idl.jpg"><img class="aligncenter size-medium wp-image-243" title="oleview_cscript_idl" src="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/oleview_cscript_idl.jpg?w=300&#038;h=155" alt="" width="300" height="155" /></a></p>
<p>I hope this is useful!</p>
<p><a href="http://github.com/s7ephen/tlb_extract" target="_blank">GitHub Repository and download is here.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dontstuffbeansupyournose.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dontstuffbeansupyournose.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dontstuffbeansupyournose.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dontstuffbeansupyournose.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dontstuffbeansupyournose.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dontstuffbeansupyournose.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dontstuffbeansupyournose.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dontstuffbeansupyournose.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dontstuffbeansupyournose.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dontstuffbeansupyournose.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dontstuffbeansupyournose.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dontstuffbeansupyournose.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dontstuffbeansupyournose.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dontstuffbeansupyournose.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dontstuffbeansupyournose.com&amp;blog=14412241&amp;post=236&amp;subd=dontstuffbeansupyournose&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dontstuffbeansupyournose.com/2010/09/16/whohastlb-extracting-typelib-data-from-com-objects/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:thumbnail url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_usage.jpg?w=150" />
		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_usage.jpg?w=150" medium="image">
			<media:title type="html">whohas_usage</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/b19a714f54477f99cc7b64970485743e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">s7ephen</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_peview_typelib.jpg?w=300" medium="image">
			<media:title type="html">cscript_peview_typelib</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_rva_and_size.jpg?w=300" medium="image">
			<media:title type="html">cscript_rva_and_size</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/cscript_peview_magicbytes.jpg?w=300" medium="image">
			<media:title type="html">cscript_peview_magicbytes</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/tlb_magicbytes.jpg?w=300" medium="image">
			<media:title type="html">tlb_magicbytes</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/oleview_main.jpg?w=300" medium="image">
			<media:title type="html">oleview_main</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_usage.jpg?w=300" medium="image">
			<media:title type="html">whohas_usage</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/whohas_cscript_extract.jpg?w=300" medium="image">
			<media:title type="html">whohas_cscript_extract</media:title>
		</media:content>

		<media:content url="http://dontstuffbeansupyournose.files.wordpress.com/2010/09/oleview_cscript_idl.jpg?w=300" medium="image">
			<media:title type="html">oleview_cscript_idl</media:title>
		</media:content>
	</item>
	</channel>
</rss>
