<?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; Plugin</title>
	<atom:link href="http://blog.reversinglabs.com/tag/plugin/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>Automatic broken file fixing with Nexus</title>
		<link>http://blog.reversinglabs.com/2010/03/fixing-broken-files-with-nexus/</link>
		<comments>http://blog.reversinglabs.com/2010/03/fixing-broken-files-with-nexus/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 11:41:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reversing]]></category>
		<category><![CDATA[TitanEngine]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.reversinglabs.com/?p=393</guid>
		<description><![CDATA[In the last couple of years we have seen a drastic increase in numbers of malicious sample we see a day. These numbers are quickly closing to 40M samples a year mark that we expect to see hit this year. That is why the sheer volume of data we are bombarded with each day raises [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In the last couple of years we have seen a drastic increase in numbers of malicious sample we see a day. These numbers are quickly closing to 40M samples a year mark that we expect to see hit this year. That is why the sheer volume of data we are bombarded with each day raises an important question, where is the relevant data in this sea of information?  And even is all data we have relevant?</p>
<p style="text-align: justify;">Prioritization is the main way of extracting relevant data with the techniques and methods used to highlight interesting information varying from one antivirus company to another. However we can think differently in order to sort this information. We can think in reverse asking ourselves which of this data isn’t interesting. With that question in mind we developed a system to exclude damaged, invalid and broken files from our sample bases. In depth file analysis tell us exactly which files have zero chance of execution on any system flagging them as crapware. But is everything broken to that extent?</p>
<p style="text-align: justify;">If you remember recently we gave you a good idea what to do with <a href="http://blog.reversinglabs.com/2010/01/if-it-aint-broken/">broken files</a> and how to implement <em>TitanEngine </em>statical validity analysis to identify and fix broken files. For this purpose we will update the TitanEngine Nexus plugin to automatically identify and fix broken files. This will extend this plugin functionality from creating missing dynamic link library dependencies to fixing every aspect of the broken inputted file. And since the plugin will work automatically it needs to be compatible with all existing unpackers. To achieve this we must recognize the basic dynamic unpacker model which looks like this:</p>
<p style="text-align: justify;"><a href="http://blog.reversinglabs.com/wp-content/uploads/2010/03/TEDynamicUnpackerLayout.png" rel="lightbox[393]"><img class="aligncenter size-full wp-image-402" title="TEDynamicUnpackerLayout" src="http://blog.reversinglabs.com/wp-content/uploads/2010/03/TEDynamicUnpackerLayout.png" alt="" width="610" height="708" /></a></p>
<p style="text-align: justify;">As we can see from this flow chart all dynamic unpackers share a certain logic model. Perfect place for Nexus to handle the inputted file is at the start of unpacking process which is achieved by hooking TitanEngine's function IsPE32FileValidExW. This function is called before the unpacking process starts by all unpackers and if it estimates the file as invalid or broken unpacking is aborted. So what does our hook need to do? List of steps to do would be:</p>
<ul>
<li>Perform statical validity analysis by calling IsPE32FileValid</li>
<li>Determine if file is valid or not and if it isn't do the following
<ul>
<li>Create a backup for inputted file</li>
<li>Perform statical file fixing by calling FixBrokenPE32FileEx</li>
<li>Validate the file fixing success</li>
<li>Return TRUE</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">But this is just the first step because in order to fix the file the <em>TitanEngine </em>can temporarily disable certain fields by removing them from PE header. To revert these changes we must add another hook to revert these changes. Since we are improving Nexus to automatically correct broken files for dynamic unpackers the function to hook is easily recognized as DumpProcessW. This function is called at the start of the unpacking process finalization, just before the necessary data is exported to file on the disk. That makes this function a perfect place to revert the changes to temporarily disabled PE fields. To do this we just need to call FixBrokenPE32FileEx again with the saved FILE_FIX_INFO structure.</p>
<p style="text-align: justify;">By implementing these changes to TitanEngine's Nexus plugin we convert it to all purpose dynamic unpacker helper module because with its help we can unpack broken files and files that are missing their dependencies. And all this done with no modification to the source code of any unpacker we made in the past. As a demonstration of the plugin capabilities we have attached it and a broken UPX sample file with this blog. Until next week...</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/2010/03/Nexus.zip">Nexus plugin</a><br />
(package contains Nexus plugin, UPX unpacker and a broken sample file)</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%2F2010%2F03%2Ffixing-broken-files-with-nexus%2F&amp;title=Automatic%20broken%20file%20fixing%20with%20Nexus" 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/03/fixing-broken-files-with-nexus/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>How to use TitanEngine and its plugins?</title>
		<link>http://blog.reversinglabs.com/2009/12/how-to-use-titanengine-and-its-plugins/</link>
		<comments>http://blog.reversinglabs.com/2009/12/how-to-use-titanengine-and-its-plugins/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 14:32:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reversing]]></category>
		<category><![CDATA[TitanEngine]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.reversinglabs.com/?p=199</guid>
		<description><![CDATA[There was a lot of response and quality feedback about our latest TitanEngine release. One of the questions we got is "How to use the engine and its plugins?". That is why we made this video which shows a quick example on how to compile the UPX sample and use our Nexus plugin in order [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><a href="http://www.youtube.com/watch?v=mNI93FcCNSc"><img src="http://blog.reversinglabs.com/wp-content/plugins/youtube-with-style/inc/img.php?v=mNI93FcCNSc"></a></div>
<p style="text-align: justify;">There was a lot of <a href="http://twitter.com/#search?q=titanengine" target="_blank">response</a> and quality feedback about our latest <em><a href="http://blog.reversinglabs.com/2009/12/titanengine-202-update/" target="_blank">TitanEngine</a> </em>release. One of the questions we got is "<em>How to use the engine and its plugins</em>?". That is why we made this video which shows a quick example on how to compile the UPX sample and use our Nexus plugin in order to unpack samples which can't be run on the system because one or more of their dependencies is missing. Sounds cool?</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%2F12%2Fhow-to-use-titanengine-and-its-plugins%2F&amp;title=How%20to%20use%20TitanEngine%20and%20its%20plugins%3F" 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/2009/12/how-to-use-titanengine-and-its-plugins/feed/</wfw:commentRss>
		<slash:comments>0</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>
		<item>
		<title>TitaniumOverlay</title>
		<link>http://blog.reversinglabs.com/2009/10/titaniumoverlay/</link>
		<comments>http://blog.reversinglabs.com/2009/10/titaniumoverlay/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 05:00:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reversing]]></category>
		<category><![CDATA[TitanEngine]]></category>
		<category><![CDATA[Overlay]]></category>
		<category><![CDATA[PeID]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.reversinglabs.com/?p=74</guid>
		<description><![CDATA[Remember how last week we decided not to publish some tools? Well it has been brought to our attention that we can publish the binaries and later publish the source with the next TitanEngine update which is very close as it is. That is why this Monday we decided to publish TitaniumOverlay tool. As stated [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Remember how last week we decided not to publish some tools? Well it has been brought to our attention that we can publish the binaries and later publish the source with the next <em>TitanEngine</em> update which is very close as it is. That is why this Monday we decided to publish <em>TitaniumOverlay </em>tool.</p>
<p style="text-align: justify;">As stated last week, <em>TitaniumOverlay </em>is a very simple <a href="http://www.peid.info/">PeID</a> plugin designed to aid in packed binary analysis. Specifically to aid in install format overlay analysis. Being that most install formats store interesting information inside overlay tool that can extract, copy, remove and add overlay can come in handy. Tool itself also informs the user about location and the size of the overlay so that you can go to that location with your favorite hex editor and inspect or manipulate the data.</p>
<p style="text-align: justify;">Don't get confused by the empty selected file field in the plugin's main window. That field is reserved only for adding data to overlay or moving overlay from one PE file to another. So depending on the action you want to perform you either select a PE file (in case you are moving overlay from one PE file to another) or a binary file if you are appending data as an overlay to PE file.</p>
<p style="text-align: justify;">This plugin makes use of <em>TitanEngine </em>overlay functions and its full source will be available with the next <em>TitanEngine </em>release.</p>
<p style="text-align: center;"><a href="http://www.reversinglabs.com/blog/wp-content/uploads/2009/10/TitaniumOverlay.png" rel="lightbox[74]"><img title="TitaniumOverlay" src="http://www.reversinglabs.com/blog/wp-content/uploads/2009/10/TitaniumOverlay-300x177.png" alt="TitaniumOverlay" width="300" height="177" /></a><br />
Download <a href="http://blog.reversinglabs.com/wp-content/uploads/2009/10/TitaniumOverlay.rar">TitaniumOverlay</a> PeID plugin</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%2Ftitaniumoverlay%2F&amp;title=TitaniumOverlay" id="wpa2a_8"><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/titaniumoverlay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

