<?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; Chrome</title>
	<atom:link href="http://skypher.com/index.php/category/browsers/chrome-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>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>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>Cross browser parallel asynchronous XMLHttpRequests with timeout.</title>
		<link>http://skypher.com/index.php/2009/09/29/cross-browser-parallel-asynchronous-xmlhttprequests-with-timeout/</link>
		<comments>http://skypher.com/index.php/2009/09/29/cross-browser-parallel-asynchronous-xmlhttprequests-with-timeout/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 20:50:33 +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[Opera]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=232</guid>
		<description><![CDATA[<p>AsyncXMLHttpRequest is an extension of XMLHttpRequest with the following improvements:

   Uniform behavior on multiple different browsers (Apple Safari, Google Chrome, Microsoft Internet Explorer, Mozilla Firefox and Opera).
   Event handlers are called with the AsyncXMLHttpRequest object to which they apply as the first argument...]]></description>
			<content:encoded><![CDATA[<p><B>AsyncXMLHttpRequest</B> is an extension of <B>XMLHttpRequest</B> with the following improvements:<br />
<UL><br />
  <LI> Uniform behavior on multiple different browsers (Apple Safari, Google Chrome, Microsoft Internet Explorer, Mozilla Firefox and Opera).</LI><br />
  <LI> Event handlers are called with the <B>AsyncXMLHttpRequest</B> object to which they apply as the first argument. This makes it easy to have multiple parallel requests because there is no need to find out for which object an event has fired.</LI><br />
  <LI> A <B>timeout</B> attribute can be set to a number of milliseconds , the request is aborted if it didn&#8217;t complete within the given number of milliseconds after calling <B>send()</B>.</LI><br />
  <LI> A <B>timedout</B> attribute has been added that is <B>false</B> as long as the request has not been aborted because of a time out and <B>true</B> when it has.</LI><br />
  <LI> Arguments passed to the <B>open()</B> and <B>send()</B> methods are saved in attributes of the object for later reference. These attributes are: <B>method</B>, <B>url</B>, <B>user</B> and <B>password</B> for <B>open()</B> and <B>body</B> for <B>send()</B>.</LI><br />
  <LI> Three additional events have been added: <B>onload</B>, <B>onerror</B> and <B>ontimeout</B>. These are called when the <B>readyState</B> has changed to 4 and the request has, respectively, succeeded (no timeout, <B>status</B> == 2xx), failed (no timeout, <B>status</B> != 2xx) or has timed out.</LI><br />
</UL></p>
<p><BIG><B> Cross Browser Uniform Behavior </B></BIG><br />
To make <B>AsyncXMLHttpRequest</B> work uniformly across different browsers, it catches and handles some exceptions that are throw in some browsers, but not in others. Specifically, Firefox, MSIE and Opera throw exceptions when calling the <B>open()</B> and <B>send()</B> methods for certain invalid or cross-origin urls. If any of these exceptions are caught and handled, the request will fail similar to other browser by having <B>status</B> == 0 after the <B>readyState</B> has changed to 4.</p>
<p><BIG><B> Parallel Requests </B></BIG><br />
To allow any number of parallel requests to take place and still keep track of which request is in what state, all event handlers are passed the <B>AsyncXMLHttpRequest</B> object to which they apply. In other words, when a certain <B>AsyncXMLHttpRequest</B> object is done (<B>readyState</B> == 4), the <B>onreadystatechange</B> event handler is called with the <B>AsyncXMLHttpRequest</B> object to which it applies as the first argument of the call.</p>
<p><BIG><B> Source </B></BIG><br />
Available through <A href="http://code.google.com/p/asyncxmlhttprequest/">Google code</A>.</p>
<p><BIG><B> Example </B></BIG><br />
This example shows that you can create any number of parallel requests (the browser or OS may have a built in limit) without having to keep track of which object an event is firing for because it is passes as an argument to the event handler:</p>
<p><CODE><br />
&lt;HTML&gt;<br />
  &lt;BODY onload=&#8221;go()&#8221;&gt;&lt;/BODY&gt;<br />
  &lt;SCRIPT src=&#8221;AsyncXMLHttpRequest.js&#8221;&gt;&lt;/SCRIPT&gt;<br />
  &lt;SCRIPT&gt;<br />
    function go() {<br />
      for (var i = 0; i &lt; 30; i++) {<br />
        request(location + &#8220;?&#8221; + i);<br />
      }<br />
    }<br />
    function request(url) {<br />
      span = document.createElement(&#8220;DIV&#8221;);<br />
      document.body.appendChild(span);<br />
      span.innerHTML = &#8220;&lt;B&gt;&#8221; + url + &#8220;&lt;/B&gt;&#8221;;<br />
      xmlhttp = new AsyncXMLHttpRequest();<br />
      xmlhttp.span = span;<br />
      xmlhttp.onload = load;<br />
      xmlhttp.onerror = error;<br />
      xmlhttp.ontimeout = timeout;<br />
      xmlhttp.timeout = 1000;<br />
      xmlhttp.onreadystatechange = rs;<br />
      xmlhttp.open(&#8220;GET&#8221;, url);<br />
      xmlhttp.send();<br />
    }<br />
    function rs(xmlhttp) {<br />
      xmlhttp.span.innerHTML += &#8221; rs:&#8221; + xmlhttp.readyState;<br />
    }<br />
    function load(xmlhttp) {<br />
      xmlhttp.span.innerHTML += &#8221; load:&#8221; + xmlhttp.status;<br />
    }<br />
    function error(xmlhttp) {<br />
      xmlhttp.span.innerHTML += &#8221; error:&#8221; + xmlhttp.status;<br />
    }<br />
    function timeout(xmlhttp) {<br />
      xmlhttp.span.innerHTML += &#8221; timeout:&#8221; + xmlhttp.status;<br />
    }<br />
  &lt;/SCRIPT&gt;<br />
&lt;/HTML&gt;<br />
&nbsp;<br />
</CODE></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2009/09/29/cross-browser-parallel-asynchronous-xmlhttprequests-with-timeout/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Security contacts</title>
		<link>http://skypher.com/index.php/2008/12/10/security-contacts/</link>
		<comments>http://skypher.com/index.php/2008/12/10/security-contacts/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 17:52:49 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[contact information]]></category>
		<category><![CDATA[security team]]></category>
		<category><![CDATA[software vendors]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=78</guid>
		<description><![CDATA[<p>I&#8217;ve created a table with contact information for security teams for mayor software vendors. I&#8217;m hoping you&#8217;ll find the information useful when you&#8217;re trying to report a vulnerability...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created a table with contact information for security teams for mayor software vendors. I&#8217;m hoping you&#8217;ll find the information useful when you&#8217;re trying to report a vulnerability. If you have any more contact information or find an error in the list, <a title="mail me" href="mailto:berendjanwever@gmail.com" target="_blank">let me know</a>.</p>
<p>The list is here:<br />
<span><a href="http://skypher.com/wiki/index.php?title=List_of_security_teams_contact_information">http://skypher.com/wiki/index.php?title=List_of_security_teams_contact_information</a><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2008/12/10/security-contacts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome released</title>
		<link>http://skypher.com/index.php/2008/09/04/google-chrome-released/</link>
		<comments>http://skypher.com/index.php/2008/09/04/google-chrome-released/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 11:42:22 +0000</pubDate>
		<dc:creator>SkyLined</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>

		<guid isPermaLink="false">http://skypher.com/?p=41</guid>
		<description><![CDATA[<p>Finally I can talk about what I&#8217;ve been doing since I left Microsoft: I&#8217;ve been working on security for <a title="Google Chrome download page" href="http://www.google.com/chrome" target="_blank">Google Chrome</a>; trying to find as many vulnerabilities before we shipped the beta. In the process I&#8217;ve found plenty of bugs in other browsers as well  ...]]></description>
			<content:encoded><![CDATA[<p>Finally I can talk about what I&#8217;ve been doing since I left Microsoft: I&#8217;ve been working on security for <a title="Google Chrome download page" href="http://www.google.com/chrome" target="_blank">Google Chrome</a>; trying to find as many vulnerabilities before we shipped the beta. In the process I&#8217;ve found plenty of bugs in other browsers as well <img src='http://skypher.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . I&#8217;m looking forward to the first real externally found security vulnerability; there have been some reports about crashes but nothing that allows an attacker to completely compromise the machine&#8230; we&#8217;ll see what happens!</p>
]]></content:encoded>
			<wfw:commentRss>http://skypher.com/index.php/2008/09/04/google-chrome-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
