<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>malwarereversing</title>
	<atom:link href="http://malwarereversing.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://malwarereversing.wordpress.com</link>
	<description>Malware reversing, security research, random things</description>
	<lastBuildDate>Mon, 19 Dec 2011 12:54:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='malwarereversing.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>malwarereversing</title>
		<link>http://malwarereversing.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://malwarereversing.wordpress.com/osd.xml" title="malwarereversing" />
	<atom:link rel='hub' href='http://malwarereversing.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Shylock In-Depth Malware Analysis</title>
		<link>http://malwarereversing.wordpress.com/2011/09/30/shylock-in-depth-malware-analysis/</link>
		<comments>http://malwarereversing.wordpress.com/2011/09/30/shylock-in-depth-malware-analysis/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 17:05:40 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[incident response]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[artifacts]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[re]]></category>
		<category><![CDATA[reverse engineering]]></category>
		<category><![CDATA[shylock]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=145</guid>
		<description><![CDATA[Hi everyone!  We got a special piece of malware on the docket.  Mila over @ contagiodump and Trusteer reported a new type of malware called Shylock.  They were mum on the details aside from some threat report which was very sparse on information.  So I requested a sample and proceeded to do some RE on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=145&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi everyone!  We got a special piece of malware on the docket.  Mila over @ <a href="http://contagiodump.blogspot.com/2011/09/sept-21-greedy-shylock-financial.html">contagiodump</a> and <a href="http://www.darkreading.com/advanced-threats/167901091/security/news/231600950/trusteer-discovers-2nd-malware-variant-to-go-financial-and-unveils-cybercrime-prevention-platform.html">Trusteer</a> reported a new type of malware called Shylock.  They were mum on the details aside from some threat report which was very sparse on information.  So I requested a sample and proceeded to do some RE on it.  So we&#8217;ll look into it together to combine traditional Reverse Engineering for the goal of finding artifacts to verify infection in <a href="http://code.google.com/p/volatility/">Volatility</a>.  (Download the Shylock infected memory sample <a href="http://code.google.com/p/various-things/downloads/list">here</a>)</p>
<p>The dropper can be downloaded from <a href="http://www.mediafire.com/?0vowzbf40gp9s8f">here</a> (the pw is &#8220;infected&#8221;) and does some basic decryption of itself then proceeds to create a few files.  One is a copy of itself in a random path as well as a .bat file that is ran from cmd.exe with the \c to change attributes on the dropped files then erase them after malicious code is injected into explorer.exe.  The dropper spawns this command shell to process the .bat file.  The bat file is pasted below.<br />
<code><br />
:repeat<br />
if not exist "C:\re\shylock\4FDA5E7E8E682870E993F97AD26BA6B2" goto exit<br />
attrib -R -S -H "C:\re\shylock\4FDA5E7E8E682870E993F97AD26BA6B2"<br />
erase "C:\re\shylock\4FDA5E7E8E682870E993F97AD26BA6B2"<br />
goto repeat<br />
:exit<br />
attrib -R -S -H "C:\Documents and Settings\vmuser1\Application Data\Adobe\Flash Player\D.tmp.bat"<br />
erase "C:\Documents and Settings\vmuser1\Application Data\Adobe\Flash Player\D.tmp.bat"<br />
</code></p>
<p>A file is also copied in windows\system32 and a subsequent unique id is generated that will be in the.  After that it terminates itself and removes the dropper off the disk leaving all control up to the recently injected code into explorer.exe.</p>
<p>3 sections are allocated into explorer.exe and  a dll is decrypted and loaded by these 3 sections.  After this the injected code replicates itself into other processes by injecting them and hooking API&#8217;s.   I&#8217;m going to be showing code snippets that are from the injected code using the technique I posted on previously about <a title="Debugging Injected Code with IDA Pro" href="http://malwarereversing.wordpress.com/2011/09/27/debugging-injected-code-with-ida-pro/">Debugging Injected code with IDA Pro</a>.</p>
<p style="text-align:left;">Well other artifacts that we can use to aid in analysis or diagnosis of a particular sample are Mutexes and Files.  Reversing the dropper (as well as recently published <a href="http://www.symantec.com/security_response/writeup.jsp?docid=2011-092916-1617-99&amp;tabid=2">here</a>, <a href="http://www.threatexpert.com/report.aspx?md5=4fda5e7e8e682870e993f97ad26ba6b2">here</a>, <a href="http://quequero.org/Shylock_via_volatility">here</a>) we can see that the malware creates an autorun key as it&#8217;s persistence mechanism with a unique key.</p>
<p style="text-align:center;"><a href="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-1.jpg"><img class="aligncenter size-large wp-image-190" title="shylock-mutex-1" src="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-1.jpg?w=614&#038;h=345" alt="" width="614" height="345" /></a></p>
<p style="text-align:left;">This function is copying a string of &#8220;MTX_&#8221; to the heap that will be parsed together with our unique ID.  Then fed into our call to <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms682411%28v=vs.85%29.aspx">CreateMutex</a>.  You can see the pointer returned by the above screen shot is de-referenced then passed to a CreateMutex wrapper function that takes one argument.</p>
<p style="text-align:center;"><a href="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-2.jpg"><img class="aligncenter size-large wp-image-191" title="shylock-mutex-2" src="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-2.jpg?w=614&#038;h=345" alt="" width="614" height="345" /></a></p>
<p style="text-align:left;">Notice the function call is actually Create_Mutex_Arg0 which I&#8217;ve had to RE, rename as this function is actually a wrapper call to <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms682411%28v=vs.85%29.aspx">CreateMutex</a>.   The wrapper code is displayed below.  If you wanted to find out exactly where this is in your injected code.  You&#8217;ll have to set a break point on kernel32_CreateMutex and see where it was referenced in your hijackdll as it could be loaded in a completely different spot than what&#8217;s in my IDB.</p>
<p style="text-align:left;"><a href="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-3.jpg"><img class="aligncenter size-large wp-image-192" title="shylock-mutex-3" src="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-3.jpg?w=614&#038;h=345" alt="" width="614" height="345" /></a></p>
<p style="text-align:left;">This final function actually calls the system API call to create this mutex.  Now let&#8217;s verify this artifact holds for us in our memory dump.  The way we can do this is to use the mutscan command and pipe this output to a file.  Doing this and we search for &#8220;MTX_&#8221; we get a few results that look like this.</p>
<p style="text-align:left;">MTX_919863BFD426AA00979BDF55477F92A7</p>
<p style="text-align:left;">You&#8217;ll notice a few of these in the mutscan as there is another value that is added which I haven&#8217;t yet reversed yet.  (I decided to publish this early due to Evilcry&#8217;s webpost.)  So that&#8217;s our first artifact and we&#8217;ll look into a file artifact next.  This just illustrates that you can do a rough once over debug/RE to find artifacts for a piece of malware that may not be published in a formal threat analysis from AV, researcher, someone else.</p>
<p style="text-align:left;">Next up we&#8217;re going to investigate a file artifact.  Shylock uses <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590%28v=vs.85%29.aspx">named pipes</a> to communicate but also it uses this unique id that was referenced above.  The following screenshot shows the routine in which it is created.</p>
<p style="text-align:center;"><a href="http://malwarereversing.files.wordpress.com/2011/09/shylock-file-1.jpg"><img class="aligncenter size-large wp-image-194" title="shylock-file-1" src="http://malwarereversing.files.wordpress.com/2011/09/shylock-file-1.jpg?w=614&#038;h=345" alt="" width="614" height="345" /></a></p>
<p style="text-align:left;">So you can see here that the injected dll uses the <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa365150%28v=vs.85%29.aspx">CreateNamedPipeA</a> command to setup the named pipe that it subsequently reads/writes from.  Now leveraging this information from our debugging/RE process we can use this to create another fingerprint from a Shylock infection.  We can verify this in Volatility with the filescan program using &#8220;python vol.py -f img.mem filescan &gt; output.txt&#8221; and look for a named pipe that is a hexadecimal number 32 bytes in length.  Sure enough we find one for our infection here.</p>
<p style="text-align:left;">0x01b42340 0x819b8730    3    1 &#8212;&#8212; &#8216;\\919863BFD426AA00979BDF55477F92A7&#8242;</p>
<p style="text-align:left;">Now for extra credit you can attribute this to a specific process and you can see that it&#8217;s parent will be explorer.exe.  To do this you can use Volatility 1.3 and <a href="http://computer.forensikblog.de/en/2009/04/linking_file_objects_to_processes.html">Andreas Schusters file plugins</a>.  More artifacts may be coming soon what else can you find?</p>
<p style="text-align:left;">References:</p>
<p style="text-align:left;">[1] -<a href="http://contagiodump.blogspot.com/2011/09/sept-21-greedy-shylock-financial.html">ContagioDump of Shylock</a></p>
<p style="text-align:left;">[2] &#8211; <a href="http://quequero.org/Shylock_via_volatility">Evilcry&#8217;s Shylock Volatility Analysis</a></p>
<p style="text-align:left;">[3] &#8211; <a href="http://www.symantec.com/security_response/writeup.jsp?docid=2011-092916-1617-99&amp;tabid=2">Symantec Shylock Report</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=145&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/09/30/shylock-in-depth-malware-analysis/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-1.jpg?w=1024" medium="image">
			<media:title type="html">shylock-mutex-1</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-2.jpg?w=1024" medium="image">
			<media:title type="html">shylock-mutex-2</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/shylock-mutex-3.jpg?w=1024" medium="image">
			<media:title type="html">shylock-mutex-3</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/shylock-file-1.jpg?w=1024" medium="image">
			<media:title type="html">shylock-file-1</media:title>
		</media:content>
	</item>
		<item>
		<title>Debugging Injected Code with IDA Pro</title>
		<link>http://malwarereversing.wordpress.com/2011/09/27/debugging-injected-code-with-ida-pro/</link>
		<comments>http://malwarereversing.wordpress.com/2011/09/27/debugging-injected-code-with-ida-pro/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 21:59:43 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=148</guid>
		<description><![CDATA[Hello all!  Today I wanted to talk about how you go about debugging/analyzing injected code.  In today&#8217;s malware environment a lot of malicious code doesn&#8217;t sit resident in memory in the context of it&#8217;s own process.  Back in the day you could look at task manager and recognize some weird executable that didn&#8217;t belong.  Those [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=148&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hello all!  Today I wanted to talk about how you go about debugging/analyzing injected code.  In today&#8217;s malware environment a lot of malicious code doesn&#8217;t sit resident in memory in the context of it&#8217;s own process.  Back in the day you could look at task manager and recognize some weird executable that didn&#8217;t belong.  Those days are mostly over.  The new(er) malware classes will typically inject malicious code and hook dll&#8217;s in legitimate looking processes (explorer.exe, winlogon.exe, svchost.exe, etc.) to evade detection.  This makes analyzing malware trickier as you need a wider skill set than opening up a bad binary in IDA.  I&#8217;m going to shed some light on that process when you run into this type of malware.</p>
<p>First off we need to find some malware that uses code injection.  Code injection is usually done through the <a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory</a> API call through Windows.  I&#8217;ve provided a sample <a href="http://www.mediafire.com/?0vowzbf40gp9s8f">here</a> which just happens to be the <a href="http://www.mediafire.com/?0vowzbf40gp9s8f">shylock malware</a> that was posted recently at <a href="http://contagiodump.blogspot.com/" target="_blank">Contagio</a>.   Download to follow along (the password is infected).  This executable injects code into the explorer.exe process of the target machine (xp sp3 os running on virtualbox).  This is what we will be working with if you want to follow along.  Now I haven&#8217;t done a complete in depth-analysis on this yet (it&#8217;s coming) but I suspect there isn&#8217;t any VM breakout that will totally hose your host OS.  If there is well sorry bout that! <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  You need to also make sure your vm is accessible from your host machine.  I used &#8216;<a href="http://www.virtualbox.org/manual/ch06.html">Host-Only Networking</a>&#8216; and made sure the guest was accessible from my host box.</p>
<p>So once you have your vm up (and it has an IP you can reach from your host box).  You&#8217;ll need to copy over to the share a file that exists in your IDA Pro file to enable remote debugging. The file is &#8220;win32_remote.exe&#8221;.  This is a server that allows IDA to connect up to a port on a <a href="http://www.hex-rays.com/idapro/idadoc/1463.shtml">remote server debugging</a> to debug across the world or across memory in the sense of a VM.  Now one caveat with this program is that it only allows one debugging session per server (depending on version,  newer versions of IDA support multiple debugging sessions over the same port).  So if you want to debug 2 programs at the same time (which we will be doing) you need two instances of this running on different ports.  You specify the port with the -p flag and there is NO SPACES after the -p switch so if you want to set it up on port 1000 you&#8217;d run &#8220;win32_remote -p1000&#8243; from the command line.  <a href="http://www.woodmann.com/TiGa/">Tiga</a> also has posted a video tutorial about remote debugging with IDA.  His entire <a href="http://www.woodmann.com/TiGa/">tutorial series</a> is very good.</p>
<p>Open up a IDA Pro and Run -&gt; <a href="http://www.hex-rays.com/idapro/idadoc/1463.shtml">Remote Win32 Debugger</a></p>
<p><a href="http://malwarereversing.files.wordpress.com/2011/09/ida_run_remote_debugger1.jpg"><img class="aligncenter size-full wp-image-157" title="ida_run_remote_debugger1" src="http://malwarereversing.files.wordpress.com/2011/09/ida_run_remote_debugger1.jpg?w=497&#038;h=279" alt="" width="497" height="279" /></a></p>
<p>Make sure your connection/paths are correct.</p>
<p><a href="http://malwarereversing.files.wordpress.com/2011/09/ida_run_remote_debugger2.jpg"><img class="aligncenter size-full wp-image-160" title="ida_run_remote_debugger2" src="http://malwarereversing.files.wordpress.com/2011/09/ida_run_remote_debugger2.jpg?w=497&#038;h=279" alt="" width="497" height="279" /></a></p>
<p>Click ok and  you&#8217;ll break at the entry point of the module</p>
<p><a href="http://malwarereversing.files.wordpress.com/2011/09/ida_debug1.jpg"><img class="aligncenter size-full wp-image-156" title="ida_debug1" src="http://malwarereversing.files.wordpress.com/2011/09/ida_debug1.jpg?w=497&#038;h=279" alt="" width="497" height="279" /></a></p>
<p>Now we&#8217;re going to set a breakpoint at <a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory()</a> (In IDA that equates to kernel32_<a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory</a>.  From here on out it will be referred to as <a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory</a>)</p>
<p><a href="http://malwarereversing.files.wordpress.com/2011/09/ida_debug3.jpg"><img class="aligncenter size-full wp-image-161" title="ida_debug3" src="http://malwarereversing.files.wordpress.com/2011/09/ida_debug3.jpg?w=497&#038;h=279" alt="" width="497" height="279" /></a></p>
<p>Hit f9 to go and it breaks on <a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory</a>() (How did I know how to break here?  I reversed the program roughly to get a feel for the program from the beginning up until this point.)</p>
<p>Now the code injection routine is a separate link <a href="http://pastebin.com/wzMMxF8q">here</a>.  shows why we want to break on <a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory</a>().  There are a few basic methods on how to inject code into a process that is not yours  on Windows.  <a href="http://www.codeproject.com/KB/threads/winspy.aspx">Here</a> is a good breakdown describing those methods.  Most of the tactics revolve around <a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory</a> system call.  This particular piece of malware uses the third type of injection mentioned in the code project article.  Before this specific function was reached the malware took a snapshot of the system state and iterated through the processes until it found explorer.exe then called this function.  So the short version of the disassembly is that it opens the target process,  allocates some memory inside the process,  writes memory that was allocated (repeats 3 times), then starts a remote thread to execute this new code, wait for thread to exit then cleanup handles.  The reason 3 sections of memory are mapped into the target process is there is a loader there that reconstructs a dll in memory that is allocated inside Explorer.  This happens all before the exit status code is returned from the thread and the code is successfully injected.<br />
<code><br />
</code><br />
Let&#8217;s fire up another IDA instance and use the Attach -&gt; Remote Win32 Debugger and put in the port for the second server that was different than the first. Hit ok then we should see a process listing and let&#8217;s choose our injected process (explorer.exe) from the menu. If you took note of the injected code locations from <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms682437%28v=vs.85%29.aspx">CreateRemoteThread</a> structure.<br />
<code></code></p>
<pre>HANDLE WINAPI CreateRemoteThread(
  __in   HANDLE hProcess,
  __in   LPSECURITY_ATTRIBUTES lpThreadAttributes,
  __in   SIZE_T dwStackSize,
  __in   LPTHREAD_START_ROUTINE lpStartAddress,
  __in   LPVOID lpParameter,
  __in   DWORD dwCreationFlags,
  __out  LPDWORD lpThreadId
);
  __in   LPTHREAD_START_ROUTINE lpStartAddress,</pre>
<dl>
<dt><em>lpStartAddress</em> [in]</dt>
<dd>A pointer to the application-defined function of type <strong>LPTHREAD_START_ROUTINE</strong> to be executed by the thread and represents the starting address of the thread in the remote process. The function must exist in the remote process. For more information, see <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms686736%28v=vs.85%29.aspx"><strong>ThreadProc</strong></a>.</dd>
</dl>
<p>We can mark this location with a breakpoint once we attach to explorer.exe (before the thread is started but after the memory was written). Then we hit run in the shylock.exe (injector process) and then we should have a breakpoint hit in explorer.exe and sure enough we do. We can continue on reversing from here but let&#8217;s dump this segment and save it so we can annotate our debugging sessions and build on this previous knowledge. The way we can do this in IDA is take a memory snapshot.  We have to View -&gt; Open Subviews -&gt; Segments so that we can view a memory map. Noting our addresses from <a href="http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx" target="_blank">WriteProcessMemory</a> we need to change those segments to <a href="http://www.hex-rays.com/idapro/idadoc/514.shtml">Loader segments</a>. Next up go to Debugger and take memory snapshot and choose only Loader Segments. If you notice in our column our only dump will be of the three sections we marked &#8216;Loader&#8217; segment.  If you don&#8217;t mark them as Loader segments IDA will ignore them and exclude from putting them into the database/idb.  Here you have it and that&#8217;s how you dump injected code from any process with IDA Pro. Hope you enjoyed reading this article.</p>
<p>References:</p>
<p>[1] &#8211; <a href="http://www.woodmann.com/TiGa/">Tiga&#8217;s IDA video tutorials</a></p>
<p>[2] &#8211; <a href="http://www.codeproject.com/KB/threads/winspy.aspx">CodeProject Code Injection methods</a></p>
<p>[3] &#8211; <a href="http://contagiodump.blogspot.com/" target="_blank">Contagio malware dump</a></p>
<p>[4] &#8211; <a href="http://www.hex-rays.com/idapro/idadoc/" target="_blank">IDA Docs Page</a></p>
<p>[5] &#8211; <a href="http://www.virtualbox.org/manual/ch06.html" target="_blank">Virtualbox Networking Doc</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=148&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/09/27/debugging-injected-code-with-ida-pro/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/ida_run_remote_debugger1.jpg" medium="image">
			<media:title type="html">ida_run_remote_debugger1</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/ida_run_remote_debugger2.jpg" medium="image">
			<media:title type="html">ida_run_remote_debugger2</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/ida_debug1.jpg" medium="image">
			<media:title type="html">ida_debug1</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/09/ida_debug3.jpg" medium="image">
			<media:title type="html">ida_debug3</media:title>
		</media:content>
	</item>
		<item>
		<title>Zeus Analysis in Volatility 2.0</title>
		<link>http://malwarereversing.wordpress.com/2011/09/23/zeus-analysis-in-volatility-2-0/</link>
		<comments>http://malwarereversing.wordpress.com/2011/09/23/zeus-analysis-in-volatility-2-0/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 13:45:55 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[incident response]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[volatility]]></category>
		<category><![CDATA[zeus]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=111</guid>
		<description><![CDATA[Well I wanted to post another article about memory forensics with my favorite open source tool right now&#8230;. Volatility.  Can&#8217;t say enough great things about the documentation (very well written and expansive) and the community is very helpful in answering questions (even noobish ones).  So after I read MHL&#8217;s Stuxnet Analysis with Volatility 2.0 it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=111&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well I wanted to post another article about memory forensics with my favorite open source tool right now&#8230;. <a title="Volatility 2.0" href="http://code.google.com/p/volatility/" target="_blank">Volatility</a>.  Can&#8217;t say enough great things about the documentation (very well written and expansive) and the community is very helpful in answering questions (even noobish ones).  So after I read <a title="Stuxnet Analysis with Volatility 2.0" href="http://mnin.blogspot.com/2011/06/examining-stuxnets-footprint-in-memory.html" target="_blank">MHL&#8217;s Stuxnet Analysis with Volatility 2.0</a> it inspired me to do my own sort of analysis with a different piece of malware to see how many artifacts I could come up with.  I&#8217;ll be referencing some in-depth deep dives to confirm the analysis.  At the end of the article the links will be given to those reports in full.  I&#8217;m going to assume no prior knowledge is known about Zeus.  We can use Volatility to start as well as confirm with multiple artifacts we are in fact infected with Zeus beyond any doubts.</p>
<p>Luckily for us we don&#8217;t have to infect a VM, take a memory dump and then analyze it (or have a friend ask for our help to cleanup their computer like <a href="http://www.h-online.com/security/features/CSI-Internet-A-trip-into-RAM-1339479.html" target="_blank">here</a>).  The folks at <a title="Volatility 2.0" href="http://code.google.com/p/volatility/" target="_blank">Volatility</a> have provided a sample image that&#8217;s infected with <a title="Zeus.Vmem" href="http://malwarecookbook.googlecode.com/svn-history/r26/trunk/17/1/zeus.vmem.zip" target="_blank">Zeus</a> for you to practice on.  They are in need of contribution with additional malware if you have any laying around that you&#8217;d like to share.  So download the image and follow along.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem imageinfo<br />
Volatile Systems Volatility Framework 2.0<br />
Suggested Profile(s) : WinXPSP3x86, WinXPSP2x86 (Instantiated with Win<br />
XPSP2x86)<br />
AS Layer1 : JKIA32PagedMemoryPae (Kernel AS)<br />
AS Layer2 : FileAddressSpace (C:\RE\volatility2.0\py\volatility-2.0\zeus.vmem)<br />
PAE type : PAE<br />
DTB : 0x319000<br />
KDBG : 0x80544ce0L<br />
KPCR : 0xffdff000L<br />
KUSER_SHARED_DATA : 0xffdf0000L<br />
Image date and time : 2010-08-15 19:17:56<br />
Image local date and time : 2010-08-15 19:17:56<br />
Number of Processors : 1<br />
Image Type : Service Pack 2<br />
</code></p>
<p>So we can tell this is a XP SP2 image, no big surprise here.  Let&#8217;s grab a process listing.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem pslist<br />
Volatile Systems Volatility Framework 2.0<br />
Offset(V)  Name                 PID    PPID   Thds   Hnds   Time<br />
---------- -------------------- ------ ------ ------ ------ -------------------<br />
0x810b1660 System                    4      0     58    379 1970-01-01 00:00:00<br />
0xff2ab020 smss.exe                544      4      3     21 2010-08-11 06:06:21<br />
0xff1ecda0 csrss.exe               608    544     10    410 2010-08-11 06:06:23<br />
0xff1ec978 winlogon.exe            632    544     24    536 2010-08-11 06:06:23<br />
0xff247020 services.exe            676    632     16    288 2010-08-11 06:06:24<br />
0xff255020 lsass.exe               688    632     21    405 2010-08-11 06:06:24<br />
0xff218230 vmacthlp.exe            844    676      1     37 2010-08-11 06:06:24<br />
0x80ff88d8 svchost.exe             856    676     29    336 2010-08-11 06:06:24<br />
0xff217560 svchost.exe             936    676     11    288 2010-08-11 06:06:24<br />
0x80fbf910 svchost.exe            1028    676     88   1424 2010-08-11 06:06:24<br />
0xff22d558 svchost.exe            1088    676      7     93 2010-08-11 06:06:25<br />
0xff203b80 svchost.exe            1148    676     15    217 2010-08-11 06:06:26<br />
0xff1d7da0 spoolsv.exe            1432    676     14    145 2010-08-11 06:06:26<br />
0xff1b8b28 vmtoolsd.exe           1668    676      5    225 2010-08-11 06:06:35<br />
0xff1fdc88 VMUpgradeHelper        1788    676      5    112 2010-08-11 06:06:38<br />
0xff143b28 TPAutoConnSvc.e        1968    676      5    106 2010-08-11 06:06:39<br />
0xff25a7e0 alg.exe                 216    676      8    120 2010-08-11 06:06:39<br />
0xff364310 wscntfy.exe             888   1028      1     40 2010-08-11 06:06:49<br />
0xff38b5f8 TPAutoConnect.e        1084   1968      1     68 2010-08-11 06:06:52<br />
0x80f60da0 wuauclt.exe            1732   1028      7    189 2010-08-11 06:07:44<br />
0xff3865d0 explorer.exe           1724   1708     13    326 2010-08-11 06:09:29<br />
0xff3667e8 VMwareTray.exe          432   1724      1     60 2010-08-11 06:09:31<br />
0xff374980 VMwareUser.exe          452   1724      8    207 2010-08-11 06:09:32<br />
0x80f94588 wuauclt.exe             468   1028      4    142 2010-08-11 06:09:37<br />
0xff224020 cmd.exe                 124   1668      0 ------ 2010-08-15 19:17:55<br />
</code></p>
<p>Nothing immediately stands out to me as they all look like legitimate processes that are running on the box.  Let&#8217;s see if any of them are hiding with a new command fresh out of 2.0 which is psxview.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem psxview<br />
Volatile Systems Volatility Framework 2.0<br />
Offset       Name                 Pid      pslist     psscan     thrdproc   psp<br />
id     csr_hnds   csr_list<br />
0x80fbf910L  svchost.exe          1028     1          1          1          1<br />
1          0<br />
0x80ff88d8L  svchost.exe          856      1          1          1          1<br />
1          0<br />
0xff1d7da0L  spoolsv.exe          1432     1          1          1          1<br />
1          0<br />
0x80f60da0L  wuauclt.exe          1732     1          1          1          1<br />
1          0<br />
0xff2ab020L  smss.exe             544      1          1          1          1<br />
0          0<br />
0xff3667e8L  VMwareTray.exe       432      1          1          1          1<br />
1          0<br />
0xff247020L  services.exe         676      1          1          1          1<br />
1          0<br />
0xff217560L  svchost.exe          936      1          1          1          1<br />
1          0<br />
0xff143b28L  TPAutoConnSvc.e      1968     1          1          1          1<br />
1          0<br />
0xff203b80L  svchost.exe          1148     1          1          1          1<br />
1          0<br />
0xff1b8b28L  vmtoolsd.exe         1668     1          1          1          1<br />
1          0<br />
0xff255020L  lsass.exe            688      1          1          1          1<br />
1          0<br />
0xff3865d0L  explorer.exe         1724     1          1          1          1<br />
1          0<br />
0xff22d558L  svchost.exe          1088     1          1          1          1<br />
1          0<br />
0xff374980L  VMwareUser.exe       452      1          1          1          1<br />
1          0<br />
0xff1fdc88L  VMUpgradeHelper      1788     1          1          1          1<br />
1          0<br />
0xff218230L  vmacthlp.exe         844      1          1          1          1<br />
1          0<br />
0xff364310L  wscntfy.exe          888      1          1          1          1<br />
1          0<br />
0x80f94588L  wuauclt.exe          468      1          1          1          1<br />
1          0<br />
0xff25a7e0L  alg.exe              216      1          1          1          1<br />
1          0<br />
0xff1ecda0L  csrss.exe            608      1          1          1          1<br />
0          0<br />
0xff38b5f8L  TPAutoConnect.e      1084     1          1          1          1<br />
1          0<br />
0xff1ec978L  winlogon.exe         632      1          1          1          1<br />
1          0<br />
0xff224020L  cmd.exe              124      1          0          0          1<br />
0          0<br />
0x810b1660L  System               4        1          1          1          1<br />
0          0<br />
</code></p>
<p>This uses multiple methods for looking at processes artifacts in memory.  If you see any that are 0&#8242;s for psscan, pslist and thrdproc it&#8217;s an attempt to hide the process by DKOM (Direct Kernel Object Manipulation).  Nothing interesting here so let&#8217;s see about some network connections.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem connections<br />
Volatile Systems Volatility Framework 2.0<br />
Offset(V)  Local Address             Remote Address            Pid<br />
---------- ------------------------- ------------------------- ------<br />
</code></p>
<p>Well that&#8217;s disappointing.  No active connections at the time the memory dump was taken.  Let&#8217;s go a little deeper and scan for connections that may have been previously closed with connscan.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem connscan<br />
Volatile Systems Volatility Framework 2.0<br />
Offset     Local Address             Remote Address            Pid<br />
---------- ------------------------- ------------------------- ------<br />
0x02214988 172.16.176.143:1054       193.104.41.75:80             856<br />
0x06015ab0 0.0.0.0:1056              193.104.41.75:80             856<br />
</code></p>
<p>Bingo!  We have 2 connections here that look to be listed to PID 856.  That&#8217;s SVChost which is odd.  Let&#8217;s see where these connections are located.  A whois report reveals that the IP is located in Moldova.</p>
<table width="728" border="0" cellspacing="1" cellpadding="5" bgcolor="#f3f0e0">
<tbody>
<tr>
<td valign="top" nowrap="nowrap" bgcolor="#ffffff">IP Address</td>
<td bgcolor="#ffffff"><a href="http://cqcounter.com/traceroute/?query=193.104.41.75">193.104.41.75</a></td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" bgcolor="#ffffff">Host</td>
<td bgcolor="#ffffff">193.104.41.75</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" bgcolor="#ffffff">Location</td>
<td bgcolor="#ffffff"><img src="http://n1.dlcache.com/flags/md.gif" alt="MD" border="0" /> MD, Moldova, Republic of</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" bgcolor="#ffffff">City</td>
<td bgcolor="#ffffff">-, &#8211; -</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" bgcolor="#ffffff">Organization</td>
<td bgcolor="#ffffff">PE Voronov Evgen Sergiyovich</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" bgcolor="#ffffff">ISP</td>
<td bgcolor="#ffffff">PE Voronov Evgen Sergiyovich</td>
</tr>
</tbody>
</table>
<p>It&#8217;s well known that a lot of malware calls Eastern Europe and Asia home.  So this is pretty suspicious but since it looks like all our processes appear legitimate we might be facing some malware that utilizes code injection.  To detect these types of processes MHL has released a great plugin here that utilizes malfind.  It will detect injected processes so let&#8217;s run that on our target image.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem malfind --dump-dir c:\re\zeus_demo<br />
VMwareTray.exe       432    0x00d70000 0xd95fff00 VadS     0      PAGE_EXECUTE_R<br />
EADWRITE<br />
Dumped to: c:\re\zeus_demo\VMwareTray.exe.4be97e8.00d70000-00d95fff.dmp<br />
0x00d70000   4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00    MZ..............</p>
<p>0x00d70010   b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00    ........@.......</p>
<p>0x00d70020   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................</p>
<p>0x00d70030   00 00 00 00 00 00 00 00 00 00 00 00 d0 00 00 00    ................</p>
<p>0x00d70040   0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68    ........!..L.!Th</p>
<p>0x00d70050   69 73 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f    is program canno</p>
<p>0x00d70060   74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20    t be run in DOS</p>
<p>0x00d70070   6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 00 00 00    mode....$.......</p>
<p>VMwareTray.exe       432    0x00e30000 0xe30fff00 VadS     0      PAGE_EXECUTE_R<br />
EADWRITE<br />
Dumped to: c:\re\zeus_demo\VMwareTray.exe.4be97e8.00e30000-00e30fff.dmp<br />
0x00e30000   b8 35 00 00 00 e9 cd d7 ad 7b b8 91 00 00 00 e9    .5.......{......</p>
<p>0x00e30010   4f df ad 7b 8b ff 55 8b ec e9 ef 17 3e 76 8b ff    O..{..U.....&gt;v..</p>
<p>0x00e30020   55 8b ec e9 95 76 39 76 8b ff 55 8b ec e9 be 53    U....v9v..U....S</p>
<p>0x00e30030   3a 76 8b ff 55 8b ec e9 d6 18 3e 76 8b ff 55 8b    :v..U.....&gt;v..U.</p>
<p>0x00e30040   ec e9 14 95 39 76 8b ff 55 8b ec e9 4f 7e 3c 76    ....9v..U...O~&lt;v</p>
<p>0x00e30050   8b ff 55 8b ec e9 0a 32 3a 76 8b ff 55 8b ec e9    ..U....2:v..U...</p>
<p>0x00e30060   7d 61 39 76 6a 2c 68 b8 8d 1c 77 e9 01 8c 39 76    }a9vj,h...w...9v</p>
<p>0x00e30070   8b ff 55 8b ec e9 c4 95 c8 70 8b ff 55 8b ec e9    ..U......p..U...</p>
<p>Disassembly:<br />
00e30000: b835000000                       MOV EAX, 0x35<br />
00e30005: e9cdd7ad7b                       JMP 0x7c90d7d7<br />
00e3000a: b891000000                       MOV EAX, 0x91<br />
00e3000f: e94fdfad7b                       JMP 0x7c90df63<br />
00e30014: 8bff                             MOV EDI, EDI<br />
00e30016: 55                               PUSH EBP<br />
00e30017: 8bec                             MOV EBP, ESP<br />
00e30019: e9ef173e76                       JMP 0x7721180d<br />
00e3001e: 8bff                             MOV EDI, EDI<br />
00e30020: 55                               PUSH EBP<br />
[snip]<br />
</code><br />
Well we have a lot of output so looks like a lot of our processes are injected with malcode.  The reason this plugin can find it is due to the fact of looking for kernel memory structures that work very closely with VirtualAlloc.  These memory structures are in a VAD tree and work closely with memory management aspects of the kernel.    There&#8217;s a lot more detailed explanation in the references section if you care to read further on the subject.  The plugin outputs hexdumps as well as assembly code at the base location of where the injected code was detected.  You can also pipe this output to a text file if it won&#8217;t fit in your console.</p>
<p>With all this output from our plugin let&#8217;s revisit our pstree command so we can get a hierarchical view on how the code injection may have cascaded.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem pstree<br />
Volatile Systems Volatility Framework 2.0<br />
Name                                        Pid    PPid   Thds   Hnds   Time<br />
0x810B1660:System                               4      0     58    379 1970-01-<br />
01 00:00:00<br />
. 0xFF2AB020:smss.exe                          544      4      3     21 2010-08-<br />
11 06:06:21<br />
.. 0xFF1EC978:winlogon.exe                     632    544     24    536 2010-08-<br />
11 06:06:23<br />
... 0xFF255020:lsass.exe                       688    632     21    405 2010-08-<br />
11 06:06:24<br />
... 0xFF247020:services.exe                    676    632     16    288 2010-08-<br />
11 06:06:24<br />
.... 0xFF1B8B28:vmtoolsd.exe                  1668    676      5    225 2010-08-<br />
11 06:06:35<br />
..... 0xFF224020:cmd.exe                       124   1668      0 ------ 2010-08-<br />
15 19:17:55<br />
.... 0x80FF88D8:svchost.exe                    856    676     29    336 2010-08-<br />
11 06:06:24<br />
.... 0xFF1D7DA0:spoolsv.exe                   1432    676     14    145 2010-08-<br />
11 06:06:26<br />
.... 0x80FBF910:svchost.exe                   1028    676     88   1424 2010-08-<br />
11 06:06:24<br />
..... 0x80F60DA0:wuauclt.exe                  1732   1028      7    189 2010-08-<br />
11 06:07:44<br />
..... 0x80F94588:wuauclt.exe                   468   1028      4    142 2010-08-<br />
11 06:09:37<br />
..... 0xFF364310:wscntfy.exe                   888   1028      1     40 2010-08-<br />
11 06:06:49<br />
.... 0xFF217560:svchost.exe                    936    676     11    288 2010-08-<br />
11 06:06:24<br />
.... 0xFF143B28:TPAutoConnSvc.e               1968    676      5    106 2010-08-<br />
11 06:06:39<br />
..... 0xFF38B5F8:TPAutoConnect.e              1084   1968      1     68 2010-08-<br />
11 06:06:52<br />
.... 0xFF22D558:svchost.exe                   1088    676      7     93 2010-08-<br />
11 06:06:25<br />
.... 0xFF218230:vmacthlp.exe                   844    676      1     37 2010-08-<br />
11 06:06:24<br />
.... 0xFF25A7E0:alg.exe                        216    676      8    120 2010-08-<br />
11 06:06:39<br />
.... 0xFF203B80:svchost.exe                   1148    676     15    217 2010-08-<br />
11 06:06:26<br />
.... 0xFF1FDC88:VMUpgradeHelper               1788    676      5    112 2010-08-<br />
11 06:06:38<br />
.. 0xFF1ECDA0:csrss.exe                        608    544     10    410 2010-08-<br />
11 06:06:23<br />
0xFF3865D0:explorer.exe                      1724   1708     13    326 2010-08-<br />
11 06:09:29<br />
. 0xFF374980:VMwareUser.exe                    452   1724      8    207 2010-08-<br />
11 06:09:32<br />
. 0xFF3667E8:VMwareTray.exe                    432   1724      1     60 2010-08-<br />
11 06:09:31<br />
</code></p>
<p>We did notice that services.exe looked to have some code injected into it.  Let&#8217;s take the parent process (winlogon.dmp that was dumped by malfind) and submit it to virustotal as PID 676 seems to be where the code injection is originating from in a hierarchical sense.</p>
<p>http://www.virustotal.com/file-scan/report.html?id=75a45694e30eecdb63d173fe18f2a6642113244e7049524d5331054c5ba07960-1316219032</p>
<p>Sure enough 26/44 say it&#8217;s malicious.  Seems most of the scans detect it as Zbot.   So let&#8217;s Google around find some reports and see if we can verify it&#8217;s presence elsewhere.  Now that we&#8217;re armed with some reports let&#8217;s verify some other artifacts on the system just to make sure this is Zbot.</p>
<p style="text-align:center;"><em>&#8220;The install function searches for the &#8220;winlogon.exe&#8221; process, allocates some memory within it and decrypts itself into the process.&#8221;<br />
</em></p>
<p>Well what do you know it looks like Zbot/Zeus injects it&#8217;s code into winlogon.exe This was apparent after we did our malfind as it detected injected code into other processes. If you would use procexedump through volatility it would be fine if you submitted to an avscan as it uses the pe header to dump the memory image. The new code sections that were allocated and later written to will not be reflected in the original pe header that was loaded into memory. This is the exact reason why we had to use malfind (Thanks again MHL!) above and couldn&#8217;t just procdump based on pid.</p>
<p style="text-align:center;"><em>&#8220;The bot executable is written to the hard drive as &#8220;C:\WINDOWS\system32\sdra64.exe&#8221;.&#8221;</em></p>
<p>Volatility has a useful plugin here that allows us to identify file handles that are still hanging around in memory filescan.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem filescan<br />
Volatile Systems Volatility Framework 2.0<br />
Offset(V) Obj Type #Ptr #Hnd Access Name<br />
0x01090778 0x8109d560 1 0 R--r-d '\\WINDOWS\\system32\\winrnr.dll'<br />
0x010915b0 0x8109d560 1 0 R--rwd '\\WINDOWS\\system32\\oleaut32.dll'<br />
0x01091648 0x8109d560 1 0 R--rwd '\\WINDOWS\\system32\\rpcrt4.dll'<br />
0x01091810 0x8109d560 1 0 R--rwd '\\WINDOWS\\system32\\csrss.exe'<br />
0x01092270 0x8109d560 1 1 RW-rw- '\\WINDOWS\\WindowsUpdate.log'<br />
[snip]<br />
0x029d9b28 0x8109d560 1 1 R----- '\\WINDOWS\\system32\\sdra64.exe'<br />
0x029d9cd8 0x8109d560 1 0 -WD--- '\\WINDOWS\\system32\\sdra64.exe'<br />
[snip]<br />
</code></p>
<p style="text-align:center;"><em>&#8220;The directory &#8220;C:\WINDOWS\system32\lowsec\&#8221; is created. This directory is not visible in Windows Explorer but can be seen from the command line. Its purpose is to contain the following files:</em></p>
<p>local.ds: Contains the most recently downloaded DynamicConfig file.<br />
user.ds: Contains logged information.<br />
user.ds.lll: Temporarily created if transmission of logs to the drop server fails.<br />
&#8220;</p>
<p>These artifacts can also be found in the above file scan to further bolster the case that this is definitely Zeus.</p>
<p style="text-align:center;"><em>&#8220;The Winlogon (&#8220;HKLM/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon&#8221;) registry key&#8217;s value is appended with the path of the bot executable: C:/WINDOWS/system32/sdra64.exe. This will cause the bot to execute when the computer restarts.&#8221;</em></p>
<p>Volatility sure enough has a feature to allow us to investigate registry entries. Namely the printkey command. So let&#8217;s check the reg key from our Zbot analysis to see that this is here too.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem printkey -K "Mi<br />
crosoft\Windows NT\CurrentVersion\Winlogon"<br />
Volatile Systems Volatility Framework 2.0<br />
Legend: (S) = Stable (V) = Volatile<br />
----------------------------<br />
Registry: \Device\HarddiskVolume1\WINDOWS\system32\config\software<br />
Key name: Winlogon (S)<br />
Last updated: 2010-08-15 19:17:23<br />
Subkeys:<br />
(S) GPExtensions<br />
(S) Notify<br />
(S) SpecialAccounts<br />
(V) Credentials</code></p>
<p>Values:<br />
REG_DWORD AutoRestartShell : (S) 1<br />
REG_SZ DefaultDomainName : (S) BILLY-DB5B96DD3<br />
REG_SZ DefaultUserName : (S) Administrator<br />
REG_SZ LegalNoticeCaption : (S)<br />
REG_SZ LegalNoticeText : (S)<br />
REG_SZ PowerdownAfterShutdown : (S) 0<br />
REG_SZ ReportBootOk : (S) 1<br />
REG_SZ Shell : (S) Explorer.exe<br />
REG_SZ ShutdownWithoutLogon : (S) 0<br />
REG_SZ System : (S)<br />
REG_SZ Userinit : (S) C:\WINDOWS\system32\userinit.exe,C:\WINDOWS\<br />
system32\sdra64.exe,<br />
REG_SZ VmApplet : (S) rundll32 shell32,Control_RunDLL &#8220;sysdm.cpl&#8221;</p>
<p>REG_DWORD SfcQuota : (S) 4294967295<br />
REG_SZ allocatecdroms : (S) 0<br />
REG_SZ allocatedasd : (S) 0<br />
REG_SZ allocatefloppies : (S) 0<br />
REG_SZ cachedlogonscount : (S) 10<br />
REG_DWORD forceunlocklogon : (S) 0<br />
REG_DWORD passwordexpirywarning : (S) 14<br />
REG_SZ scremoveoption : (S) 0<br />
REG_DWORD AllowMultipleTSSessions : (S) 1<br />
REG_EXPAND_SZ UIHost : (S) logonui.exe<br />
REG_DWORD LogonType : (S) 1<br />
REG_SZ Background : (S) 0 0 0<br />
REG_SZ AutoAdminLogon : (S) 0<br />
REG_SZ DebugServerCommand : (S) no<br />
REG_DWORD SFCDisable : (S) 0<br />
REG_SZ WinStationsDisabled : (S) 0<br />
REG_DWORD HibernationPreviouslyEnabled : (S) 1<br />
REG_DWORD ShowLogonOptions : (S) 0<br />
REG_SZ AltDefaultUserName : (S) Administrator<br />
REG_SZ AltDefaultDomainName : (S) BILLY-DB5B96DD3</p>
<p>Well that key is certainly apparent and this is our persistence mechanism. So the Zeus/Zbot injector process is called at start-up to insert it&#8217;s hooks and malicious code in our legitimate looking processes to evade detection. This would be something you&#8217;d want to clean up if you were re-mediating the system as well.</p>
<p style="text-align:center;"><em>&#8220;The Windows XP firewall is disabled. This causes a Windows Security Center warning icon to appear in the system tray, the only visible indication that the computer has been infected.&#8221;</em></p>
<p>It looks like Zeus/Zbot also takes care of disabling the Windows Firewall so your not annoyed with any popups while it&#8217;s pilfering through your banking data. Googling around there are some registry forensics blogs that keep track of the location for windows firewall settings. Using our command printkey we can detect if this is enabled or disabled in this specific image.</p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem printkey -K "Co<br />
ntrolSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile"<br />
Volatile Systems Volatility Framework 2.0<br />
Legend: (S) = Stable (V) = Volatile<br />
----------------------------<br />
Registry: \Device\HarddiskVolume1\WINDOWS\system32\config\system<br />
Key name: StandardProfile (S)<br />
Last updated: 2010-08-15 19:17:24</code></p>
<p>Subkeys:<br />
(S) AuthorizedApplications</p>
<p>Values:<br />
REG_DWORD EnableFirewall : (S) 0</p>
<p>So the firewall is currently disabled and if you notice the timestamp on the key as well. It looks like this was last updated at 2010-8-15 at 19:17:24. This is tidbit of information that you could use in a timeline analysis if you had to document to this level of detail. The specific Zeus/Zbot may not modify this key every time but check if its set according to it&#8217;s specifications. I&#8217;m not sure as I don&#8217;t have the file but it would be a reasonable assumption. Also the EnableFirewall key was not in the DomainProfile but only the StandardProfile for you registry pros out there.</p>
<p style="text-align:center;"><em>&#8220;A closer look at its binary file reveals that the spyware was designed to monitor known ZBOT mutexes, _AVIRA_ and __SYSTEM__.&#8221;</em></p>
<p><code><br />
C:\RE\volatility2.0\py\volatility-2.0&gt;python vol.py -f zeus.vmem mutantscan<br />
Volatile Systems Volatility Framework 2.0<br />
[snip]<br />
0x05ca17e8 0x810ae5e0 2 1 1 0x00000000 '_AVIRA_2108'<br />
[snip]<br />
</code></p>
<p>Well there is certainly a mutex that has been recent in memory for AVIRA which ironically enough is the name of an antivirus engine. It was sent to poke fun at the anti-virus companies by the programmer&#8217;s of Zeus. It also looks from the above mutex that we have a 1.x version of Zeus/Zbot as in 2.x versions they use randomly generated GUID&#8217;s over mutexes to communicate.</p>
<p>So there we have it using Volatility we can get a look at a Zeus/Zbot infection and determine steps here for possible remediation just based on a memory dump. We&#8217;d have more resources if we were able to have access to the system as well so we could study the injector process to see if it has any other persistence mechanisms. It&#8217;s doubtful since this matches so closely to the typical Zeus/Zbot signature. I hope you enjoyed reading this article!</p>
<p><strong>Edit</strong>: Looks like another Zeus article was written and is linked <a href="http://www.evild3ad.com/?p=956">here</a> to give you another viewpoint on this piece of malware.</p>
<p>References:</p>
<p>[1] &#8211; http://www.fortiguard.com/analysis/zeusanalysis.html</p>
<p>[2] &#8211; http://www.dfrws.org/2007/proceedings/p62-dolan-gavitt.pdf</p>
<p>[3] &#8211; http://www.eptuners.com/forensics/contents/examination.htm</p>
<p>[4] &#8211; http://www.sans.org/reading_room/whitepapers/malicious/clash-titans-zeus-spyeye_33393</p>
<p>[5] &#8211; http://www.symantec.com/connect/blogs/brief-look-zeuszbot-20</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=111&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/09/23/zeus-analysis-in-volatility-2-0/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>

		<media:content url="http://n1.dlcache.com/flags/md.gif" medium="image">
			<media:title type="html">MD</media:title>
		</media:content>
	</item>
		<item>
		<title>Volatility 2.0 Plugin Vscan</title>
		<link>http://malwarereversing.wordpress.com/2011/09/17/volatility-2-0-plugin-vscan/</link>
		<comments>http://malwarereversing.wordpress.com/2011/09/17/volatility-2-0-plugin-vscan/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 15:01:48 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[incident response]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[volatility]]></category>
		<category><![CDATA[volatility plugin]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=97</guid>
		<description><![CDATA[I came across a program the other day that is very powerful when it comes to IR (Incident Response).  So wanting to learn more about the platform I dived right in and decided to create a plugin. What if you could automatically carve out a file from a memory image and submit  said carving to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=97&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I came across a program the other day that is very powerful when it comes to IR (Incident Response).  So wanting to learn more about the platform I dived right in and decided to create a plugin. What if you could automatically carve out a file from a memory image and submit  said carving to an online virus scanning service?  That&#8217;d be awesome and make for quick work to triage any memory dumps you may have laying around, assuming you can isolate the suspicious process.  This idea was born out of a larger project in development called Avalanche.  It&#8217;s goal is to bring a lot of these tools together for a quick analysis ala <a href="http://www.mandiant.com/products/free_software/redline/" target="_blank">Mandiant Redline</a> or <a href="http://www.hbgary.com/hbgary-releases-responder-ce" target="_blank">HB Gary Responder Pro</a> but built around Python.</p>
<p>For those who don&#8217;t know what <a href="http://code.google.com/p/volatility/" target="_blank">Volatility</a> is.  It&#8217;s a great open source memory forensics framework written in python.  It&#8217;s being actively developed by a great community (it even supports Windows 8 at the time of this writing).  The tool operates on memory dumps.  These are dumps of physical ram to an image much like a disk image but just has snapshots of the current state of your machine.  There are some advantages to full disk dumps such as size and context.  Some information exists in memory that is difficult to discern from disk images (api hooking, process injection, listening sockets, current and previous ip connections, hidden processes).  Memory dumps make these data points easily accessible.</p>
<p>Volatility has some practice images on their wiki that you can play with as well.  The install of the plugin is pretty simple.  Download the file and unzip it to the plugins directory.  Now if you want to use VirusTotal you will need to hardcode your api key into avsubmit.py as well as download <a href="https://sites.google.com/a/osuch.org/www/files" target="_blank">SimpleJson</a>.  AVsubmit is code that was shared via MHL in the <a href="http://www.malwarecookbook.com/" target="_blank">Malware Analyst&#8217;s Cookbook</a>.  All of it&#8217;s code snippets are freely available <a href="http://code.google.com/p/malwarecookbook/" target="_blank">here</a>.  I&#8217;ve heard great things about the book and mine is in the mail.</p>
<p>So usage is pretty simple.  Run this command.<br />
<code><br />
python vol.py vscan -f target.img -p 100 -s Jotti</p>
<p>Volatile Systems Volatility Framework 2.0<br />
************************************************************************<br />
Dumping explorer.exe, pid:   1724 output: executable.1724.exe<br />
[-] Uploading to a virus scan service.  Results may be slow on queue<br />
File already exists, initialization not required.<br />
[*] Using Jotti...<br />
Initialized session cookie: sessionid=800d68a1e60bf4a8c7f3c3f0a0c983d0ab03c3d2<br />
Initialized APC: 1b38781678971428acde9fe921396eecabecc8a2<br />
Checking Jotti's databse for file with MD5: 7161D1047247D94471CBA21ACB8BAB9E<br />
The file does not already exist on Jotti...<br />
Attempting to upload the sample, please wait...<br />
You can find the new analysis here:</p>
<p>http://virusscan.jotti.org/en/scanresult/eb435d81ffc22b032cbba262f52382b202b65b</p>
<p>3a<br />
Trying to get results for the next 600 seconds...<br />
Try 0<br />
Try 1<br />
Try 2<br />
Try 3<br />
Try 4<br />
Try 5<br />
drweb =&gt; scan clean<br />
fsecure =&gt; scan clean<br />
cpsecure =&gt; scan clean<br />
arcavir =&gt; scan clean<br />
fprot =&gt; scan clean<br />
avast =&gt; scan clean<br />
vba32 =&gt; scan clean<br />
clamav =&gt; scan clean<br />
gdata =&gt; scan clean<br />
kaspersky =&gt; scan clean<br />
bitdefender =&gt; scan clean<br />
panda =&gt; scan clean<br />
sophos =&gt; scan clean<br />
avira =&gt; scan clean<br />
ikarus =&gt; scan clean<br />
avg =&gt; scan clean<br />
nod32 =&gt; scan clean<br />
emsisoft =&gt; scan clean<br />
quickheal =&gt; scan clean<br />
virusbuster =&gt; scan clean<br />
Added sample to database with ID 4<br />
Finished.<br />
</code><br />
This dumps a target process from a memory image and submits it to the service of your choosing.  Be warned that if the process has code injected into it may yield some false positives (Zeus/Zbot).  In this case I use the malfind plugin via MHL&#8217;s malware.py scripts and it will dump out a process based on the <a title="VAD Tree a process view of memory" href="http://dfrws.org/2007/proceedings/p62-dolan-gavitt.pdf">VAD</a> tree entries that it finds suspicious.  After these items are dumped to disk you can still use the avscan plugin by just passing the -F flag to specify a file that has recently been dumped.<br />
<code><br />
python vol.py -f zeus.vmem vscan -E c:\zeus\winlogon.exe.66f0978.00ae0000-00b05fff.dmp -S jotti<br />
Volatile Systems Volatility Framework 2.0<br />
[*] Submitting [c:\zeus\winlogon.exe.66f0978.00ae0000-00b05fff.dmp] to [jotti<br />
File already exists, initialization not required.<br />
[*] Using Jotti...<br />
Initialized session cookie: sessionid=7e90a75eb406c0f64ac3662a3a5e0ca325bc94f6<br />
Initialized APC: 55521be59f3ec0b6385dfb43eb6a3a7885ded3c7<br />
Checking Jotti's databse for file with MD5: B5CAE4218DC957F4419AEAA675C21B7F<br />
You can find the existing analysis here:</p>
<p>http://virusscan.jotti.org/en/scanresult/7f8bccd75f6d538fda4bbec15c8e600c2cc2b3</p>
<p>37<br />
Trying to get results for the next 600 seconds...<br />
Try 0<br />
drweb =&gt; Trojan.PWS.Panda.199<br />
fsecure =&gt; Trojan.Spy.Zbot.EHO<br />
cpsecure =&gt; scan clean<br />
arcavir =&gt; scan clean<br />
fprot =&gt; W32/Zbot.AF.gen!Eldorado<br />
avast =&gt; Win32:Zbot-BCW<br />
vba32 =&gt; scan clean<br />
clamav =&gt; scan clean<br />
gdata =&gt; Trojan.Spy.Zbot.EHO<br />
kaspersky =&gt; scan clean<br />
bitdefender =&gt; Trojan.Spy.Zbot.EHO<br />
panda =&gt; scan clean<br />
sophos =&gt; Sus/Behav-1010<br />
avira =&gt; TR/Hijacker.Gen<br />
ikarus =&gt; Trojan-Spy.Zbot<br />
avg =&gt; Win32/Cryptor<br />
nod32 =&gt; Win32/Kryptik.AY<br />
emsisoft =&gt; Trojan-Spy.Zbot!IK<br />
quickheal =&gt; scan clean<br />
virusbuster =&gt; scan clean<br />
Added sample to database with ID 8<br />
Finished.<br />
</code><br />
You could also extend the plugin to do this for files that are going to be dumped on disk by malfind.py.  I hope you find the plugin useful and perhaps have inspired you to contribute something as well to this awesome project!  Download the plugin <a title="vscan plugin" href="http://www.mediafire.com/?e4spdbqssazy6p2">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=97&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/09/17/volatility-2-0-plugin-vscan/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Heap Homework</title>
		<link>http://malwarereversing.wordpress.com/2011/05/15/heap-homework/</link>
		<comments>http://malwarereversing.wordpress.com/2011/05/15/heap-homework/#comments</comments>
		<pubDate>Sun, 15 May 2011 00:15:16 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[exploitation]]></category>
		<category><![CDATA[heap]]></category>
		<category><![CDATA[heap spray]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=78</guid>
		<description><![CDATA[Well after looking at some bugs the other day I determined that my lack of knowledge on the heap was a problem. To mitigate this I&#8217;m going to include a lot of links that pertain to heap information. This way I can come back to review it and become more familiar with this aspect of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=78&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well after looking at some bugs the other day I determined that my lack of knowledge on the heap was a problem.  To mitigate this I&#8217;m going to include a lot of links that pertain to heap information.  This way I can come back to review it and become more familiar with this aspect of memory management.  Links are in no particular order.  Please note not all the techniques here are valid with the latest technology but this should be a good start on understanding the heap and it&#8217;s implications when dealing with exploitation.  Please add more links to heap knowledge in comments if you know some must reads.</p>
<p><a href="http://www.phrack.org/issues.html?issue=66&amp;id=10" title="MALLOC DES-MALEFICARUM (phrack BlackAngel)">MALLOC DES-MALEFICARUM (phrack BlackAngel) </a><br />
<a href="https://media.blackhat.com/bh-usa-08/video/bh-us-08-Hawkes/black-hat-usa-08-hawkes-vistaheap-hires.m4v" title="Ben Hawkes Vista Heap Attacks">Ben Hawkes Vista Heap Attacks</a> good overview of heap layout/attack vectors and recipes as he calls them to setup your heap state.<br />
<a href="http://www.vimeo.com/16499830" title="Low Fragmentation Heap by Chris Valasek">Low Fragmentation Heap by Chris Valasek</a> given in Argentina at ektoparty?  Same one was delivered at Blackhat USA 2010<br />
<a href="http://www.phrack.org/issues.html?issue=61&amp;id=6" title="Advanced Doug lea's malloc exploits">Advanced Doug lea&#8217;s malloc exploits Phrack </a><br />
<a href="http://www.phrack.org/issues.html?issue=57&amp;id=8" title="Max's Vudoo Paper in Phrack">Max&#8217;s Vudoo Paper in Phrack</a><br />
<a href="http://www.semantiscope.com/research/BHDC2010/BHDC-2010-Paper.pdf" title="Pointer Inference and JIT Spraying">Dion Blazakis JIT Spraying</a><br />
<a href="http://feliam.wordpress.com/2010/02/15/filling-adobes-heap/" title="Filling Adobes Heap">Filling Adobe&#8217;s Heap</a> good overview on how to fillup the heap with data in different programs.  Not limited to adobe nor javascript.<br />
<a href="http://www.phrack.org/issues.html?issue=57&amp;id=9#article" title="Once Upon a Free">Once upon a free() Phrack</a><br />
<a href="http://video.google.com/videoplay?docid=4756951231544277406#" title="Heap Feng Shui">Heap Feng Shui by Alexander Sotirov</a> Great talk on heap techniques and he releases his heaplib.js code to manipulate the heap in javascript.<br />
<a href="http://oss.coresecurity.com/projects/heapdraw/" title="HeapDraw visualization library">HeapDraw</a> visualization tool for seeing the output of memory allocations in your target application.<br />
<a href="http://actes.sstic.org/SSTIC07/Rump_sessions/SSTIC07-rump-Richarte-Heap_Massaging.pdf" title="Heap Massage">Heap Massage by Gera</a><br />
<a href="http://www.phrack.org/issues.html?issue=66&amp;id=6#article" title="Free() Exploitation Techniques">Yet another free()</a> article at phrack<br />
<a href="http://seanhn.wordpress.com/2011/03/30/heap-scripts-for-tcmalloc-with-gdbs-python-api/" title="Heap Scripts for tcmalloc">Sean Heelan TCMalloc Scripts</a> importance of scripts and heap information<br />
<a href="http://www.slideshare.net/amiable_indian/reliable-windows-heap-exploits" title="Reliable Windows Heap Exploits">Reliable windows heap exploits</a><br />
<a href="http://www.symantec.com/connect/blogs/double-free-vulnerabilities-part-1" title="double free vulnerabilities">Double free vulnerabilities</a><br />
<a href="http://phrack.com/issues.html?issue=66&amp;id=6#article" title="Yet another free() exploitation technique">Huku&#8217;s phrack article on another free()</a><br />
<a href="http://www.usenix.org/publications/library/proceedings/lisa03/tech/full_papers/robertson/robertson_html/index.html" title="heap detection runtime">Runtime detection of heap overflows</a><br />
<a href="http://www.insomniasec.com/publications/Heaps_About_Heaps.ppt" title="Heaps about Heaps">Heaps About Heaps by Insomniac Security</a></p>
<p>MSDN Related articles<br />
<a href="http://support.microsoft.com/kb/286470" title="Using pageheap.exe to debug heap corruption bugs">Using pageheap.exe to debug heap corruption bugs</a><br />
<a href="http://blogs.technet.com/b/askperf/archive/2009/10/02/windows-7-windows-server-2008-r2-fault-tolerant-heap-and-memory-management.aspx" title="Windows 7 Fault Tolerant Heap Details">Windows 7 Fault Tolerant Heap Details</a><br />
<a href="http://blogs.technet.com/b/srd/archive/2009/08/04/preventing-the-exploitation-of-user-mode-heap-corruption-vulnerabilities.aspx" title="Preventing user mode heap corruption in windows">Preventing usermode heap corruption in MS Windows</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=78&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/05/15/heap-homework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Crackmes.de mirror</title>
		<link>http://malwarereversing.wordpress.com/2011/05/13/crackmes-de-mirror/</link>
		<comments>http://malwarereversing.wordpress.com/2011/05/13/crackmes-de-mirror/#comments</comments>
		<pubDate>Fri, 13 May 2011 05:09:22 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=73</guid>
		<description><![CDATA[Well after the disappointing take down of Crackmes.de I took it upon myself to mirror the crackmes (thanks for the inspiration @darelgrif) as well as the solutions that were on that site. Please find the following linked zip that contains almost 1000 crackme&#8217;s for all levels. Solutions will be coming in the following days. Please [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=73&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well after the disappointing take down of Crackmes.de I took it upon myself to mirror the crackmes (thanks for the inspiration @darelgrif) as well as the solutions that were on that site.  Please find the following linked zip that contains almost 1000 crackme&#8217;s for all levels.  Solutions will be coming in the following days.  Please enjoy and mirror/spread.  Nothing disappears once it&#8217;s been posted on the internet.  If your curious how I did this python and urllib2 scraped the links from a popular archiving site.   Enjoy!</p>
<p><a href="http://uploadmirrors.com/redirect/3YFHXO3W/2" title="Crackmes.de collection mirror #1">Crackmes.de collection mirror #1</a><br />
<a href="http://www.megaupload.com/?d=E8UUQC7L" title="Crackmes.de collection mirror #2">Crackmes.de collection mirror #2</a><br />
<a href="http://rapidshare.com/files/3049335799/Crackmes.de-frozen-05-2011.zip" title="Crackmes.de collection mirror #3">Crackmes.de collection mirror #3</a><br />
<a href="http://hotfile.com/dl/117640372/e71dabf/Crackmes.de-frozen-05-2011.zip.html" title="Crackmes.de collection mirror #4">Crackmes.de collection mirror #4</a><br />
<a href="http://extabit.com/file/28x9czlma14th" title="Crackmes.de collection mirror #5">Crackmes.de collection mirror #5</a><br />
<a href="http://www.mediafire.com/?54vxztpmx9nd38j" title="Crackmes.de collection mirror #6">Crackmes.de collection mirror #6</a></p>
<p>Solutions are below.</p>
<p><a href="http://www.multiupload.com/623EVEAD8D" title="Crackmes.de solutions mirror #1">Crackmes.de solutions mirror#1</a><br />
<a href="https://rapidshare.com/#!download|105tg|1495579102|crackmes-de-solutions.zip" title="Crackmes.de solutions mirror #2">Crackmes.de solutions mirror#2</a><br />
<a href="http://www.megaupload.com/?d=K89XDJFW" title="Crackmes.de solutions mirror #3">Crackmes.de solutions mirror#3</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=73&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/05/13/crackmes-de-mirror/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Codegate 2011 Writeups Collection</title>
		<link>http://malwarereversing.wordpress.com/2011/03/08/codegate-2011-writeups-collection/</link>
		<comments>http://malwarereversing.wordpress.com/2011/03/08/codegate-2011-writeups-collection/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 02:30:58 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=60</guid>
		<description><![CDATA[So Codegate 2011 just wrapped up this past weekend and it was a great competition. Some very unique challenges to read over in the coming days but here is a collection of write ups I&#8217;ve found so far. If you find some that are missing feel free to comment and I&#8217;ll edit them in. I&#8217;m [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=60&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So Codegate 2011 just wrapped up this past weekend and it was a great competition.  Some very unique challenges to read over in the coming days but here is a collection of write ups I&#8217;ve found so far.  If you find some that are missing feel free to comment and I&#8217;ll edit them in.  I&#8217;m sure more will be published in the coming days on Twitter using #codegate.  Enjoy!</p>
<p>Sourcecode for all the challenges&#8230;</p>
<p>http://repo.shell-storm.org/CTF/CodeGate-2011/</p>
<p>Vuln 100</p>
<p>http://translate.google.com/translate?js=n&#038;prev=_t&#038;hl=en&#038;ie=UTF-8&#038;layout=2&#038;eotf=1&#038;sl=auto&#038;tl=en&#038;u=http%3A%2F%2Fwww.lestutosdenico.com%2Fevenements%2Fwriteup-codegate-2011</p>
<p>http://www.lestutosdenico.com/evenements/writeup-codegate-2011 (French)</p>
<p>Vuln 200</p>
<p>Vuln 300</p>
<p>http://auntitled.blogspot.com/2011/03/codegate-ctf-2011-vuln300-writeup.html</p>
<p>Vuln 400</p>
<p>Vuln 500</p>
<p>Issue 100</p>
<p>http://leetmore.ctf.su/wp/codegate-ctf-2011-mini-writeups/</p>
<p>Issue 200</p>
<p>http://leetmore.ctf.su/wp/codegate-ctf-2011-mini-writeups/</p>
<p>Issue 300</p>
<p>Issue 400</p>
<p>Issue 500</p>
<p>http://securityblackswan.blogspot.com/2011/03/codegate-yut-2011-issue-500-writeup.html</p>
<p>Forensic 100</p>
<p>http://translate.google.com/translate?js=n&#038;prev=_t&#038;hl=en&#038;ie=UTF-8&#038;layout=2&#038;eotf=1&#038;sl=auto&#038;tl=en&#038;u=http%3A%2F%2Fwww.lestutosdenico.com%2Fevenements%2Fwriteup-codegate-2011</p>
<p>http://www.lestutosdenico.com/evenements/writeup-codegate-2011 (French)</p>
<p>Forensic 200</p>
<p>http://translate.google.com/translate?js=n&#038;prev=_t&#038;hl=en&#038;ie=UTF-8&#038;layout=2&#038;eotf=1&#038;sl=auto&#038;tl=en&#038;u=http%3A%2F%2Fwww.lestutosdenico.com%2Fevenements%2Fwriteup-codegate-2011</p>
<p>http://www.lestutosdenico.com/evenements/writeup-codegate-2011 (French)</p>
<p>Forensic 300</p>
<p>http://translate.google.com/translate?js=n&#038;prev=_t&#038;hl=en&#038;ie=UTF-8&#038;layout=2&#038;eotf=1&#038;sl=auto&#038;tl=en&#038;u=http%3A%2F%2Fwww.sinfocol.org%2F2011%2F03%2Fwriteup-forensics300-codegate-2011%2F</p>
<p>http://www.sinfocol.org/2011/03/writeup-forensics300-codegate-2011/ (colombian)</p>
<p>Forensic 400</p>
<p>Forensic 500</p>
<p>Crypto 100</p>
<p>http://leetmore.ctf.su/wp/codegate-ctf-2011-mini-writeups/</p>
<p>Crypto 200</p>
<p>http://leetmore.ctf.su/wp/codegate-ctf-2011-mini-writeups/</p>
<p>Crypto 300</p>
<p>http://leetmore.ctf.su/wp/codegate-ctf-2011-crypto300-writeup/</p>
<p>Crypto 400</p>
<p>http://isc.sans.edu/diary.html?storyid=10501&#038;rss&#038;utm_source=twitterfeed&#038;utm_medium=twitter</p>
<p>Crypto 500</p>
<p>Binary 100</p>
<p>http://translate.google.com/translate?js=n&#038;prev=_t&#038;hl=en&#038;ie=UTF-8&#038;layout=2&#038;eotf=1&#038;sl=auto&#038;tl=en&#038;u=http%3A%2F%2Fwww.lestutosdenico.com%2Fevenements%2Fwriteup-codegate-2011</p>
<p>http://www.lestutosdenico.com/evenements/writeup-codegate-2011 (French)</p>
<p>Binary 200</p>
<p>Binary 300</p>
<p>Binary 400</p>
<p>Binary 500</p>
<p>Network 100</p>
<p>http://leetmore.ctf.su/wp/codegate-ctf-2011-mini-writeups/</p>
<p>Network 200</p>
<p>http://leetmore.ctf.su/wp/codegate-ctf-2011-mini-writeups/</p>
<p>Network 300</p>
<p>Network 400</p>
<p>Network 500</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=60&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/03/08/codegate-2011-writeups-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Where to start in Reverse Engineering?</title>
		<link>http://malwarereversing.wordpress.com/2011/01/20/where-to-start-in-reverse-engineering/</link>
		<comments>http://malwarereversing.wordpress.com/2011/01/20/where-to-start-in-reverse-engineering/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 05:13:56 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=52</guid>
		<description><![CDATA[Well given the recent take down of reverse-engineering.net for unknown reasons I&#8217;ve decided to mirror some content here. I&#8217;ve formatted out some of the bits like user posts identities and cleaned up some formatting. Other than that I have NOT link checked so not sure what are good/bad links here. Hope you find it useful [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=52&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well given the recent take down of reverse-engineering.net for unknown reasons I&#8217;ve decided to mirror some content here.  I&#8217;ve formatted out some of the bits like user posts identities and cleaned up some formatting.  Other than that I have NOT link checked so not sure what are good/bad links here.  Hope you find it useful and woodmann.com will probably mirror the entire archive before to long.</p>
<p>****START PASTIE******</p>
<p>    What do I learn first?</p>
<p>    &#8212;&gt;&gt;path 1:</p>
<p>    1 ) visit http://video.reverse-engineering.net/ to view some reversing videos that train you in the RCE basis.<br />
    2 ) check http://www.crackmes.de to find some visual solution submitted for crackmes.<br />
    3 ) Try to repeat the shown steps, and reproduce them with other crackmes. This will bring you quickly to practice.<br />
    4 ) Learn &#8216;on-demand&#8217; what you need to know over the time by using linked resources about languages, apis, forum etc. you can find in this section.</p>
<p>    &#8212;&gt;&gt; path 2:</p>
<p>    1 ) read http://www.cplusplus.com/doc/tutorial/ up to &#8220;Compound Data Types:&#8221; included<br />
    2 ) read http://www.winprog.org/tutorial/ up to &#8220;Graphics Device Interface&#8221; included (use the Win32 help file -below- to understand Win32 functions better)<br />
    3 ) Now you know the Win32 basis, select an Assembler Ebook/tutorial and start learning a bit of assembler -the more, the better.<br />
    4 ) Take Olly -below-, go to http://www.crackmes.de and select some crackme level 1<br />
    5 ) read the solution of 2-4 solved crackmes of level 1!!<br />
    6 ) select a solved crackme lvl1 and try to solve it. If you have problems, read the solution and TRY TO DO the steps of the solver.<br />
    7 ) goto 6 until you solve lvl1 crackmes very easily<br />
    8 ) Increase level difficulty by 1, goto 5!</p>
<p>1. Full Newbie Tutorials<br />
2. Challenges and Tutorials at *any* level<br />
3. Tutorials, Papers, Documentation, Books (all Free)<br />
4. Learning Programming Languages (ASM etc.)<br />
5. Debuggers/Disassemblers<br />
6. Tools of Our Trade<br />
7. Linux Related<br />
8. Suggested Books (not free)<br />
9. Advanced Reversing Papers/Material<br />
10. Hacking over the Net&#8230;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>1. Full Tutorials<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Course for Newbies</p>
<p>http://www.freewebs.com/fdemunck/newbieproject1.rar</p>
<p>Very Assembler Basis, SICE Usage, Basic Techniques. A very good set of tutorials from LoRd HrUn. Also explains what is the &#8216;stuff&#8217; you see when you open a debugger for the first time&#8230; (link is missing for now, to be restored)</p>
<p>Lessons for Newbies<br />
http://evilteach.8k.com/ : a collection of 4 lessons with material that explain you what mean the things you see when you start reversing a program.</p>
<p>2. Challenges and Tutorials at *any* level:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Challenges for Crackers, at any Level<br />
http://crackmes.de/ ; you can find many legal crackmes(=stuff you can legally crack) here to test your skills <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Being sorted by difficult grade -most of them offers one or more TUTORIAL for their solution-, it is also the biggest tutorial collection available today.</p>
<p>3. Tutorials, Papers, Documentation, Books (Free)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>(note: material for learning languages is in the appropriate section!)</p>
<p>Win32 API Help File<br />
http://www.borland.com/devsupport/borlandcpp/patches/BC52HLP1.ZIP ; here you can download the Win32 help file for the external link with Olly.<br />
Do not even THINK to do without this. API reference is essential, so take it if you haven&#8217;t it yet.</p>
<p>Win32 Basis<br />
http://www.winprog.org/tutorial/index.html ; here you learn the true basis of Win32 API programming, in C. Just read it ALL. The more you know about Windows, the better you understand what&#8217;s happen when reversing code.</p>
<p>Introduction to Cryptography (full free ebook)<br />
http://www.cacr.math.uwaterloo.ca/hac/ The &#8220;Handbook of Applied Cryptography&#8221;, a cool free e-book on cryptography. Excellent as a quick reference.</p>
<p>Introduction to Cryptography (full course)<br />
http://www.cs.washington.edu/education/courses/csep590/06wi/ ; a whole course that introduces to cryptography and ciphers, with all the materials and assignments online!! A very good starting point for cryptos.</p>
<p>Introduction to Cryptography (Tutorials)<br />
http://www.antilles.k12.vi.us/math/cryptotut/home.htm ; a set of easy tutorials on ciphers. Highly recommended.</p>
<p>Cryptography Tutorials (ECC)<br />
http://www.certicom.com/index.php?actio &#8230; cc_tut_1_0 ; a very nice link on Elliptic Curve -worth to read about.</p>
<p>Inject code, General Reversing Introduction Tutorial/Document<br />
http://www.codeproject.com/useritems/inject2exe.asp ; this article contains clean references to the basic tools (ResHacker, Debuggers, Disassemblers) and exaplian also how to inject code into an executable.</p>
<p>SEH Paper/Tutorial/Document<br />
http://www.jorgon.freeserve.co.uk/Except/Except.htm ; a paper that tells you what you need to know on SEH and Trap Flag tricks</p>
<p>PE Format, AntiDebug, AntiDump, Iczelion Assembler Tutorials/Papers/Documents<br />
http://www.migeel.sk/anticrack/showpage.php?page=downloads ;This page contains few zipped papers that can be useful.</p>
<p>Art of Disassembly E-BOOK</p>
<p>http://aod.reverse-engineering.net/</p>
<p>Article on PE Header at Code-Breakers Journal (CBJ)<br />
http://www.secure-software-engineering.com/index.php?option=com_content&amp;task=view&amp;id=60 ; contains a very detailed and easy explanation of all the PE sections (IAT -Import Address Table, EAT -Export Address Table, Sections, Directories, Resources etc.) how alter them and what they are. From beginners to experts.</p>
<p>PE Header Reference<br />
this text contains a description of the PE Header which is good to keep as a quick reference. For learning the PE header structure and fields, I suggest the above CBJ article.</p>
<p>http://webster.cs.ucr.edu/Page_TechDocs/pe.txt</p>
<p>Quick Assembler Reference<br />
a quick reference to pentium ASM instructions. Just click the initial letter, and select the ASM mnemonic. Very handy (especially if you download the whole site into your HD <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>http://faydoc.tripod.com/cpu/index_v.htm</p>
<p>Quick Guide to Network Programming<br />
a quick tutorial for learning the basis of network programming, without spending too much time.</p>
<p>http://beej.us/guide/bgnet/output/htmlsingle/bgnet.html</p>
<p>Adding Sections to PE, RVAs and Import table, loaders/patcher code<br />
http://www.sunshine2k.de/Articles.htm ; this site contains some small, very basic articles on PE, Import table, Basic DLL Injection and loader&#8217;s coding.</p>
<p>4. Learning Languages (ASM etc.):<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Learning Assembler Language E-BOOK (A)<br />
hxxp://webster.cs.ucr.edu/ ; the HLA Assembler home page. An excellent, free EBOOK for learning Assembler, &#8220;The Art of Assembly Language&#8221;, with HLA compiler and many tools. The site has a Linux section.</p>
<p>Learning Assembler Language E-BOOK (B)<br />
http://www.drpaulcarter.com/pcasm/ ; this site contains an *excellent* free EBOOK that teaches Assembler language from scratch. Translated in various languages. Pretty good. If you are not interested in HLA, this is a valid alternative.</p>
<p>Learning Assembler Language E-BOOK (C)<br />
http://savannah.nongnu.org/projects/pgubook/ ; a good free ebook that teaches Assembler from scratch, explaining even what a &#8220;word&#8221; is. &#8220;Small&#8221; drawback: AT&amp;T Assembler syntax <img src='http://s1.wp.com/wp-includes/images/smilies/icon_eek.gif' alt='8O' class='wp-smiley' /> .</p>
<p>Learning C++ Language<br />
http://www.cplusplus.com/doc/tutorial/ ; this tutorial gives you the basis of C++ language, for starting coding your keygen&#8217;s, and helping you reversing C++ stuff.</p>
<p>Rapid Application Development with MASM/HLA<br />
hxxp://www.radasm.com/ ; a R.A.D. IDE for the MASM/HLA assembler (and the links to masm32 Compiler and related stuff). Note: the Masm32 compiler contains the famous Iczelion&#8217;s tutorials on Assembler language in the &#8220;X:\masm32\icztutes&#8221; folder.</p>
<p>Freeware C++/Pascal<br />
http://www.bloodshed.net/ ; If you need a free compiler for writing your keygens, you can find there a C++ or a Pascal one. The C++ core is the GNUCPP.</p>
<p>Freeware Borland C++ 5.5<br />
hxxp://www.winprog.org/tutorial/bcpp.html ; this page gives all the needed links to download BC++5, with a bit of explanation.</p>
<p>12 lessons on Assembler and RosASM<br />
http://rosasm.org ; RosASM Assembler contains 12 lessons on basic assembly, written with a &#8220;generic syntax&#8221; so that the beginner could, later, switch, with as few problems as possible, to the Assembler he will finally choose.</p>
<p>5. Debuggers/Disassemblers:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
(note: Ring0 means you can use it for debugging Kernel Drivers, and generally it is tougher to use than Ring3 debuggers)</p>
<p>OLLY<br />
http://ollydbg.de/ ; the home of the most used Ring-3 Debugger, OllyDebug. A must have.<br />
(ps: you can find a link to the Win32 help file below)</p>
<p>SYSER<br />
http://www.sysersoft.com/ ; Syser is an excellent, visual Ring0 (and Ring3) debugger. It is not yet very stable but, if it works for you, it&#8217;s very cool.</p>
<p>WinDBG</p>
<p>http://www.Micro$oft.com/whdc/devtools/debugging/default.mspx</p>
<p>Home of WinDBG debugger (Ring0 too). Seen the site, I don&#8217;t think I need to add much more&#8230;</p>
<p>IDA<br />
http://www.datarescue.com/ ; IDA home. IDA is an Interactive DeAssember, used to perform a static analisys of the assembler code.<br />
(IDA 4.3 free: http://www.downloadjunction.com/product/software/69070/)</p>
<p>PVDASM<br />
http://pvdasm.reverse-engineering.net/ ; PVDasm is a very interesting Disassembler project, made by Ben and supported in this Board. It also allows you to export code directly MASM syntax format.</p>
<p>OLLY Plugins<br />
http://woodmann.net/ollystuph/index.php ; The &#8220;Stuph&#8221; page contains many useful OllyDebug Plugins.</p>
<p>Shadow&#8217;s OLLY<br />
hxxp://navig8.to/Shadow/ ; a modded Olly&#8230; a charged bazooka <img src='http://s2.wp.com/wp-includes/images/smilies/icon_twisted.gif' alt=':twisted:' class='wp-smiley' />  &#8230;usage: when needed.</p>
<p>6. Tools of Our Trade:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>FILEMON, REGMON<br />
hxxp://www.sysinternals.com/FileAndDiskUtilities.html This is the home of the Marc guru and of our first, must-have TOTs. A very interesting site to visit, from time to time. And a source of useful tools.</p>
<p>LordPE<br />
hxxp://www.softpedia.com/get/Programming/File-Editors/LordPE.shtml This tool enables you to explore and alter PE Header. You can modify/add sections, directories, IAT, and more. It is also a Dumper Server, in case you need.</p>
<p>7. Linux Related:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Well, the HLA home site listed above, for Assembly on Linux.</p>
<p>ASSEMBLER E-BOOK<br />
http://savannah.nongnu.org/projects/pgubook/ ; a good free ebook that teaches Assembler from scratch, explaining even what a &#8220;word&#8221; is. &#8220;Small&#8221; drawback: AT&amp;T Assembler syntax <img src='http://s1.wp.com/wp-includes/images/smilies/icon_eek.gif' alt='8O' class='wp-smiley' /> .</p>
<p>NASM Assembler<br />
hxxp://nasm.sourceforge.net/ ; a free assembler for Linux. On SourceForge, so you can work TO it, if you wish.</p>
<p>GNU Debugger<br />
hxxp://www.gnu.org/software/gdb/gdb.html/ ; the GNU project debugger. It can run on both Linux&amp;Windows, and support remote debugging.</p>
<p>8. Suggested Books (not free)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Reversing: Secrets of Reverse Engineering<br />
http://www.amazon.com/gp/product/0764574817/sr=1-1/qid=1138097867/ref=pd_bbs_1/002-6173215-8598445?%5Fencoding=UTF8 ; a good book for learning the basis of reversing engineering. Probably one of the best to start with. Worth its money.</p>
<p>Rootkits : Subverting the Windows Kernel<br />
http://www.amazon.com/gp/offer-listing/0321294319/ref=dp_olp_2/002-6173215-8598445?%5Fencoding=UTF8 ; an ADVANCED book, not a reading for a newbie -at all. Consider it when you wish to go a true &#8216;step ahead&#8217; in reversing. Many techniques you otherwise learn &#8216;the hard way&#8217; (sigh!) are clearly explained and shown there, a must-have. Worth its money.</p>
<p>9. Advanced Reversing Papers/Material<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Reversing an Application -Analysis Example<br />
http://www.honeynet.org/scans/scan33/nico/ ; an excellent discussion on reversing and anti-reversing techniques, from PE header to anti-debugging and virtual machines.</p>
<p>Disassembler and other tools<br />
hxxp://www.cybertech.net/~sh0ksh0k/projects/ ; a set of utilities that covers DLL injection on live/suspended, tracer, c parser (why not using yacc?) port redirector etc.</p>
<p>PE Import Table structure and Redirection<br />
hxxp://www.codeproject.com/useritems/inject2it.asp ; this article contains images and explanation of what the Import Table is, and how it can be redirected.</p>
<p>10. Hacking over the Net&#8230;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Introduction to Hacking<br />
hxxp://www.pulltheplug.org/wargames/vortex/ ; a wargame made for newbies to teach (anti-)hacking and C programming. Will teach you how manage basic exploitation techniques (and yes, tells you what an exploit is).</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Also, I suggest to google for the &#8220;programmers tools&#8221;, the org one <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Last edited by Maximus on 07-26-2007 08:29 AM, edited 65 times in total.</p>
<p>Import Table Rebuilding<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
hxxp://www.yates2k.net/rebuild.txt<br />
hxxp://sandsprite.com/CodeStuff/Underst &#8230; ports.html</p>
<p>Code Injection<br />
&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
hxxp://biw.rult.at/tuts/dlladdfunc.htm<br />
hxxp://www.woodmann.com/fravia/lazcalc.htm</p>
<p>http://www.freewebs.com/fdemunck/newbieproject1.rar</p>
<p>Online x86 Disassembler<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
PVPHP &#8211; Online Disassembler &#8211; PVPHP Is the First ever seen x86 Online<br />
Disassembler, which is capable of disassembling a PE based executable files.</p>
<p>I think the official vendor manual can be a good source of information too. Especially the volumes on system programming.<br />
IA-32 IntelÂ® Architecture Software Developer&#8217;s Manuals<br />
AMD64 Architecture Tech Docs</p>
<p>ARM Documentation<br />
AVR Documentation<br />
SH4/5 SuperH Documentation</p>
<p>Article on PE Header at Code-Breakers Journal (CBJ)<br />
contains a very detailed and easy explanation of all the PE sections (IAT -Import Address Table, EAT -Export Address Table, Sections, Directories, Resources etc.) how alter them and what they are. From beginners to experts.<br />
http://www.codebreakers-journal.com/viewarticle.php?id=74&amp;layout=abstract ;</p>
<p>Network Programming using win32asm</p>
<p>http://www.madwizard.org/programming/tutorials/netasm/</p>
<p>This is a basic website for hacking, starting with the basic</p>
<p>http://www.hackthissite.org/</p>
<p>http://www.scientific-hacking.com</p>
<p>*Use google here to find file repositories.  If  you can&#8217;t figure that out find a new hobby/profession.</p>
<p>ReWrit&#8217;s AIO Cracking CD.part1 ******* (48,8 mb)<br />
ReWrit&#8217;s AIO Cracking CD.part2 ******* (48,8 mb)<br />
ReWrit&#8217;s AIO Cracking CD.part3 ******* (5 mb)</p>
<p>Tool List:</p>
<p>few crackmes (from http://www.crackmes.de)<br />
BVReFormer<br />
Net Reflector<br />
CrypTool<br />
OllyDbg 1.10 &amp; Plugins<br />
W32Dasm 8.93 &#8211; Patched<br />
PEiD 0.93 + Plugins<br />
RDG Packer Detector v0.5.6 Beta &#8211; English<br />
ImpRec 1.6 &#8211; Fixed by MaRKuS_TH-DJM/SnD<br />
Revirgin 1.5 &#8211; Fixed<br />
LordPE De Luxe B<br />
FSG 2.0<br />
MEW 11 1.2 SE<br />
UPX 1.25 &amp; GUI<br />
SLVc0deProtector 0.61<br />
ARM Protector v0.3<br />
WinUpack v0.31 Beta<br />
dUP 2<br />
CodeFusion 3.0<br />
Universal Patcher Pro v2.0<br />
Universal Patcher v1.7<br />
Universal Loader Creator v1.2<br />
aPatch v1.07<br />
PMaker v1.2.0.0<br />
Tola&#8217;s Patch Engine v2.03b<br />
ABEL Loader v2.31<br />
Yoda&#8217;s Process Patcher<br />
Registry Patch Creator<br />
ScAEvoLa&#8217;s PatchEngine v1.33<br />
Dogbert&#8217;s Genuine Patching Engine v1.41<br />
Graphical-PatchMaker v1.4<br />
The aPE v0.0.7 BETA<br />
Liquid2<br />
PELG v0.3<br />
PrincessSandy v1.0<br />
Biew v5.6.2<br />
Hiew v7.10<br />
WinHex v12.5<br />
DeDe 3.50.04<br />
VB ’Decompiler’ Lite v0.4<br />
Flasm<br />
ACProtect &#8211; ACStripper<br />
ASPack &#8211; ASPackDie<br />
ASProtect &gt; Stripper 2.07 Final &amp; Stripper 2.11 RC2<br />
DBPE &gt; UnDBPE<br />
FSG 1.33 &gt; Pumqara&#8217;s Dumper<br />
FSG 2.00 &gt; UnFSG<br />
MEW &gt; UnMEW<br />
PeCompact 1.x &gt; UnPecomp<br />
PEncrypt &gt; UnPEncrypt<br />
PeSpin 0.3 &gt; DeSpinner 0.3<br />
tELock 0.98-1.0 &gt; UntELock<br />
EXEStealth &gt; UnStealth<br />
Xtreme-Protector / Themida &gt; XprotStripper v1.1<br />
Morphine Killer 1.1 by SuperCracker/SND<br />
ASPR Dumper v0.1<br />
Armadillo Process Detach v1.1<br />
Armadillo Dumper v1.0<br />
Armadillo Nanomite Fixer<br />
Armadillo Distance Decryptor aka Jump Table Fixer<br />
ArmTools (Translated!)<br />
ArmInline v0.1<br />
Quick Unpack v1.0b3<br />
Procdump v1.6.2<br />
TMG Ripper Studio 0.02<br />
FileMon v7 (Patched)<br />
RegMon v7 (Patched)<br />
RSATool 2<br />
DAMN HashCalc<br />
EVACleaner 2.7<br />
Process Explorer<br />
Resource Hacker<br />
PUPE 2002<br />
PointH Locator<br />
ASPR CRC Locator 1.2<br />
PE Tools 1.5 RC5<br />
API Address Finder<br />
Jump to Hex Convertor<br />
PE GeNeRaToR 1.2.1<br />
Quick File Viewer v1.0.1<br />
PE Insight 0.3b<br />
Crypto Searcher<br />
PE Editor v1.7<br />
bkslash&#8217;s Inline Patcher<br />
Stud_PE v2.1<br />
Injecta v0.2<br />
PE Rebuilder v0.96b<br />
PE Optimizer v1.4<br />
ToPo v1.2<br />
NFO Builder 2000 v1.02<br />
NFO File Maker v1.6<br />
TMG NFOmakeR v1.0<br />
hCalc</p>
<p>http://www.woodmann.com/collaborative/tools/index.php/OllyDbg_(Shadow_Modification)</p>
<p>http://www.orkspace.net/secdocs/ and spend some time there.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=52&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/01/20/where-to-start-in-reverse-engineering/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>
	</item>
		<item>
		<title>Tedroo Spambot Analysis</title>
		<link>http://malwarereversing.wordpress.com/2011/01/10/tedroo-spambot-analysis/</link>
		<comments>http://malwarereversing.wordpress.com/2011/01/10/tedroo-spambot-analysis/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 23:30:03 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[Malware]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=5</guid>
		<description><![CDATA[&#160; This is a tutorial analyzing the Tedroo spam bot. The MD5 for the binary is 37d0738dec3c65e416aec49e36db81b4. I&#8217;ve taken the binaries off the blog but send me an email ( brad _at_ reverseco (d0t) de ) if you&#8217;d like the binaries and want to dive in yourself. Thanks Greg Newman for providing this piece of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=5&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>This is a tutorial analyzing the Tedroo spam bot.  The MD5 for the binary is 37d0738dec3c65e416aec49e36db81b4.  I&#8217;ve taken the binaries off the blog but send me an email ( brad _at_ reverseco (d0t) de ) if you&#8217;d like the binaries and want to dive in yourself.  Thanks <a title="Twitter Gregory E Newman" href="http://twitter.com/#!/gregoryenewman" target="_blank">Greg Newman</a> for providing this piece of malware.  I&#8217;m going to try to keep this brief as possible and hit on only the high points of what this program does.  It&#8217;s a spam worm that has been picked up/identified by some of the popular AV engines via <a title="Virus Total Scan" href="http://www.virustotal.com/file-scan/report.html?id=195303edfc586a846c2e065d223a13b369e99b206a5174a2d44a84aaa1042257-1294700425" target="_blank">VirusTotal</a>.  This is the total from the packed exe.</p>
<p style="text-align:center;"><a href="http://malwarereversing.files.wordpress.com/2011/01/vt1.jpg"><img class="aligncenter size-full wp-image-37" title="vt1" src="http://malwarereversing.files.wordpress.com/2011/01/vt1.jpg?w=497&#038;h=467" alt="" width="497" height="467" /></a></p>
<p>Crazy enough the VirusTotal for the dumped binary has LESS of a detection prominence in the Anti-Virus community.  Not sure why that is?!?</p>
<p>As you can see this thing goes by a few different names.  Well we can fire up IDA and load up the dump that was garnered from the original executable here.  The packer isn&#8217;t identified with PEid but it was easy enough to find the OEP and use Ollydump to make a valid file.</p>
<p>After some static/dynamic analysis the dropper does a few things.  The dropper specifies the download server to connect out to as well as a decryption routine to decrypt the api&#8217;s that are included in the binary.  The algorithm for the encrypted api&#8217;s is pretty easy to reverse and it&#8217;s pseudocode is [encrypted_address+counter] XOR [0x54 + counter].  Here is a sample of one of the routines.  Later on it hides the calling conventions to these API&#8217;s to make static analysis more difficult.</p>
<p><span style="color:#c0c0c0;">.text:00403728<br />
.text:00403728 decrypt_api_ntohs: </span><span style="color:#00ff00;">; CODE XREF: start+224j<br />
</span><span style="color:#c0c0c0;">.text:00403728                 mov     dl, al<br />
.text:0040372A                 add     dl, </span><span style="color:#00ffff;">54h<br />
</span><span style="color:#c0c0c0;">.text:0040372D                 xor     byte_405590[eax], dl<br />
.text:00403733                 inc     eax<br />
.text:00403734                 cmp     eax, </span><span style="color:#00ffff;">6<br />
</span><span style="color:#c0c0c0;">.text:00403737                 jb      short decrypt_api_ntohs<br />
.text:00403739                 xor     eax, eax<br />
</span></p>
<p>This routine will decrypt the strings for the API&#8217;s that it wishes to load.  It utilizes these later by pushing the decrypted api string onto the stack then calling GetProcAddress to let the program know where it&#8217;s located in memory for future reference.</p>
<p><span style="color:#c0c0c0;">.text:00403945                 push    offset byte_40555C </span><span style="color:white;">; lpProcName<br />
</span><span style="color:#c0c0c0;">.text:0040394A                 push    dword_4059A0 </span><span style="color:white;">; hModule<br />
</span><span style="color:#c0c0c0;">.text:00403950                 mov     dword_405988, eax<br />
.text:00403955                 call    esi ; </span><span style="color:#ff00ff;">GetProcAddress<br />
</span></p>
<p>After decrypting and loading libraries that will be utilized the dropper tries to throw us off the trail by calling the Sleep API for 10 minutes.  Feel free to modify this to 0 or go grab a cup of coffee!</p>
<p><span style="color:#c0c0c0;">.text:00403A85                 push </span><span style="color:#00ffff;">927C0h </span><span style="color:white;">; dwMilliseconds<br />
</span><span style="color:#c0c0c0;">.text:00403A8A                 call    esi ; </span><span style="color:#ff00ff;">Sleep </span><span style="color:white;">; wait 10 minutes<br />
</span></p>
<p>Next up drop file routine is called and it copies itself to userini.exe in the system32 directory. This is an exact copy of the dump file that is included in the archive above.  Two threads are then created that do the spam list requesting and other things that we&#8217;ll explore now.</p>
<p><span style="color:#c0c0c0;">.text:00403A91                 push    edi<br />
.text:00403A92                 push    edi<br />
.text:00403A93                 push    edi<br />
.text:00403A94                 push    offset </span>Thread1<br />
<span style="color:#c0c0c0;">.text:00403A99                 push    edi<br />
.text:00403A9A                 push    edi<br />
.text:00403A9B                 call </span>CreateThread    <span style="color:white;">; createthread<br />
</span><span style="color:#c0c0c0;">.text:00403AA1                 push    edi<br />
.text:00403AA2                 push    edi<br />
.text:00403AA3                 push    edi<br />
.text:00403AA4                 push    offset </span>Thread2<br />
<span style="color:#c0c0c0;">.text:00403AA9                 push    edi<br />
.text:00403AAA                 push    edi<br />
.text:00403AAB                 mov     dword_405964, eax </span><span style="color:white;">; result from CreateThread<br />
</span><span style="color:#c0c0c0;">.text:00403AB0                 call </span>CreateThread<br />
<span style="color:#c0c0c0;">.text:00403AB6                 mov     dword_4059DC, eax </span><span style="color:white;">; Result from CreateThread<br />
</span></p>
<p>One thread is relegated to making sure our registry keys are made to startup and the other thread gets some encrypted xml from the spam server.  Most notable registry locations that have been plucked from the subroutine @ 401CB4 are&#8230;.</p>
<p>Software\Microsoft\Windows\CurrentVersion\run<br />
Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run<br />
Software\Microsoft\Windows\CurrentVersion\Explorer</p>
<p>There are additional registry strings that are in the file but are not currently used.  The others attempt to modify firewall settings to make sure the malware has an open line to the internet.  The next step is to report to the spam server and do it&#8217;s bidding.  The second thread in the program forms a http GET request that has a similar structure to this url http://[SPAM_SERVER_IP]/source/zxhttr.php?id=[WINDOWS_REGID]&amp;tick=[UPTIME_DATA]&amp;ver=[WSOCKVER]&amp;smtp=ok&amp;task=3&#8243;.  Once the response is read into the buffer this is our encrypted xml string that contains who to spam, what to spam them with.  This information can change and it looks like the program has a capability to update itself if the botmasters decide to serve up something else.  Here is the routine where the string is formatted before it hits the wire.</p>
<p><span style="color:#c0c0c0;">.text:0040321B<br />
.text:0040321B </span>Format_String_Wire<span style="color:#c0c0c0;">:                     ; &#8220;202&#8243;<br />
.text:0040321B                 push    offset a202<br />
.text:00403220                 call </span>atoi<br />
<span style="color:#c0c0c0;">.text:00403225                 pop     ecx<br />
.text:00403226                 push    dword_405A0C<br />
.text:0040322C                 push    offset aOk      ; &#8220;ok&#8221;<br />
.text:00403231                 push    eax<br />
.text:00403232                 call    dword_405694<br />
.text:00403238                 mov     ebx, ds:</span><span style="color:#ff00ff;">sprintf<br />
</span><span style="color:#c0c0c0;">.text:0040323E                 push    eax<br />
.text:0040323F                 push    offset Dest<br />
.text:00403244                 push    offset aSourceZxhttr_p ; &#8220;/source/zxhttr.php&#8221;<br />
.text:00403249                 lea     eax, [ebp+</span><span style="color:#00ff00;">Dest</span><span style="color:#c0c0c0;">]<br />
.text:0040324F                 push    offset aS?idSTickDVerD ; &#8220;%s?id=%s&amp;tick=%d&amp;ver=%d&amp;smtp=%s&amp;task=%d&#8221;&#8230;<br />
.text:00403254                 push    eax </span><span style="color:white;">; Dest<br />
</span><span style="color:#c0c0c0;">.text:00403255                 call    ebx ; </span><span style="color:#ff00ff;">sprintf<br />
</span></p>
<p>Now if you notice there&#8217;s a few variables that get passed back to the spam server.  ID is our unique windows id from the regkey &#8220;id&#8221; @ HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer.  Tick is derived from GetTickCount API which reports back how long it&#8217;s been since we&#8217;ve booted up so this returns uptime data to the spammers.  Version is hardcoded in the program but appears to request version 2.02 of windows sockets.  Task is an internal notation to the spam server to flag &#8220;3&#8243; as sending out spam activity.</p>
<p>*If you also notice this particular server is running Server: nginx/0.6.32.  This was fished out of the http response.  Notice there are numerous exploits for this server and how it was probably compromised into a spam press!  Use the following search string to track some down (nginx + &#8220;security advisory&#8221; + &#8220;0.6.32&#8243;).  Of course you can modify this to find POC&#8217;s or whatnot .</p>
<p>Next we&#8217;re going to dive into the decryption routine for the http response as well as utilize some code to do this for us.</p>
<p><span style="color:#c0c0c0;">.text:00401874<br />
.text:00401874 Decrypt_HTTP_Stream: </span><span style="color:#00ff00;">; CODE XREF: sub_40184E+5Fj<br />
</span><span style="color:#c0c0c0;">.text:00401874                 push    [ebp+</span><span style="color:#00ff00;">var_8</span><span style="color:#c0c0c0;">]<br />
.text:00401877                 lea     eax, [ebp+</span><span style="color:#00ff00;">var_1</span><span style="color:#c0c0c0;">]<br />
.text:0040187A                 call    sub_401223<br />
.text:0040187F                 mov     al, byte ptr Dest[edi]<br />
.text:00401885                 add     al, </span><span style="color:#00ffff;">20h<br />
</span><span style="color:#c0c0c0;">.text:00401887                 xor     al, [ebp+</span><span style="color:#00ff00;">var_1</span><span style="color:#c0c0c0;">]<br />
.text:0040188A                 inc     edi<br />
.text:0040188B                 mov     [esi+ebx], al<br />
.text:0040188E                 mov     eax, offset Dest<br />
.text:00401893                 lea     ecx, [eax+</span><span style="color:#00ffff;">1</span><span style="color:#c0c0c0;">]<br />
</span></p>
<p>I&#8217;m going to use python here btw.  Python to construct the http responses as it&#8217;s very quick/easy to utilize urllib2 to construct this data and save it.  Here is the <a title="python tedroo getter" href="http://www.mediafire.com/?d1gp955uqyilifw">source.</a> The decryption algorithm works like this.  The original stream thats taken take the 2 bytes and produce a hex representation of them.  &#8220;68&#8243; would be 0&#215;68.  Take this and XOR this with the ID from HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\id + 0&#215;20.  So if the first character from your id is &#8220;4&#8243; it&#8217;d be 0&#215;34 + 0&#215;20 = 0&#215;54.  0&#215;54 XOR 0&#215;68 gives us 0x3C which is &#8220;&lt;&#8221; or the first character of an xml formatted tag.  Here is an example of a decrypted portion from the server.</p>
<p>&lt;config&gt;<br />
&lt;/config&gt;<br />
&lt;info&gt;<br />
taskid=3<br />
realip=MY_IP_HERE<br />
hostname=MY_HOSTNAME_HERE<br />
style=0<br />
&lt;/info&gt;<br />
&lt;emails&gt;<br />
email123@spamme.com<br />
email12390@email.com<br />
&lt;/emails&gt;<br />
&lt;/info&gt;</p>
<p>This is how the response looks after decryption and directs the program flow throughout the bot.  The python script should clear up any questions you may have.  This could change as the botmasters could serve up a different program.  The flags to look for those routines are run and update.  I&#8217;m thinking about coding up a php emulator to do just this for analysis or if anyone wants to volunteer that for additional study it&#8217;d be great <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>After our stream is processed in the program begins formatting email messages to send out over the wire.  Processing occurs like this.</p>
<p><span style="color:#c0c0c0;">.text:00401E1C<br />
.text:00401E1C                 push    ebp<br />
.text:00401E1D                 mov     ebp, esp<br />
.text:00401E1F                 sub     esp, </span><span style="color:#00ffff;">258h<br />
</span><span style="color:#c0c0c0;">.text:00401E25                 push    ebx<br />
.text:00401E26                 push    esi<br />
.text:00401E27                 push    edi<br />
.text:00401E28                 mov     esi, offset aHostname ; &#8220;hostname=&#8221;<br />
.text:00401E2D                 lea     edi, [ebp+</span><span style="color:#00ff00;">var_48</span><span style="color:#c0c0c0;">]<br />
.text:00401E30                 movsd<br />
.text:00401E31                 movsd<br />
.text:00401E32                 movsw<br />
.text:00401E34                 mov     esi, offset aStyle ; &#8220;style=&#8221;<br />
.text:00401E39                 lea     edi, [ebp+</span><span style="color:#00ff00;">var_30</span><span style="color:#c0c0c0;">]<br />
.text:00401E3C                 movsd<br />
.text:00401E3D                 movsw<br />
.text:00401E3F                 movsb<br />
.text:00401E40                 mov     eax, ds:dword_4042C8<br />
.text:00401E45                 mov     esi, offset aEmails ; &#8220;&lt;emails&gt;&#8221;<br />
.text:00401E4A                 lea     edi, [ebp+</span><span style="color:#00ff00;">var_3C</span><span style="color:#c0c0c0;">]<br />
.text:00401E4D                 movsd<br />
.text:00401E4E                 movsd<br />
.text:00401E4F                 movsb<br />
.text:00401E50                 mov     esi, offset aInfo ; &#8220;&lt;info&gt;&#8221;<br />
.text:00401E55                 lea     edi, [ebp+</span><span style="color:#00ff00;">SubStr</span><span style="color:#c0c0c0;">]<br />
.text:00401E58                 movsd<br />
.text:00401E59                 movsw<br />
.text:00401E5B                 movsb<br />
.text:00401E5C                 mov     esi, offset aText ; &#8220;&lt;text&gt;&#8221;<br />
.text:00401E61                 lea     edi, [ebp+</span><span style="color:#00ff00;">var_1C</span><span style="color:#c0c0c0;">]<br />
.text:00401E64                 mov     [ebp+</span><span style="color:#00ff00;">var_28</span><span style="color:#c0c0c0;">], eax<br />
.text:00401E67                 mov     eax, ds:dword_4042CC<br />
</span></p>
<p>Most notably these functions calls are around 402bd4 and it Create&#8217;s a seperate thread for each email message being sent.  The email send routine is @ 4022BE.  This basically queries the DNS of the spamee&#8217;s domain to see what mail server it resolves too.</p>
<p>&lt;span style=&quot;color:#c0c0c0&quot;&gt;.text:004022BE ; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
.text:004022BE<br />
.text:004022BE Email_Send:                             </span><span style="color:#00ff00;">; CODE XREF: sub_402263+4Fj<br />
</span><span style="color:#c0c0c0;">.text:004022BE                 push    esi             </span><span style="color:white;">; Size<br />
</span><span style="color:#c0c0c0;">.text:004022BF                 push    ebx             </span><span style="color:white;">; Val<br />
</span><span style="color:#c0c0c0;">.text:004022C0                 push    ebp             </span><span style="color:white;">; Dst<br />
</span><span style="color:#c0c0c0;">.text:004022C1                 call    </span>memset<br />
<span style="color:#c0c0c0;">.text:004022C6                 add     esp, </span><span style="color:#00ffff;">0Ch<br />
</span><span style="color:#c0c0c0;">.text:004022C9                 push    ebx<br />
.text:004022CA                 lea     eax, [esp+</span><span style="color:#00ffff;">1Ch</span><span style="color:#c0c0c0;">+</span><span style="color:#00ff00;">var_4</span><span style="color:#c0c0c0;">]<br />
.text:004022CE                 push    eax<br />
.text:004022CF                 push    ebx<br />
.text:004022D0                 push    ebx<br />
.text:004022D1                 push    </span><span style="color:#00ffff;">0Fh<br />
</span><span style="color:#c0c0c0;">.text:004022D3                 push    [esp+</span><span style="color:#00ffff;">2Ch</span><span style="color:#c0c0c0;">+</span><span style="color:#00ff00;">Email_Domain</span><span style="color:#c0c0c0;">]<br />
.text:004022D7                 call    </span>dnsapi_DnsQueryA<br />
<span style="color:#c0c0c0;">.text:004022DD                 test    eax, eax<br />
.text:004022DF                 jnz     loc_402681<br />
.text:004022E5                 mov     ecx, [esp+</span><span style="color:#00ffff;">18h</span><span style="color:#c0c0c0;">+</span><span style="color:#00ff00;">var_4</span><span style="color:#c0c0c0;">]<br />
.text:004022E9                 call    </span>Get_MailServer<br />
<span style="color:#c0c0c0;">.text:004022EE                 mov     edi, eax        </span><span style="color:white;">; return mailserver of said domain<br />
</span><span style="color:#c0c0c0;">.text:004022F0                 cmp     edi, ebx<br />
.text:004022F2                 jz      loc_40265C<br />
.text:004022F8                 push    edi<br />
.text:004022F9                 push    offset aConnectingS___ ; &quot;Connecting %s &#8230;\r\n&quot;<br />
.text:004022FE                 push    ebp             </span><span style="color:white;">; Dest<br />
</span><span style="color:#c0c0c0;">.text:004022FF                 call    ds:</span><span style="color:#ff00ff;">sprintf<br />
</span></p>
<p>Then it builds the packet to send and sends out the mail request using to/from as the same person and it sends out some viagra spam to that mail domain.  Here is the following html that it sends out.</p>
<table style="width:896px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="font:normal 11px Verdana, sans-serif;color:#333;" align="left"><a>Click here!</a></td>
</tr>
<tr>
<td align="left"><a href="http://DONTGOHERErhhaurnd.com"><br />
<img style="border-width:0;" src="http://t5mopq.blu.livefilestore.com/y1pgdF5w-wJU57jPY319lbU8CmUhHuYHZXhntEsH1uPE3nwWIzKEgx9MCo1BC31Qbuldge_LKFQL_2eirfON0_sFpGLwFZe8JlV/bakgprjx.jpg" alt="" /></a></td>
</tr>
<p>..</tbody>
</table>
<p>..</p>
<p>Please don&#8217;t follow the links as it could be later modified to have some form of drive by downloading</p>
<p>Most namely are update/run.  So it looks like this server could switch over and begin hosting more malicious binaries that may install a rootkit or a more advanced spambot!  I hope you enjoyed this tear-down and feel free to leave feedback in the comments section. </p>
<p>*PS Large cash donation and firstborn children can be sent to my email as I&#8217;m a hobbyist!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=5&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/01/10/tedroo-spambot-analysis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>

		<media:content url="http://malwarereversing.files.wordpress.com/2011/01/vt1.jpg" medium="image">
			<media:title type="html">vt1</media:title>
		</media:content>

		<media:content url="http://t5mopq.blu.livefilestore.com/y1pgdF5w-wJU57jPY319lbU8CmUhHuYHZXhntEsH1uPE3nwWIzKEgx9MCo1BC31Qbuldge_LKFQL_2eirfON0_sFpGLwFZe8JlV/bakgprjx.jpg" medium="image" />
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://malwarereversing.wordpress.com/2011/01/10/hello-world/</link>
		<comments>http://malwarereversing.wordpress.com/2011/01/10/hello-world/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 23:27:23 +0000</pubDate>
		<dc:creator>malwareninja</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://malwarereversing.wordpress.com/?p=1</guid>
		<description><![CDATA[#include &#60;iostream.h&#62; &#160; main() { printf(&#8220;Hello world?!?&#8221;); return 0; }<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=1&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>#include &lt;iostream.h&gt;</p>
<p>&nbsp;</p>
<p>main()</p>
<p>{</p>
<p>printf(&#8220;Hello world?!?&#8221;);</p>
<p>return 0;</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/malwarereversing.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/malwarereversing.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/malwarereversing.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/malwarereversing.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/malwarereversing.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/malwarereversing.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/malwarereversing.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/malwarereversing.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/malwarereversing.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/malwarereversing.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/malwarereversing.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/malwarereversing.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/malwarereversing.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/malwarereversing.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=malwarereversing.wordpress.com&amp;blog=19015966&amp;post=1&amp;subd=malwarereversing&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://malwarereversing.wordpress.com/2011/01/10/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8fa4b60fd0d4e0ec353f540c44055ae9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">malwareninja</media:title>
		</media:content>
	</item>
	</channel>
</rss>
