<?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>ReversingLabs &#124; Blog &#187; OllyDBG</title>
	<atom:link href="http://blog.reversinglabs.com/tag/ollydbg/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.reversinglabs.com</link>
	<description>Everything in reverse...</description>
	<lastBuildDate>Sat, 02 Jul 2011 10:53:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Reverse engineering self defense</title>
		<link>http://blog.reversinglabs.com/2010/06/reversing-self-defense/</link>
		<comments>http://blog.reversinglabs.com/2010/06/reversing-self-defense/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 00:54:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reversing]]></category>
		<category><![CDATA[NoobyProtect]]></category>
		<category><![CDATA[OllyDBG]]></category>

		<guid isPermaLink="false">http://blog.reversinglabs.com/?p=688</guid>
		<description><![CDATA[If you remember not so long ago we wrote about minor inconveniences we encountered while working with OllyDBG. Today we return to that subject with challenges we face when reversing modern software protectors. One such protection is SafeEngine or NoobyProtect, which uses a simple portable executable malformation in order to crash OllyDBG. Even though this [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><a href="http://www.youtube.com/watch?v=-3nwk9DPsN4"><img src="http://blog.reversinglabs.com/wp-content/plugins/youtube-with-style/inc/img.php?v=-3nwk9DPsN4"></a></div>
<p style="text-align: justify;">If you remember not so long ago we wrote about <a href="http://blog.reversinglabs.com/2010/02/minor-inconvenience/">minor inconveniences</a> we encountered while working with OllyDBG. Today we return to that subject with challenges we face when reversing modern software protectors. One such protection is <a href="http://www.safengine.com/" target="_blank">SafeEngine</a> or NoobyProtect, which uses a simple portable executable malformation in order to crash <a href="http://www.ollydbg.de/" target="_blank">OllyDBG</a>. Even though this crash is limited to old OllyDBG versions, it is interesting for us nevertheless. The crash itself wouldn't be interesting if, in fact, the application didn't then operate normally. But it does, which makes it even more sinister. This leads us to conclude that this portable executable malformation is either ignored by the system or irrelevant to the system loader ... but not to our debugger. So, where's the trick? What does it apply to?</p>
<p style="text-align: justify;">If you look at the import table you will see that the first entry is rather unusual. Its name in LordPE is "kernel32...". Which could be fine since the trailing ".dll" is optional. If only it wasn't for those three little dots. Those dots represent multiple new lines after the name. In fact if we open the file with a hex editor we see that there are exactly 0x100 bytes following the first import library name. And in addition, there are 0x3000 bytes that follow the name of the first imported function in the first library trunk. These extra bytes seem to be too large for Olly to handle, overwriting some memory and ultimately making it crash. Since EIP is rewritten to 0x0d0a0d0a this could be an exploitable attack vector. Now we knew about this kind of attack for a while, having first seen it as an attack via too long names in the export table. But this is a bigger issue, since the <em>import</em> table is affected.</p>
<p style="text-align: justify;">If we investigate further we find an even more interesting issue that arises because of the way Windows processes the import table. If the import address table pointer inside the image import descriptor isn't nil and if it points to a sequence of eight zero bytes, the import entry will be ignored completely. Also, if the import lookup table pointer is valid and it points to at least one valid import address pointer, tools such as LordPE will read that data and display a list of functions that never get imported. This means that Windows will ignore the image import descriptor entry completely, which makes the dynamic link library name irrelevant as it will never reach the loading stage. This enables anyone to craft a file that only looks like its importing a specified library which may or may not be present on the system. And that can create confusion about which library is actually needed and which isn't.</p>
<p style="text-align: justify;">This isn't something that NoobyProtect does - but it could if it wanted to. Working around our crash problem is as easy as updating to OllyDBG 2.0 or patching the broken import table. Until next week...</p>
<p style="text-align: center;"><a href="http://blog.reversinglabs.com/wp-content/uploads/2010/06/sampleFile.zip">sampleFile</a><br />
(package contains a harmless sample file that imports a non existent DLL)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.reversinglabs.com%2F2010%2F06%2Freversing-self-defense%2F&amp;title=Reverse%20engineering%20self%20defense" id="wpa2a_2"><img src="http://blog.reversinglabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.reversinglabs.com/2010/06/reversing-self-defense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minor inconvenience</title>
		<link>http://blog.reversinglabs.com/2010/02/minor-inconvenience/</link>
		<comments>http://blog.reversinglabs.com/2010/02/minor-inconvenience/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:22:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reversing]]></category>
		<category><![CDATA[OllyDBG]]></category>

		<guid isPermaLink="false">http://blog.reversinglabs.com/?p=305</guid>
		<description><![CDATA[During our every day work as reverse engineers we encounter problems that affect the tools we use. Most commonly to try to detect their presence and/or crash them. Whatever is their purpose we must work our way around them. One of such problems we encountered recently is a theoretical scenario in which OllyDBG can't resolve [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><a href="http://www.youtube.com/watch?v=K4EuJHGvdnw"><img src="http://blog.reversinglabs.com/wp-content/plugins/youtube-with-style/inc/img.php?v=K4EuJHGvdnw"></a></div>
<p style="text-align: justify;">
<p style="text-align: justify;">During our every day work as reverse engineers we encounter problems that affect the tools we use. Most commonly to try to detect their presence and/or crash them. Whatever is their purpose we must work our way around them. One of such problems we encountered recently is a theoretical scenario in which <a href="http://www.ollydbg.de" target="_blank">OllyDBG</a> can't resolve data about the loaded modules. This scenario is possible do the fact that OllyDBG doesn't use unicode APIs to access files on the disk. However question remains, how can you load a DLL file with non English characters? That isn't possible via import table since all DLL names in that table are ASCII. In fact only way to do this is to use the unicode version of LoadLibrary API, which seems odd because it isn't really clear why this is even possible. Simply put there is no need for such a feature because files with names that consist of non English characters can't be statically loaded because PECOFF documentation specifies that those strings are ASCII. But this is just a minor inconvenience we can work around since that memory can still be accessed. One of the available solutions is to rename the file and correct the LoadLibrary calls to load the new file. Until next week...</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.reversinglabs.com%2F2010%2F02%2Fminor-inconvenience%2F&amp;title=Minor%20inconvenience" id="wpa2a_4"><img src="http://blog.reversinglabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.reversinglabs.com/2010/02/minor-inconvenience/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TitaniumHandles</title>
		<link>http://blog.reversinglabs.com/2009/10/titaniumhandles/</link>
		<comments>http://blog.reversinglabs.com/2009/10/titaniumhandles/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 12:49:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reversing]]></category>
		<category><![CDATA[TitanEngine]]></category>
		<category><![CDATA[OllyDBG]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.reversinglabs.com/?p=106</guid>
		<description><![CDATA[Last week was particularity interesting as we did very interesting research related to archive formats. But that's topic for some other week, today we talk about one of the code samples for TitanEngine we mentioned few weeks ago. That code sample is a sample that shows TitanEngine's handler module capabilities implemented as an OllyDBG plugin. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Last week was particularity interesting as we did very interesting research related to archive formats. But that's topic for some other week, today we talk about one of the code samples for <em>TitanEngine </em>we mentioned few weeks ago. That code sample is a sample that shows <em>TitanEngine's </em>handler module capabilities implemented as an <a href="http://www.ollydbg.de/" target="_blank">OllyDBG</a> plugin.</p>
<p style="text-align: justify;">Functionality of the plugin is almost equal to the OllyDBG's handle window but with a slight difference. <em>TitaniumHandles </em>gives you an option to view only open mutex handles and has an ability to close remote handles which can come in handy when analyzing software protections. This plugin is just another sample of multiple ways one can use the functions inside the <em>TitanEngine </em>to ease file analysis.</p>
<p style="text-align: justify;"><a href="http://blog.reversinglabs.com/wp-content/uploads/2009/10/titaniumhandles.png" rel="lightbox[106]"><img class="aligncenter size-medium wp-image-104" title="titaniumhandles" src="http://blog.reversinglabs.com/wp-content/uploads/2009/10/titaniumhandles-300x235.png" alt="titaniumhandles" width="300" height="235" /></a></p>
<p><!-- Facebook Badge START --></p>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="150" align="center" valign="middle"><a style="font-family: &amp;amp;quot; font-size: 11px; font-variant: normal; font-style: normal; font-weight: normal; color: #3b5998; text-decoration: none;" title="TitanEngine" href="http://www.facebook.com/pages/TitanEngine/136818796342291" target="_TOP">TitanEngine</a><br />
<a title="TitanEngine" href="http://www.facebook.com/pages/TitanEngine/136818796342291" target="_TOP"><img style="border: 0px;" src="http://badge.facebook.com/badge/136818796342291.1698.1945128657.png" alt="" width="120" height="144" /></a><br />
<a style="font-family: &amp;amp;quot; font-size: 11px; font-variant: normal; font-style: normal; font-weight: normal; color: #3b5998; text-decoration: none;" title="" href="http://www.reversinglabs.com" target="_TOP">ReversingLabs Corporation</a></td>
<td width="450" align="center" valign="middle">
<p><a href="http://blog.reversinglabs.com/wp-content/uploads/2009/10/TitaniumHandles.zip">TitaniumHandles 1.0</a><span><br />
(package contains plugin binary and  source code)</p>
</td>
</tr>
</table>
<p><!-- Facebook Badge END --></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.reversinglabs.com%2F2009%2F10%2Ftitaniumhandles%2F&amp;title=TitaniumHandles" id="wpa2a_6"><img src="http://blog.reversinglabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.reversinglabs.com/2009/10/titaniumhandles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

