<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Skypher &#187; Browsers</title>
	<atom:link href="http://skypher.com/index.php/category/browsers/feed/" rel="self" type="application/rss+xml" />
	<link>http://skypher.com</link>
	<description>The blog for absolutely nothing!</description>
	<lastBuildDate>Fri, 16 Jul 2010 08:26:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>MSIE 6,7, 8 &amp; 9 insertAdjacentElement NULL ptr</title>
		<link>http://skypher.com/index.php/2010/04/12/msie-67-8-9-insertadjacentelement-null-ptr/</link>
		<comments>http://skypher.com/index.php/2010/04/12/msie-67-8-9-insertadjacentelement-null-ptr/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 12:03:10 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Repro]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=459</guid>
		<description><![CDATA[<p>  img=new Image();
  img.insertAdjacentElement("afterEnd",img);</p>
<p>More details here: <a href="http://code.google.com/p/skylined/issues/detail?id=15">http://code.google.com/p/skylined/issues/detail?id=15</a></p>
]]></description>
			<content:encoded><![CDATA[<p><code>  img=new Image();<br />
  img.insertAdjacentElement("afterEnd",img);</code></p>
<p>More details here: <a href="http://code.google.com/p/skylined/issues/detail?id=15">http://code.google.com/p/skylined/issues/detail?id=15</a></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/04/12/msie-67-8-9-insertadjacentelement-null-ptr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple QuickTime memory corruption when loading BMP file</title>
		<link>http://skypher.com/index.php/2010/04/12/apple-quicktime-memory-corruption-when-loading-bmp-file/</link>
		<comments>http://skypher.com/index.php/2010/04/12/apple-quicktime-memory-corruption-when-loading-bmp-file/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 11:53:01 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[PoC]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=455</guid>
		<description><![CDATA[<p>From <a href="http://support.apple.com/kb/HT4104">http://support.apple.com/kb/HT4104</a>:
CVE-ID: CVE-2010-0536</p>
<p>Impact: Opening a maliciously crafted BMP image may lead to an unexpected application termination or arbitrary code execution</p>
<p>Description: A memory corruption issue exists in the handling of BMP images...]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://support.apple.com/kb/HT4104">http://support.apple.com/kb/HT4104</a>:<br />
CVE-ID: CVE-2010-0536</p>
<p>Impact: Opening a maliciously crafted BMP image may lead to an unexpected application termination or arbitrary code execution</p>
<p>Description: A memory corruption issue exists in the handling of BMP images. Opening a maliciously crafted BMP image may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue by performing additional validation of BMP images.</p>
<p>More details here:<br />
<a href="http://code.google.com/p/skylined/issues/detail?id=11">http://code.google.com/p/skylined/issues/detail?id=11</a></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/04/12/apple-quicktime-memory-corruption-when-loading-bmp-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSIE 8,9 (X)HTML stack exhaustion</title>
		<link>http://skypher.com/index.php/2010/04/12/msie-89-xhtml-stack-exhaustion/</link>
		<comments>http://skypher.com/index.php/2010/04/12/msie-89-xhtml-stack-exhaustion/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 11:45:23 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Repro]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=452</guid>
		<description><![CDATA[<p>Many nested tags in MSIE can cause stack exhaustion, which can crash the tab and even the entire browser.</p>
<p>&#60;?xml version="1.0" encoding="UTF-8"?&#62;
&#60;!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&#62;
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;
  &#60;address/&#62;&#60;address/&#62;&#60;address/&#62;&#60;address/&#62;&#60;address/&#62;&#60;address/&#62;......]]></description>
			<content:encoded><![CDATA[<p>Many nested tags in MSIE can cause stack exhaustion, which can crash the tab and even the entire browser.</p>
<p><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br />
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
  &lt;address/&gt;&lt;address/&gt;&lt;address/&gt;&lt;address/&gt;&lt;address/&gt;&lt;address/&gt;.... etc...<br />
&lt;/html&gt;</code></p>
<p>More details here: <a href="http://code.google.com/p/skylined/issues/detail?id=14">http://code.google.com/p/skylined/issues/detail?id=14</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/04/12/msie-89-xhtml-stack-exhaustion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSIE 9 regular expression related crashes</title>
		<link>http://skypher.com/index.php/2010/04/12/msie-9-regular-expression-related-crashes/</link>
		<comments>http://skypher.com/index.php/2010/04/12/msie-9-regular-expression-related-crashes/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 11:32:07 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PoC]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=446</guid>
		<description><![CDATA[<p>The following code snippets will crash MSIE 9 platform review...]]></description>
			<content:encoded><![CDATA[<p>The following code snippets will crash MSIE 9 platform review. Because this is not a stable release, but a preview of a product in development, it is expected to have a few bugs here and there &#8211; so don&#8217;t go browsing the web with it <img src='http://skypher.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><code>&lt;SCRIPT&gt;/+&lt;/SCRIPT&gt;<br />
&lt;SCRIPT&gt;/(&lt;/SCRIPT&gt;<br />
&lt;SCRIPT&gt;/[B-A]/;&lt;/SCRIPT&gt;</code></p>
<p>More details here: <a href="http://code.google.com/p/skylined/issues/detail?id=13">http://code.google.com/p/skylined/issues/detail?id=13</a></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/04/12/msie-9-regular-expression-related-crashes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Windows .ANI file BITMAPINFOHEADER.biClrUsed bounds check missing</title>
		<link>http://skypher.com/index.php/2010/03/08/ani-file-bitmapinfoheader-biclrused-bounds-check-missing/</link>
		<comments>http://skypher.com/index.php/2010/03/08/ani-file-bitmapinfoheader-biclrused-bounds-check-missing/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 09:45:20 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Repro]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=430</guid>
		<description><![CDATA[<p>Quoting <a href="http://msdn.microsoft.com/en-us/library/aa930622.aspx">http://msdn.microsoft.com/en-us/library/aa930622.aspx</a>:
typedef struct tagBITMAPINFOHEADER {
  DWORD biSize;
  LONG biWidth;
  LONG biHeight;
  WORD biPlanes;
  WORD biBitCount
  DWORD biCompression;
  DWORD biSizeImage;
  LONG biXPelsPerMeter;
  LONG biYPelsPerMeter;
  DWORD biClrUsed;
  DWORD biClrImportant;
} BITMAPINFOHEADER;

&#8220;If the bitmap is a packed bitmap (a bitmap in which the bitmap array immediately follows the BITMAPINFO header and is referenced by a single pointer), the biClrUsed member must be either zero or the actual size of the color table.&#8221;</p>
<p>ANI files stores each frame of the animated cursor as a packed bitmap inside the ANI file...]]></description>
			<content:encoded><![CDATA[<p>Quoting <a href="http://msdn.microsoft.com/en-us/library/aa930622.aspx">http://msdn.microsoft.com/en-us/library/aa930622.aspx</a>:<br />
<CODE>typedef struct tagBITMAPINFOHEADER {<br />
  DWORD biSize;<br />
  LONG biWidth;<br />
  LONG biHeight;<br />
  WORD biPlanes;<br />
  WORD biBitCount<br />
  DWORD biCompression;<br />
  DWORD biSizeImage;<br />
  LONG biXPelsPerMeter;<br />
  LONG biYPelsPerMeter;<br />
  DWORD biClrUsed;<br />
  DWORD biClrImportant;<br />
} BITMAPINFOHEADER;<br />
</CODE><br />
<em>&#8220;If the bitmap is a packed bitmap (a bitmap in which the bitmap array immediately follows the BITMAPINFO header and is referenced by a single pointer), the biClrUsed member must be either zero or the actual size of the color table.&#8221;</em></p>
<p>ANI files stores each frame of the animated cursor as a packed bitmap inside the ANI file. The DWORD <TT>biClrUsed</TT> member of the <TT>BITMAPINFOHEADER</TT> of each such bitmap can be used to cause the Windows API functions to allocate any number of bytes and attempt to copy a similarly large ammount of  data from the file in memory to the newly allocated memory. The code does not check that such a large ammount of data is available and this can cause the copy operation to read beyong the bounds of the memory allocated for the ANI file. This problem affects Windows XP and Vista but not the newer Windows 7.</p>
<p>This can cause a read access violation if a small ANI file specifies a large value for <TT>biClrUsed</TT>: the memory copy operation runs beyond the memory allocated for the file data and into unallocated memory. MSIE is an example of an application that uses these Windows APIs to read ANI files, it is also the application that this problem was first detect in. However, there could be other applications that use these API functions.</p>
<p>In MSIE, this read AV is handled by an exception handler, so it does not cause the browser to crash. The read access violation is therefore only visible if a debugger is attached to MSIE. However, this problem can also be used to cause the application to allocate excessive amounts of memory and become unresponsive, using 100% CPU. For MSIE, this seems to affect the x86 version only and not the x64 version. I cannot explain, not have I investigated the exact cause of this difference between these two versions.</p>
<p>Microsoft has confirmed the issue and based on the impact has decided to fix this in Service Packs for the various versions of Windows affected. They cannot provide release estimates for these Service Packs at this time. If you maintain an application that depends on the Windows APIs to load ANI files, you may want to investigate how this issue affects your application and do additional checks on the contents of ANI files before calling vulnerable Windows API functions.</p>
<p>Full details, including case history and repro for this particular bug can be found <a href="http://code.google.com/p/skylined/issues/detail?id=3">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/03/08/ani-file-bitmapinfoheader-biclrused-bounds-check-missing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASPsh &#8211; A remote shell written in ASP.</title>
		<link>http://skypher.com/index.php/2010/03/04/aspsh-a-remote-shell-written-in-asp/</link>
		<comments>http://skypher.com/index.php/2010/03/04/aspsh-a-remote-shell-written-in-asp/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 14:37:31 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[HTTP servers]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming Languages]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=421</guid>
		<description><![CDATA[<p>Today I am releasing another old project called <a href="http://code.google.com/p/aspsh/">ASPsh</a>. The goal of this project was to create an ASP page that can be used on a server to provide a &#8220;command line shell&#8221;-like experience when opening the page in a webbrowser...]]></description>
			<content:encoded><![CDATA[<p>Today I am releasing another old project called <a href="http://code.google.com/p/aspsh/">ASPsh</a>. The goal of this project was to create an ASP page that can be used on a server to provide a &#8220;command line shell&#8221;-like experience when opening the page in a webbrowser. It also allows up- and downloading of files to and from the server. I hope the screen shot below explains what that means.</p>
<p>Source code can be found <a href="http://aspsh.googlecode.com/svn/trunk/index.asp">here</a>.</p>
<p><IMG width=500 src="http://aspsh.googlecode.com/svn/trunk/ASPsh.jpg"></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/03/04/aspsh-a-remote-shell-written-in-asp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Internet Exploiter 2 &#8211; bypassing DEP</title>
		<link>http://skypher.com/index.php/2010/03/01/internet-exploiter-2-dep/</link>
		<comments>http://skypher.com/index.php/2010/03/01/internet-exploiter-2-dep/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 15:22:53 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PoC]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=412</guid>
		<description><![CDATA[<p>In 2005 I released <a href="http://skypher.com/wiki/index.php/Www.edup.tudelft.nl/~bjwever/exploits/InternetExploiter2.zip">Internet Exploiter 2</a>, which helped make <a href="http://en.wikipedia.org/wiki/Heap_spraying">heap spraying</a> popular in browser exploits...]]></description>
			<content:encoded><![CDATA[<p>In 2005 I released <a href="http://skypher.com/wiki/index.php/Www.edup.tudelft.nl/~bjwever/exploits/InternetExploiter2.zip">Internet Exploiter 2</a>, which helped make <a href="http://en.wikipedia.org/wiki/Heap_spraying">heap spraying</a> popular in browser exploits. The exploit I released would not work if you had <a href="http://en.wikipedia.org/wiki/Data_Execution_Prevention">DEP</a> turned on for <a href="http://en.wikipedia.org/wiki/MSIE">MSIE</a>. However, I also created a version of the exploit that used <a href="http://en.wikipedia.org/wiki/Ret-into-libc">ret-into-libc</a> to bypass DEP, which I never released until today.</p>
<p>I am releasing this because I feel it helps explain why <a href="http://en.wikipedia.org/wiki/Address_space_layout_randomization">ASLR</a>+DEP are not a mitigation to put a lot of faith in, especially on <a href="http://en.wikipedia.org/wiki/X86">x86</a> platforms. 32-bits does not provide sufficient <a href="http://en.wikipedia.org/wiki/Address_space">address space</a> to randomize memory to the point where guessing addresses becomes impractical, considering heap spraying can allow an attacker to allocate memory across a considerable chunk of the address space and in a highly predictable location. The code in this exploit shows how to abuse this to perform a ret-into-libc attack when you can predict or, through <a href="http://en.wikipedia.org/wiki/Information_leakage">information leakage</a>, determine the location of modules (<a href="http://en.wikipedia.org/wiki/Executable">exe</a>, <a href="http://en.wikipedia.org/wiki/Dynamic-link_library">dll</a>) in the process&#8217; memory.</p>
<p>The source code, which has inline documentation, can be found <a href="http://skypher.com/SkyLined/download/exploits/Internet%20Exploiter2-DEP.zip">here</a>.</p>
<p><B>***UPDATE***</B> It appears that some people need a little more detail to figure out what is going on:<br />
<UL><br />
    <LI>this exploit targets <A href="http://skypher.com/wiki/index.php?title=Www.edup.tudelft.nl/~bjwever/advisory_msie_R6025.html.php">a bug that was already fixed in MSIE 6.0 in 2005</A>,</LI><br />
    <LI>This exploit <a href="http://blogs.zdnet.com/security/?p=5573">does not defeat ASLR</a>, it only shows how to defeat DEP if ASLR is disabled or if you can bypass it.</LI><br />
</UL></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/03/01/internet-exploiter-2-dep/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Microsoft Internet Explorer 6.0/7.0 NULL pointer crashes</title>
		<link>http://skypher.com/index.php/2010/01/20/microsoft-internet-explorer-6-07-0-null-pointer-crashes/</link>
		<comments>http://skypher.com/index.php/2010/01/20/microsoft-internet-explorer-6-07-0-null-pointer-crashes/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 10:55:37 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Repro]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=297</guid>
		<description><![CDATA[<p>Two crashes caused by NULL pointer dereferences have been discovered in MSIE 6.0/7.0. These issues do not affect MSIE 8.0...]]></description>
			<content:encoded><![CDATA[<p>Two crashes caused by NULL pointer dereferences have been discovered in MSIE 6.0/7.0. These issues do not affect MSIE 8.0.<br />
<UL><br />
  <LI><CODE><A href="http://skypher.com/SkyLined/Repro/MSIE/MSRC%209604%20-%20document.createElement(%22li%22).value=3/repro.html">document.createElement(&#8220;li&#8221;).value=3</A></CODE></LI><br />
  <LI><CODE><A href="http://skypher.com/SkyLined/Repro/MSIE/MSRC%209604%20-%20document.createElement(%22html%22).outerHTML/repro.html">document.createElement(&#8220;html&#8221;).outerHTML</A></CODE></LI><br />
</UL></p>
<p>I&#8217;ve recently started using Google Code for tracking bugs: an editted version of the history of this bug can be found <A href="http://code.google.com/p/skylined/issues/detail?id=4">here</A>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/01/20/microsoft-internet-explorer-6-07-0-null-pointer-crashes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advances in heap spraying #1: when size matters.</title>
		<link>http://skypher.com/index.php/2010/01/18/advances-in-heap-spraying-size/</link>
		<comments>http://skypher.com/index.php/2010/01/18/advances-in-heap-spraying-size/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 15:08:02 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=146</guid>
		<description><![CDATA[<p><a href="http://skypher.com/SkyLined/heap_spray/small_heap_spray_generator.html">http://skypher.com/SkyLined/heap_spray/small_heap_spray_generator.html</a></p>
<p>I&#8217;ve created a <a href="http://en.wikipedia.org/wiki/Heap_spraying">heap-spray</a> generator...]]></description>
			<content:encoded><![CDATA[<p><a href="http://skypher.com/SkyLined/heap_spray/small_heap_spray_generator.html">http://skypher.com/SkyLined/heap_spray/small_heap_spray_generator.html</a></p>
<p>I&#8217;ve created a <a href="http://en.wikipedia.org/wiki/Heap_spraying">heap-spray</a> generator. It generates a small piece of JavaScript that sprays the heap using the following customizable settings:<br />
<UL><br />
  <LI><strong>Shellcode</strong>, easy to enter using hexadecimal byte values (see also <a href="http://code.google.com/p/beta3/">BETA3</a>).</LI><br />
  <LI><strong>Target address</strong> and <strong>block size</strong>.</LI><br />
  <LI><strong>heap header size</strong> based on target browsers or manual value.</LI><br />
</UL><br />
The resulting code is smaller than any heap-spray I&#8217;ve seen in the wild:<br />
<UL><br />
  <LI>The heap-spray code itself is <strong>just over 70 bytes</strong>.</LI><br />
  <LI>The shellcode can be encoded using a <strong>custom-build 7-bit encoding</strong>.</LI><br />
</UL><br />
Most exploits contain shellcode encoded as &#8220;\uXXXX&#8221; or even &#8220;%uXXXX&#8221;. The resulting encoded shellcode data contains 3 bytes for every byte in the original shellcode. Because this is very wasteful, it is quite easy to improve on this by creating a custom en-/decoder. The &#8220;7-bit&#8221; encoding I created converts the 16-bit characters in the unicode string that contains the shellcode to a series of 7-bit values, which are encoded into <a href="http://en.wikipedia.org/wiki/ISO/IEC_8859-1">latin-1</a> characters. The resulting encoded shellcode data contains only 1.125 bytes for every byte in the shellcode, a saving of almost 63% compared to conventional encodings.<br />
The heap-spray will of course need some additional code to decode the shellcode, so the combined code+data will only be smaller for large enough shellcodes. Because my decoder is also rather small (just under 130 bytes), the break-even point is just under 70 bytes of shellcode. For a a 100 byte shellcode, you save about 50 bytes and for a 200 bytes shellcode, you save about 200 bytes!</p>
<p>You can try out the heap-spray generator <a href="http://skypher.com/SkyLined/heap_spray/small_heap_spray_generator.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2010/01/18/advances-in-heap-spraying-size/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Where&#8217;s Waldo SkyLined?</title>
		<link>http://skypher.com/index.php/2009/10/21/wheres-skylined/</link>
		<comments>http://skypher.com/index.php/2009/10/21/wheres-skylined/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 12:52:07 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Latitude]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=275</guid>
		<description><![CDATA[<p><A href="http://www.google.com/latitude/apps/badge/api?user=7146674808472318964&#038;type=iframe&#038;maptype=hybrid">
</A>
</p>
]]></description>
			<content:encoded><![CDATA[<p><A href="http://www.google.com/latitude/apps/badge/api?user=7146674808472318964&#038;type=iframe&#038;maptype=hybrid"><br />
<iframe src="http://www.google.com/latitude/apps/badge/api?user=7146674808472318964&#038;type=iframe&#038;maptype=hybrid" width="100%" height="300" frameborder="0"></iframe></A><br />
<!-- Note to self: Disable @ http://www.google.com/latitude/apps/badge --></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2009/10/21/wheres-skylined/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
