<?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>Didier Stevens &#187; Search Results  &#187;  pdf</title>
	<atom:link href="http://blog.didierstevens.com/search/pdf/feed/rss2/" rel="self" type="application/rss+xml" />
	<link>http://blog.didierstevens.com</link>
	<description>(blog 'DidierStevens)</description>
	<lastBuildDate>Wed, 08 Feb 2012 19:24:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.didierstevens.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Didier Stevens &#187; Search Results  &#187;  pdf</title>
		<link>http://blog.didierstevens.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.didierstevens.com/osd.xml" title="Didier Stevens" />
	<atom:link rel='hub' href='http://blog.didierstevens.com/?pushpress=hub'/>
		<item>
		<title>Quickpost: Blocking and Detecting a Teensy Dropper</title>
		<link>http://blog.didierstevens.com/2011/07/14/quickpost-blocking-and-detecting-a-teensy-dropper/</link>
		<comments>http://blog.didierstevens.com/2011/07/14/quickpost-blocking-and-detecting-a-teensy-dropper/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 09:58:16 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2722</guid>
		<description><![CDATA[A Teensy dropper presents itself as a keyboard (HID) to a PC and this is how it can be used to drop files even if you don&#8217;t allow removable drives. You can prevent the installation of new HIDs, but this is an issue when you need to replace keyboards or mice. Irongeek has a good [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2722&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A Teensy dropper presents itself as a keyboard (<a href="https://secure.wikimedia.org/wikipedia/en/wiki/Human_interface_device">HID</a>) to a PC and this is how it can be used to <a href="http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/">drop files</a> even if you don&#8217;t allow removable drives.</p>
<p>You can prevent the installation of new HIDs, but this is an issue when you need to replace keyboards or mice. Irongeek has a <a href="http://www.irongeek.com/i.php?page=security/plug-and-prey-malicious-usb-devices#3._Locking_down_Windows_and_Linux_against_Malicious_USB_devices">good write-up</a>.</p>
<p>Connected HIDs leave forensics traces in the registry, take a look under key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\</p>
<p>Connecting a Teensy leaves these entries:</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482\6&amp;31417f27&amp;0&amp;3<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482&amp;MI_00\7&amp;becc88c&amp;0&amp;0000<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482&amp;MI_01\7&amp;becc88c&amp;0&amp;0001<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482&amp;MI_02\7&amp;becc88c&amp;0&amp;0002</p>
<hr />
<p><a href="http://blog.didierstevens.com/2007/11/01/announcing-quickposts/">Quickpost info</a></p>
<hr />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2722/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2722&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/07/14/quickpost-blocking-and-detecting-a-teensy-dropper/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>Teensy PDF Dropper Part 1</title>
		<link>http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/</link>
		<comments>http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 21:40:52 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2714</guid>
		<description><![CDATA[Pentesters need to drop files on targets. If a box is not connected to the Internet, and doesn&#8217;t accept removable storage, they need to come up with some tricks. Inputting the file via the keyboard is an option, but typing several millions of bytes is not. This needs automation. Irongeek uses a Teensy micro-controller to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2714&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pentesters need to drop files on targets. If a box is not connected to the Internet, and doesn&#8217;t accept removable storage, they need to come up with some tricks.</p>
<p>Inputting the file via the keyboard is an option, but typing several millions of bytes is not. This needs automation.</p>
<p>Irongeek uses a <a href="http://www.pjrc.com/teensy/">Teensy</a> micro-controller to <a href="http://www.irongeek.com/i.php?page=security/programmable-hid-usb-keystroke-dongle">achieve this</a>. My solution is a variation on this. If you need to drop a binary file, you need to find a way to convert the typed ASCII to bytes. There&#8217;s a solution with a debugger, but I&#8217;m using a PDF Reader.</p>
<p><img class="alignnone size-full wp-image-2715" title="20110713-232829" src="http://didierstevens.files.wordpress.com/2011/07/20110713-232829.png" alt="" width="640" height="373" /></p>
<p>It&#8217;s possible to <a href="http://blog.didierstevens.com/2009/07/01/embedding-and-hiding-files-in-pdf-documents/">create a pure ASCII PDF file that embeds a binary file</a>. Here are the steps to drop a binary file:</p>
<ul>
<li>open Notepad,</li>
<li>insert the Teensy and let it type the ASCII  PDF file into Notepad</li>
<li>save the PDF file</li>
<li>open it with a PDF Reader and save the embedded binary file</li>
</ul>
<p>Writing a program with the Arduino IDE to type an ASCII PDF file is not difficult:</p>
<p><img class="alignnone size-full wp-image-2716" title="20110713-233449" src="http://didierstevens.files.wordpress.com/2011/07/20110713-233449.png" alt="" width="687" height="569" /></p>
<p>But with the Arduino IDE, your embedded file is limited to a couple of kilobytes. Handling larger files will be described in part 2 of this post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2714/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2714&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/07/20110713-232829.png" medium="image">
			<media:title type="html">20110713-232829</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/07/20110713-233449.png" medium="image">
			<media:title type="html">20110713-233449</media:title>
		</media:content>
	</item>
		<item>
		<title>Quickpost: Need a PoC to Test Your Security Setup? Not Necessarily&#8230;</title>
		<link>http://blog.didierstevens.com/2011/06/22/quickpost-need-a-poc-to-test-your-security-setup-not-necessarily/</link>
		<comments>http://blog.didierstevens.com/2011/06/22/quickpost-need-a-poc-to-test-your-security-setup-not-necessarily/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 13:30:42 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Quickpost]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2698</guid>
		<description><![CDATA[People regularly ask me for a PoC (PDF or other type) to test their security setup. For example, they sandboxed Adobe Reader and now they want to test that Adobe Reader can&#8217;t write to sensitive Windows directories like system32. Well, you don&#8217;t need a PoC to test your setup in this way. Just develop and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2698&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>People regularly ask me for a PoC (PDF or other type) to test their security setup. For example, they sandboxed Adobe Reader and now they want to test that Adobe Reader can&#8217;t write to sensitive Windows directories like system32.</p>
<p>Well, you don&#8217;t need a PoC to test your setup in this way. Just develop and compile a DLL that writes to system32, and inject it in the target process.</p>
<p>The problem however, is that not everybody has the skills to develop and compile such a DLL. But almost everybody can write a VBScript that accomplishes the same. Here&#8217;s a one-liner that creates test.txt in system32:</p>
<p>
CreateObject(&quot;Scripting.FileSystemObject&quot;).CreateTextFile(&quot;c:\windows\system32\test.txt&quot;)
</p>
<p>But how do you get the target process to execute this script? That is something I worked out 2 years ago: <a href="http://blog.didierstevens.com/2009/06/25/bpmtk-injecting-vbscript/" rel="bookmark">bpmtk: Injecting VBScript</a>. In a nutshell: I developed a DLL that once injected into a process, instantiates a VBScript engine and executes the provided script.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2698/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2698&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/06/22/quickpost-need-a-poc-to-test-your-security-setup-not-necessarily/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>Malicious PDF Analysis Workshop Screencasts</title>
		<link>http://blog.didierstevens.com/2011/05/25/malicious-pdf-analysis-workshop-screencasts/</link>
		<comments>http://blog.didierstevens.com/2011/05/25/malicious-pdf-analysis-workshop-screencasts/#comments</comments>
		<pubDate>Wed, 25 May 2011 15:58:47 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2671</guid>
		<description><![CDATA[After giving my Malicious PDF Analysis workshop at Hack In The Box Amsterdam, I decided to produce a screencast for each exercise (there are 20 exercises). You can find the first screencasts here. More will be produced soon. Materials you&#8217;ll need for the exercises: my PDF tools the exercises themselves (password for the ZIP file [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2671&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After giving my Malicious PDF Analysis workshop at <a href="http://conference.hackinthebox.org/hitbsecconf2011ams/">Hack In The Box Amsterdam</a>, I decided to produce a screencast for each exercise (there are 20 exercises). You can find the first screencasts <a href="http://blog.didierstevens.com/screencasts-videos/">here</a>. More will be produced soon.</p>
<p>Materials you&#8217;ll need for the exercises:</p>
<ul>
<li><a href="http://blog.didierstevens.com/programs/pdf-tools/">my PDF tools</a></li>
<li><a href="http://didierstevens.com/files/data/pdf-workshop-exercises.zip">the exercises themselves</a> (password for the ZIP file is &#8220;infected&#8221; without the double-quotes; there&#8217;s no malware in the exercises, but some might still trigger AV)</li>
<li><a href="http://blog.didierstevens.com/2010/09/26/free-malicious-pdf-analysis-e-book/">my free e-book on PDF analysis</a></li>
<li><a href="http://blog.didierstevens.com/programs/spidermonkey/">SpiderMonkey</a></li>
</ul>
<span style="text-align:center; display: block;"><a href="http://blog.didierstevens.com/2011/05/25/malicious-pdf-analysis-workshop-screencasts/"><img src="http://img.youtube.com/vi/F3rpZT0gKXw/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2671/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2671&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/05/25/malicious-pdf-analysis-workshop-screencasts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>Another PDF Puzzle</title>
		<link>http://blog.didierstevens.com/2011/05/17/another-pdf-puzzle/</link>
		<comments>http://blog.didierstevens.com/2011/05/17/another-pdf-puzzle/#comments</comments>
		<pubDate>Tue, 17 May 2011 08:23:54 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[Puzzle]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2665</guid>
		<description><![CDATA[As I&#8217;m going to give my workshop on analysis of malicious PDFs at HiTB Amsterdam this Thursday, I thought I would share a PDF puzzle/challenge I made for BSidesLondon. You can download it here. And as there is write-up for the solution to this puzzle on a blog, I&#8217;ll link to this in the comments [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2665&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;m going to give my workshop on analysis of malicious PDFs at <a href="http://conference.hackinthebox.org/hitbsecconf2011ams/">HiTB Amsterdam</a> this Thursday, I thought I would share a PDF puzzle/challenge I made for BSidesLondon.</p>
<p>You can download it <a href="http://www.didierstevens.com/files/data/BSidesLondon2011-PDF-Challenge.zip">here</a>.</p>
<p>And as there is write-up for the solution to this puzzle on a blog, I&#8217;ll link to this in the comments next week. Since you can just Google the solution, there is no prize this time.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2665/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2665/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2665/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2665&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/05/17/another-pdf-puzzle/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>BackTrack 5 Includes PDFiD and pdf-parser</title>
		<link>http://blog.didierstevens.com/2011/05/12/backtrack-5-includes-pdfid-and-pdf-parser/</link>
		<comments>http://blog.didierstevens.com/2011/05/12/backtrack-5-includes-pdfid-and-pdf-parser/#comments</comments>
		<pubDate>Thu, 12 May 2011 21:13:16 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2659</guid>
		<description><![CDATA[You probably noticed the release of BackTrack 5. But did you notice the inclusion of my PDFiD and pdf-parser tools? You can find them under /pentest/forensics/pdfid and /pentest/forensics/pdf-parser.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2659&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You probably noticed the release of <a href="http://www.backtrack-linux.org/">BackTrack 5</a>.</p>
<p>But did you notice the inclusion of my <a href="http://blog.didierstevens.com/programs/pdf-tools/">PDFiD and pdf-parser tools</a>?</p>
<p>You can find them under /pentest/forensics/pdfid and /pentest/forensics/pdf-parser.</p>
<p><img class="alignnone size-full wp-image-2660" title="20110512-230634" src="http://didierstevens.files.wordpress.com/2011/05/20110512-230634.png" alt="" width="1024" height="768" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2659/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2659&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/05/12/backtrack-5-includes-pdfid-and-pdf-parser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/05/20110512-230634.png" medium="image">
			<media:title type="html">20110512-230634</media:title>
		</media:content>
	</item>
		<item>
		<title>HeapLocker: String Detection</title>
		<link>http://blog.didierstevens.com/2011/02/18/heaplocker-string-detection/</link>
		<comments>http://blog.didierstevens.com/2011/02/18/heaplocker-string-detection/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 12:43:55 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[My Software]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2594</guid>
		<description><![CDATA[A third protection technique I implemented in HeapLocker is string detection. When you enable string monitoring, HeapLocker will create a new thread to periodically check (every second) newly committed virtual pages that are readable and writable. When a specific string (configured in the registry) is detected inside these pages, HeapLocker will suspend all threads (except [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2594&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A third protection technique I implemented in <a href="http://blog.didierstevens.com/programs/heaplocker/">HeapLocker</a> is string detection.</p>
<p>When you enable string monitoring, HeapLocker will create a new thread to periodically check (every second) newly committed virtual pages that are readable and writable. When a specific string (configured in the registry) is detected inside these pages, HeapLocker will suspend all threads (except this monitoring thread used by HeapLocker) and warn the user that the string was detected.</p>
<p><img class="alignnone size-full wp-image-2474" title="20101205-152906" src="http://didierstevens.files.wordpress.com/2010/12/20101205-152906.png" alt="" width="459" height="188" /></p>
<p>I&#8217;ve had very good result with this technique searching for string &#8220;unescape&#8221; in Adobe Reader (the string &#8220;unescape&#8221; must be preceded by an equal sign or followed by a left parentheses). Almost all malicious PDF documents in my collection were detected by this. But like <a href="http://blog.didierstevens.com/2011/01/12/heaplocker-nop-sled-detection/">NOP-sled detection</a>, it&#8217;s not 100% reliable. Sometimes HeapLocker will scan a page before the string &#8220;unescape&#8221; has been written to that page.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2594/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2594&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/02/18/heaplocker-string-detection/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2010/12/20101205-152906.png" medium="image">
			<media:title type="html">20101205-152906</media:title>
		</media:content>
	</item>
		<item>
		<title>Quickpost: &#8220;It Does No Harm&#8230;&#8221; or Does It?</title>
		<link>http://blog.didierstevens.com/2011/01/17/quickpost-it-does-no-harm-or-does-it/</link>
		<comments>http://blog.didierstevens.com/2011/01/17/quickpost-it-does-no-harm-or-does-it/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 00:00:44 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Quickpost]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2515</guid>
		<description><![CDATA[You often read about people who use many different security applications to protect their systems. Not only anti-virus, anti-spyware, firewall, HIPS, &#8230;, but also some other tools like anti-keyloggers, &#8230; And sometimes, when they argue about the additional protection such tools bring, you can read the following: &#8220;it does no harm&#8230;&#8221;. Well, this time, I&#8217;ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2515&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You often read about people who use many different security applications to protect their systems. Not only anti-virus, anti-spyware, firewall, HIPS, &#8230;, but also some other tools like anti-keyloggers, &#8230; And sometimes, when they argue about the additional protection such tools bring, you can read the following: &#8220;it does no harm&#8230;&#8221;.</p>
<p>Well, this time, I&#8217;ve a clear example where using a supplemental security tool does harm, even when it adds real protection.</p>
<p>When installed, this tool (which I&#8217;m not going to name here because of SEO reasons), installs a <a href="http://msdn.microsoft.com/en-us/library/bb776797%28VS.85%29.aspx">Windows explorer shell extension</a> (we&#8217;ve <a href="http://blog.didierstevens.com/2009/03/04/quickpost-jbig2decode-trigger-trio/">discussed the risks of these shells before</a>). The problem with this tool&#8217;s shell extension (a DLL), is that it is compiled without the dynamic base flag set. In other words, it doesn&#8217;t support ASLR.</p>
<p>On a default Windows Vista or Windows 7 install, all the DLLs of explorer.exe support ASLR. Even if a vulnerability is found in explorer.exe, it won&#8217;t be possible to bypass DEP and ASLR by borrowing code from a DLL to build an exploit with <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Return-oriented_programming">ROP</a> gadgets. Unless you&#8217;ve installed this security tool, which adds a DLL with a fixed address to explorer.exe&#8217;s code space. Then an attacker can find ROP gadgets in this shell extension&#8217;s DLL.</p>
<p>This security tool harms the security of your system by opening it up to ROP exploits.</p>
<p>And shell extensions are not only loaded into explorer.exe. They find their way into many applications. For example, when you work with the common dialog control (like using the file open dialog)  in an application, shell extensions also get loaded into these applications. So this extension can get loaded into Adobe Reader, Microsoft Office applications, &#8230;</p>
<p>The risk this security tool brings to your system is not theoretical. There are <a href="http://www.infoworld.com/t/malware/dangerous-new-adobe-reader-zero-day-raises-the-bar-883">malicious PDFs in the wild that use ROP gadgets</a>.</p>
<hr />
<p><a href="http://blog.didierstevens.com/2007/11/01/announcing-quickposts/">Quickpost info</a></p>
<hr />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2515/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2515&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/01/17/quickpost-it-does-no-harm-or-does-it/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>HeapLocker</title>
		<link>http://blog.didierstevens.com/2010/12/06/heaplocker/</link>
		<comments>http://blog.didierstevens.com/2010/12/06/heaplocker/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 00:00:52 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[My Software]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2467</guid>
		<description><![CDATA[HeapLocker is a new tool I&#8217;m releasing to mitigate heap spray attacks. But be patient, don&#8217;t use this version (V0.0.0.2) yet for other reasons than experimenting! I&#8217;m still testing newer versions that I&#8217;ll release soon. HeapLocker uses 5 mitigation techniques. 1) Like EMET, HeapLocker will pre-allocate virtual memory pages to protect the addresses often used [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2467&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.didierstevens.com/programs/heaplocker/">HeapLocker</a> is a new tool I&#8217;m releasing to mitigate heap spray attacks. But be patient, don&#8217;t use this version (V0.0.0.2) yet for other reasons than experimenting! I&#8217;m still testing newer versions that I&#8217;ll release soon.</p>
<p>HeapLocker uses 5 mitigation techniques.</p>
<p>1) Like <a href="http://blogs.technet.com/b/srd/archive/2010/09/02/enhanced-mitigation-experience-toolkit-emet-v2-0-0.aspx">EMET</a>, HeapLocker will pre-allocate virtual memory pages to protect the addresses often used in exploits with heap sprays. HeapLocker can go one step further than EMET: it can inject its own shellcode to warn the user in case of an attack:</p>
<p><img class="alignnone size-full wp-image-2468" title="20101205-180728" src="http://didierstevens.files.wordpress.com/2010/12/20101205-180728.png" alt="" width="339" height="142" /></p>
<p>2) HeapLocker can also pre-allocate memory page zero, like EMET.</p>
<p>3) To detect heap sprays in action, HeapLocker monitors private memory usage:</p>
<p><img class="alignnone size-full wp-image-2469" title="20101205-153924" src="http://didierstevens.files.wordpress.com/2010/12/20101205-153924.png" alt="" width="363" height="175" /></p>
<p>4) HeapLocker can monitor the application&#8217;s memory for NOP-sleds:</p>
<p><img class="alignnone size-full wp-image-2473" title="20101205-155820" src="http://didierstevens.files.wordpress.com/2010/12/20101205-155820.png" alt="" width="363" height="201" /></p>
<p>5) The last technique, monitoring the application&#8217;s memory for specific strings, proved to be very successful to detect malicious PDF documents:</p>
<p><img class="alignnone size-full wp-image-2474" title="20101205-152906" src="http://didierstevens.files.wordpress.com/2010/12/20101205-152906.png" alt="" width="459" height="188" /></p>
<p>I will detail these techniques in upcoming posts.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2467/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2467&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2010/12/06/heaplocker/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2010/12/20101205-180728.png" medium="image">
			<media:title type="html">20101205-180728</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2010/12/20101205-153924.png" medium="image">
			<media:title type="html">20101205-153924</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2010/12/20101205-155820.png" medium="image">
			<media:title type="html">20101205-155820</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2010/12/20101205-152906.png" medium="image">
			<media:title type="html">20101205-152906</media:title>
		</media:content>
	</item>
		<item>
		<title>PDF, DEP, ASLR and Integrity Levels</title>
		<link>http://blog.didierstevens.com/2010/10/11/pdf-dep-aslr-and-integrity-levels/</link>
		<comments>http://blog.didierstevens.com/2010/10/11/pdf-dep-aslr-and-integrity-levels/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 08:41:13 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[PDF]]></category>
		<category><![CDATA[Vulnerabilities]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2355</guid>
		<description><![CDATA[Frequently targeted document handling applications should be coded defensively and protect themselves with Windows security features like DEP, ASLR and Integrity Levels, just to name a few. I tested a couple of PDF rendering applications: Adobe Reader, Foxit Reader and Sumatra PDF. If the application did not use DEP, ASLR or Integrity Levels, I changed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2355&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Frequently targeted document handling applications should be coded defensively and protect themselves with Windows security features like <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Data_Execution_Prevention">DEP</a>, <a href="https://secure.wikimedia.org/wikipedia/en/wiki/ASLR">ASLR</a> and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Mandatory_Integrity_Control">Integrity Levels</a>, just to name a few.</p>
<p>I tested a couple of PDF rendering applications: <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Adobe_Reader">Adobe Reader</a>, <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Foxit_reader">Foxit Reader</a> and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Sumatra_pdf">Sumatra PDF</a>. If the application did not use DEP, ASLR or Integrity Levels, I changed some settings to make the application use these features. Setting DEP and ASLR is just setting a flag in the <a href="http://msdn.microsoft.com/en-us/library/ms680339%28VS.85%29.aspx">DllCharacteristics member of the Image Optional Header structure</a>. You can do this with a hex editor, a PE-file editor, or a new tool (setdllcharacteristics) I&#8217;ll release soon. Using a Low Integrity Level is done by setting the appropriate ACE in the DACL of the application executable, see my post <a href="http://blog.didierstevens.com/2010/09/07/integrity-levels-and-dll-injection/">Integrity Levels and DLL Injection</a> for details.</p>
<p>Adobe Reader 9 uses DEP and ASLR. It does not run with a Low Integrity Level by default. Configuring acrord32.exe to run with a Low Integrity Level fails, the application doesn&#8217;t run. It is said that the upcoming Adobe Reader 10 with sandboxing technology will run at a Low Integrity Level.</p>
<p>Sumatra PDF 1.1 uses DEP and ASLR. It does not run with a Low Integrity Level by default. Configuring SumatraPDF.exe to run with a Low Integrity Level succeeds, the application runs fine. Some preferences might get lost, but they are not important to me.</p>
<p>With version 4.2 of Foxit Reader released about a week ago, Foxit Software added support for DEP and ASLR. Setting Foxit Reader to use a Low Integrity Level results in a malformed opening dialog box:</p>
<p><img class="alignnone size-full wp-image-2361" title="20101010-203940" src="http://didierstevens.files.wordpress.com/2010/10/20101010-203940.png" alt="" width="885" height="495" /></p>
<p>Apart from this, Foxit Reader appears to work fine at Low Integrity Level, but don&#8217;t be fooled. At Low Integrity Level, Foxit Reader can&#8217;t read or set its preferences. For example, you won&#8217;t be able to disable JavaScript. Even if you disabled JavaScript with Foxit Reader running at Medium Integrity Level (the default), Foxit Reader running at Low Integrity Level will enable JavaScript. So you&#8217;re better off not using a Low Integrity Level for this version. I&#8217;ve talked to Foxit Software and they&#8217;ll fix this.</p>
<p>If your favorite application isn&#8217;t discussed here, you can easily check how it performs with <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Process_Explorer">Sysinternals&#8217; Process Explorer</a>. Just add columns DEP, ASLR and Integrity to Process Explorer&#8217;s main view and run your application.</p>
<div id="_mcePaste" class="mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;">
<h3 class="storytitle"><a rel="bookmark" href="http://blog.didierstevens.com/2010/09/07/integrity-levels-and-dll-injection/">Integrity Levels and DLL Injection</a></h3>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2355/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2355&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2010/10/11/pdf-dep-aslr-and-integrity-levels/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2010/10/20101010-203940.png" medium="image">
			<media:title type="html">20101010-203940</media:title>
		</media:content>
	</item>
	</channel>
</rss>
