<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Defeating the Matasano C++ Challenge with ASLR enabled</title>
	<atom:link href="http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/feed/" rel="self" type="application/rss+xml" />
	<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/</link>
	<description>technical ramblings from a wanna-be unix dinosaur</description>
	<lastBuildDate>Wed, 21 Jul 2010 07:31:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Joe Damato (ice799)</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-517</link>
		<dc:creator>Joe Damato (ice799)</dc:creator>
		<pubDate>Tue, 24 Nov 2009 04:56:11 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-517</guid>
		<description>You are correct. o[2] takes up space outside of the allocated range (and is &quot;laying on top&quot; of the imetad). Don&#039;t forget to include glibc malloc metadata overhead in your calculations, too :)</description>
		<content:encoded><![CDATA[<p>You are correct. o[2] takes up space outside of the allocated range (and is &#8220;laying on top&#8221; of the imetad). Don&#39;t forget to include glibc malloc metadata overhead in your calculations, too :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ice799</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-463</link>
		<dc:creator>ice799</dc:creator>
		<pubDate>Mon, 23 Nov 2009 20:56:11 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-463</guid>
		<description>You are correct. o[2] takes up space outside of the allocated range (and is &quot;laying on top&quot; of the imetad). Don&#039;t forget to include glibc malloc metadata overhead in your calculations, too :)</description>
		<content:encoded><![CDATA[<p>You are correct. o[2] takes up space outside of the allocated range (and is &#8220;laying on top&#8221; of the imetad). Don&#39;t forget to include glibc malloc metadata overhead in your calculations, too :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-455</link>
		<dc:creator>Roman</dc:creator>
		<pubDate>Sun, 15 Nov 2009 04:53:42 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-455</guid>
		<description>I think it&#039;s because 20 is actually the number of bytes getting allocated, not the number of object instances. So, the first object &#039;o[0]&#039; takes up bytes 1-12, the second object &#039;o[1]&#039; takes up bytes 13-24, and the third object &#039;o[2]&#039; takes up bytes 25-36 which are already outside the allocated range. &lt;br&gt;&lt;br&gt;But, if the allocation goes that way I described it, wouldn&#039;t this produce a 4 byte offset? Wouldn&#039;t an &#039;imetad&#039; structure be constructed at byte 21, and o[3] at byte 25, and then the &#039;type&#039; and &#039;callback&#039; which are both offset by 4 bytes wouldn&#039;t line up?&lt;br&gt;&lt;br&gt;I&#039;m think I&#039;m wrong somewhere in my understanding, if anyone could please correct me.</description>
		<content:encoded><![CDATA[<p>I think it&#39;s because 20 is actually the number of bytes getting allocated, not the number of object instances. So, the first object &#39;o[0]&#39; takes up bytes 1-12, the second object &#39;o[1]&#39; takes up bytes 13-24, and the third object &#39;o[2]&#39; takes up bytes 25-36 which are already outside the allocated range. </p>
<p>But, if the allocation goes that way I described it, wouldn&#39;t this produce a 4 byte offset? Wouldn&#39;t an &#39;imetad&#39; structure be constructed at byte 21, and o[3] at byte 25, and then the &#39;type&#39; and &#39;callback&#39; which are both offset by 4 bytes wouldn&#39;t line up?</p>
<p>I&#39;m think I&#39;m wrong somewhere in my understanding, if anyone could please correct me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anthony Lineberry</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-452</link>
		<dc:creator>Anthony Lineberry</dc:creator>
		<pubDate>Wed, 21 Oct 2009 05:00:36 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-452</guid>
		<description>Agreed, but I know that the C spec for allocating memory states something like &quot;no less than the specified size requested&quot;, or something along those lines. Not sure about C++, though. Either way, I still view this as a compiler bug, as its not quite the same as a explicitly calling malloc(num_of_objs * sizeof(obj)) in C, where the programmer should most definitely know to use a sanity check. Its happening under the hood, and the &quot; * sizeof(obj)&quot; is sort of internal. But yes, the programmer should use a sanity check. But ultimately I think this should be addressed elsewhere. Could be argued either way though.</description>
		<content:encoded><![CDATA[<p>Agreed, but I know that the C spec for allocating memory states something like &#8220;no less than the specified size requested&#8221;, or something along those lines. Not sure about C++, though. Either way, I still view this as a compiler bug, as its not quite the same as a explicitly calling malloc(num_of_objs * sizeof(obj)) in C, where the programmer should most definitely know to use a sanity check. Its happening under the hood, and the &#8221; * sizeof(obj)&#8221; is sort of internal. But yes, the programmer should use a sanity check. But ultimately I think this should be addressed elsewhere. Could be argued either way though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harry</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-450</link>
		<dc:creator>Harry</dc:creator>
		<pubDate>Mon, 19 Oct 2009 15:06:40 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-450</guid>
		<description>Hi. Really well explained but one thing still not clear. You wrote, when i = 2, o[i] will be pointing at the struct imetad object on the heap. How did you come to the the number 2 ? I thought that if you are passing 20 to the new operator, the first 20 objects (objs) must be valid and their VAs are sequential. &quot;i&quot; should be more than number 20 in my opinion. Could you please explain?</description>
		<content:encoded><![CDATA[<p>Hi. Really well explained but one thing still not clear. You wrote, when i = 2, o[i] will be pointing at the struct imetad object on the heap. How did you come to the the number 2 ? I thought that if you are passing 20 to the new operator, the first 20 objects (objs) must be valid and their VAs are sequential. &#8220;i&#8221; should be more than number 20 in my opinion. Could you please explain?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ice799</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-449</link>
		<dc:creator>ice799</dc:creator>
		<pubDate>Mon, 19 Oct 2009 00:54:16 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-449</guid>
		<description>&lt;a href=&quot;http://www.deanlee.cn/wordpress/google-code-prettify-for-wordpress/&quot; rel=&quot;nofollow&quot;&gt;http://www.deanlee.cn/wordpress/google-code-pre...&lt;/a&gt; is the plugin I use. I hacked up the CSS a bit to get the color scheme you see above. Thanks for reading!</description>
		<content:encoded><![CDATA[<p><a href="http://www.deanlee.cn/wordpress/google-code-prettify-for-wordpress/" rel="nofollow"></a><a href="http://www.deanlee.cn/wordpress/google-code-pre.." rel="nofollow">http://www.deanlee.cn/wordpress/google-code-pre..</a>. is the plugin I use. I hacked up the CSS a bit to get the color scheme you see above. Thanks for reading!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcos Álvares</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-448</link>
		<dc:creator>Marcos Álvares</dc:creator>
		<pubDate>Sun, 18 Oct 2009 23:56:17 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-448</guid>
		<description>Great job Joe !   So ... i have one non technical question: what is this wordpress plugin to put a piece of code with syntax highlight?    &lt;br&gt;&lt;br&gt;thank you.</description>
		<content:encoded><![CDATA[<p>Great job Joe !   So &#8230; i have one non technical question: what is this wordpress plugin to put a piece of code with syntax highlight?    </p>
<p>thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: h4&#215;0r weekly &#171; Fairweatherhero&#39;s Blog</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-446</link>
		<dc:creator>h4&#215;0r weekly &#171; Fairweatherhero&#39;s Blog</dc:creator>
		<pubDate>Sat, 17 Oct 2009 17:05:02 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-446</guid>
		<description>[...] h4&#215;0r&#160;weekly  One writeup of the Matasano challenge. http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/ [...]</description>
		<content:encoded><![CDATA[<p>[...] h4&#215;0r&nbsp;weekly  One writeup of the Matasano challenge. <a href="http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/" rel="nofollow">http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin W.</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-445</link>
		<dc:creator>Justin W.</dc:creator>
		<pubDate>Sat, 17 Oct 2009 08:09:52 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-445</guid>
		<description>A beautifully disected hack.  Keep up the blogging!&lt;br&gt;&lt;br&gt;Perhaps you might be able to apply this to some reasonably popular open source apps?</description>
		<content:encoded><![CDATA[<p>A beautifully disected hack.  Keep up the blogging!</p>
<p>Perhaps you might be able to apply this to some reasonably popular open source apps?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ice799</title>
		<link>http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr-enabled/comment-page-1/#comment-443</link>
		<dc:creator>ice799</dc:creator>
		<pubDate>Sat, 17 Oct 2009 05:50:05 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=1152#comment-443</guid>
		<description>Nope. The programmer should have used a sane check before calling new. That would have prevented this bug from happening. Thanks for reading.</description>
		<content:encoded><![CDATA[<p>Nope. The programmer should have used a sane check before calling new. That would have prevented this bug from happening. Thanks for reading.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
