<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>!exploitable Crash Analyzer - MSEC Debugger Extensions</title><link>http://msecdbg.codeplex.com/project/feeds/rss</link><description>&amp;#33;exploitable &amp;#40;pronounced &amp;#8220;bang exploitable&amp;#8221;&amp;#41;  is a Windows  debugging  extension &amp;#40;Windbg&amp;#41; that provides automated crash analysis and security risk assessment.  </description><item><title>New Post: Arguments to debugWrapper script</title><link>http://msecdbg.codeplex.com/discussions/280326</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi, I think the debugWrapper script is going to be useful to me. Would anyone be able to explain these two parameters to the script?&lt;/p&gt;
&lt;p&gt;@REM&amp;nbsp; ^%~2 = command line arguments including tempate name if needed. I.E. &amp;quot;/C:search&amp;quot; TemplateFile.txt&lt;br&gt;
@REM&amp;nbsp; ^%~3 = Temple file to process.&lt;/p&gt;
&lt;p&gt;What is a template file supposed to be, and which parameter number should it be? Which parameter number should the input file, that causes an application crash, be? I'm a bit confusion by the repetition of &amp;quot;template&amp;quot; in parameters 2 and 3.&lt;/p&gt;
&lt;p&gt;Thanks for the help!&lt;/p&gt;
&lt;/div&gt;</description><author>heykart</author><pubDate>Mon, 21 Nov 2011 22:07:02 GMT</pubDate><guid isPermaLink="false">New Post: Arguments to debugWrapper script 20111121100702P</guid></item><item><title>New Post: Some documentation on the tool</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=239128</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;In the introduction to the tool, it is mentioned that more details are provided in the following .pptx file, but I could not get any file. I am looking for details on how this tools classifies the vulnerability as highly/less exploitable i.e. what are the
 parameters that are considered. Pointer to any articles or blog entries are appreciated.&lt;/p&gt;
&lt;p&gt;thanks &amp;amp; regards&lt;/p&gt;
&lt;p&gt;-sanjay&lt;/p&gt;
&lt;/div&gt;</description><author>tosanjay</author><pubDate>Tue, 21 Dec 2010 15:46:25 GMT</pubDate><guid isPermaLink="false">New Post: Some documentation on the tool 20101221034625P</guid></item><item><title>New Post: Can't build 64bit msec.dll under .NET 4</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=234982</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I get this error when trying to load MSECDbgExts64 in Visual C&amp;#43;&amp;#43; 2008 express&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000cc"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline"&gt;The project consists entirely of configurations that require support for platforms which are not installed on this machine.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000cc"&gt;I think it has something to do with the latest version of the windbg SDK for win 7 and .NET framework 4. Any thoughts? Has anyone tried this and have it work?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I was able to build&amp;nbsp;&amp;nbsp;MSECDbgExts32 but that dll isn't compatible with the 64bit version of the debugger I installed on my OS (win 7 home premium).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EDIT: Never mind, I saw the readme caveat that that express edition of C&amp;#43;&amp;#43; won't work for the 64bit.&lt;/p&gt;
&lt;/div&gt;</description><author>puckaby</author><pubDate>Wed, 17 Nov 2010 07:53:53 GMT</pubDate><guid isPermaLink="false">New Post: Can't build 64bit msec.dll under .NET 4 20101117075353A</guid></item><item><title>Updated Release: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009)</title><link>http://msecdbg.codeplex.com/releases/view/28935</link><description>&lt;div class="wikidoc"&gt;New MSECExtensions bits, changelog below:&lt;br /&gt;&lt;br /&gt;1.0.1 Updates:&lt;br /&gt;&lt;br /&gt;A bug that resulted in overtainting H or L registers has been fixed.&lt;br /&gt;Initial External Release: March, 2009&lt;br /&gt;&lt;br /&gt;1.0.2 Updates:&lt;br /&gt;&lt;br /&gt;When loading user mode mini-dumps, the Gather rule now correctly sets the stack context.&lt;br /&gt;&lt;br /&gt;1.0.3 Updates:&lt;br /&gt;&lt;br /&gt;New state and gather functionality and analyze rules to identify exceptions where the faulting address is on the stack.&lt;br /&gt;Hashes are fixed at 32 bit display (8 hex characters) and code locations are fixed at 64 bit display (16 hex characters).&lt;br /&gt;Added support for the REP SCAS instruction in the disassembler&lt;br /&gt;Fixed a serious bug in the wildcard match function, which would result in anything that matched up to the first wildcard matching the entire string&lt;br /&gt;Fixed a bug in which the destination pointer registers were not being set to the tainted value set for Write AVs that required taint analysis&lt;br /&gt;Fixed bugs in the distinction between source and data registers for taint tracking in some rep instructions&lt;br /&gt;&lt;br /&gt;1.0.4 Updates:&lt;br /&gt;&lt;br /&gt;Fixed a reporting and analysis bug, in which we change the faulting instruction as well as the invoking function when we skip excluded stack frames&lt;br /&gt;&lt;br /&gt;1.0.5 Updates:&lt;br /&gt;&lt;br /&gt;Updates to the excluded symbols list&lt;br /&gt;Handle POP instructions that pop to memory&lt;br /&gt;Handle PUSH instructions that push to memory&lt;br /&gt;Treat POP instructions to memory the same as MOV instructions to memory&lt;br /&gt;&lt;br /&gt;1.0.6 Updates:&lt;br /&gt;&lt;br /&gt;External Release: June, 2009&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jasoshi</author><pubDate>Fri, 13 Aug 2010 00:30:11 GMT</pubDate><guid isPermaLink="false">Updated Release: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009) 20100813123011A</guid></item><item><title>Released: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009)</title><link>http://msecdbg.codeplex.com/releases/view/28935</link><description>&lt;div class=wikidoc&gt;New MSECExtensions bits, changelog below:&lt;br&gt;&lt;br&gt;1.0.1 Updates:&lt;br&gt;&lt;br&gt;A bug that resulted in overtainting H or L registers has been fixed.&lt;br&gt;Initial External Release: March, 2009&lt;br&gt;&lt;br&gt;1.0.2 Updates:&lt;br&gt;&lt;br&gt;When loading user mode mini-dumps, the Gather rule now correctly sets the stack context.&lt;br&gt;&lt;br&gt;1.0.3 Updates:&lt;br&gt;&lt;br&gt;New state and gather functionality and analyze rules to identify exceptions where the faulting address is on the stack.&lt;br&gt;Hashes are fixed at 32 bit display (8 hex characters) and code locations are fixed at 64 bit display (16 hex characters).&lt;br&gt;Added support for the REP SCAS instruction in the disassembler&lt;br&gt;Fixed a serious bug in the wildcard match function, which would result in anything that matched up to the first wildcard matching the entire string&lt;br&gt;Fixed a bug in which the destination pointer registers were not being set to the tainted value set for Write AVs that required taint analysis&lt;br&gt;Fixed bugs in the distinction between source and data registers for taint tracking in some rep instructions&lt;br&gt;&lt;br&gt;1.0.4 Updates:&lt;br&gt;&lt;br&gt;Fixed a reporting and analysis bug, in which we change the faulting instruction as well as the invoking function when we skip excluded stack frames&lt;br&gt;&lt;br&gt;1.0.5 Updates:&lt;br&gt;&lt;br&gt;Updates to the excluded symbols list&lt;br&gt;Handle POP instructions that pop to memory&lt;br&gt;Handle PUSH instructions that push to memory&lt;br&gt;Treat POP instructions to memory the same as MOV instructions to memory&lt;br&gt;&lt;br&gt;1.0.6 Updates:&lt;br&gt;&lt;br&gt;External Release: June, 2009&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</description><author></author><pubDate>Fri, 13 Aug 2010 00:30:11 GMT</pubDate><guid isPermaLink="false">Released: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009) 20100813123011A</guid></item><item><title>Source code checked in, #52406</title><link>http://msecdbg.codeplex.com/SourceControl/changeset/changes/52406</link><description>Checked in by server upgrade</description><author>_TFSSERVICE</author><pubDate>Tue, 20 Jul 2010 20:45:25 GMT</pubDate><guid isPermaLink="false">Source code checked in, #52406 20100720084525P</guid></item><item><title>New Post: Major/Minor hash</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=219302</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I'm a little confused about this major and minor hash. Why does it&amp;nbsp;look like a memory address? What exactly is being hashed? And what's&amp;nbsp;the difference between major and minor?&lt;/p&gt;&lt;/div&gt;</description><author>thebogman87</author><pubDate>Tue, 13 Jul 2010 14:15:07 GMT</pubDate><guid isPermaLink="false">New Post: Major/Minor hash 20100713021507P</guid></item><item><title>New Post: How to compile windbg extension code for windows device driver using DDK.</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=203658</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am facing problem, while I am writting and compiling code for windbg. I am new to windbg extension code writting.&lt;/p&gt;
&lt;p&gt;I need to know basic steps to compile code using DDK.&lt;/p&gt;
&lt;p&gt;If anyone have some good example of it, pl. share with me. My id is &lt;a href="mailto:callforkumar@yahoo.com"&gt;callforkumar@yahoo.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Raj&lt;/p&gt;&lt;/div&gt;</description><author>rajdesire</author><pubDate>Wed, 03 Mar 2010 12:48:31 GMT</pubDate><guid isPermaLink="false">New Post: How to compile windbg extension code for windows device driver using DDK. 20100303124831P</guid></item><item><title>New Post: Installing/Running/Using - How?</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=60464</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi tsp,&lt;/p&gt;
&lt;p&gt;You issue that command from inside WinDbg.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In answer to your other question, the only tool you need to use !exploitable is the Windows Debugger (WinDbg or the command line equivalents).&lt;/p&gt;
&lt;p&gt;--Dave&lt;/p&gt;&lt;/div&gt;</description><author>DaveWeinstein</author><pubDate>Mon, 20 Jul 2009 17:40:07 GMT</pubDate><guid isPermaLink="false">New Post: Installing/Running/Using - How? 20090720054007P</guid></item><item><title>New Post: Installing/Running/Using - How?</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=60464</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi Dave,&lt;/p&gt;
&lt;p&gt;I went through readme and it says to use !load winext\MSEC.dll to load !exploitable to windbg. I have no clue from where I should initiate this command. Readme appears to be very high level document to me. Can you explain how to load this dll to windbg? Also, Can I use Vista to load w2k3 symbols to read crash dump on Windows 2003? Do we require VC2008 ++ to use !exploitable?&lt;/p&gt;
&lt;p&gt;TIA&lt;/p&gt;&lt;/div&gt;</description><author>tsp</author><pubDate>Fri, 17 Jul 2009 17:50:09 GMT</pubDate><guid isPermaLink="false">New Post: Installing/Running/Using - How? 20090717055009P</guid></item><item><title>New Post: Is /GS violation really exploitable?</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=62165</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi Jim,&lt;/p&gt;
&lt;p&gt;The /GS stack protection is considered defense in depth. It is bad practice to depend on defense in depth mechanisms, because that removes the &amp;quot;in depth&amp;quot;. Compile them in, turn them on, but don't allow their existence to be used as a rationale for leaving vulnerable code in place.&lt;/p&gt;
&lt;p&gt;To&amp;nbsp;use an analogy, the fact that I have airbags in my car does not mean I shouldn't worry about the fact that my brakes don't work.&lt;/p&gt;
&lt;p&gt;In the case of a /GS violation, we know that there is an unconstrained (or improperly constrained) copy onto the stack. If the state of the art is such that an attacker is able to evade the version of /GS that the application was compiled against, then the attacker has the ability to get remote execution of code.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; --Dave&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>DaveWeinstein</author><pubDate>Mon, 13 Jul 2009 23:31:10 GMT</pubDate><guid isPermaLink="false">New Post: Is /GS violation really exploitable? 20090713113110P</guid></item><item><title>New Post: Installing/Running/Using - How?</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=60464</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi Gunny,&lt;/p&gt;
&lt;p&gt;The compiled debugger extensions are actually a DLL, which is loaded into the Windows Debugger (WinDbg). You can find instructions on how to use it in the readme file included in the package.&lt;/p&gt;
&lt;p&gt;--Dave&lt;/p&gt;&lt;/div&gt;</description><author>DaveWeinstein</author><pubDate>Mon, 13 Jul 2009 23:26:42 GMT</pubDate><guid isPermaLink="false">New Post: Installing/Running/Using - How? 20090713112642P</guid></item><item><title>New Post: Is /GS violation really exploitable?</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=62165</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;I fuzzed a network application, and !exploitable gave me this analysis of the crash dump:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;Exploitability Classification: EXPLOITABLE&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;Recommended Bug Title: Exploitable - Stack Buffer Overrun (/GS Exception) starting at &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;An overrun of a protected stack buffer has been detected. This is considered exploitable, and must be fixed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;My questions is:&amp;nbsp; If this was detected by the /GS stack protection, then is it really exploitable?&amp;nbsp; Isn't GS doing its job, and preventing this from being exploitable?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;Thanks!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;Jim&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>jvonder</author><pubDate>Fri, 10 Jul 2009 20:39:28 GMT</pubDate><guid isPermaLink="false">New Post: Is /GS violation really exploitable? 20090710083928P</guid></item><item><title>New Post: Installing/Running/Using - How?</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=60464</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I have downloaded the MSEC Debugger Extensins 1.0.6 package, but it contains no executables (.exe) files in it.&lt;/p&gt;
&lt;p&gt;How do I install or run or use it?&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Gunny&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>tahilg</author><pubDate>Wed, 24 Jun 2009 01:59:55 GMT</pubDate><guid isPermaLink="false">New Post: Installing/Running/Using - How? 20090624015955A</guid></item><item><title>Updated Wiki: Home</title><link>http://msecdbg.codeplex.com/Wiki/View.aspx?title=Home&amp;version=9</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;&amp;#33;exploitable &amp;#40;pronounced &amp;#8220;bang exploitable&amp;#8221;&amp;#41;  is a Windows  debugging  extension &amp;#40;Windbg&amp;#41; that provides automated crash analysis and security risk assessment.    The tool first creates hashes to determine the uniqueness of a crash and then assigns an exploitability rating to the crash: Exploitable, Probably Exploitable, Probably Not Exploitable, or Unknown.  There is more detailed information about the tool in the following .pptx file or at &lt;a href="http://www.microsoft.com/security/msec" class="externalLink"&gt;http://www.microsoft.com/security/msec&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  Additonally, see the blog post at &lt;a href="http://blogs.technet.com/srd/archive/2009/04/08/the-history-of-the-exploitable-crash-analyzer.aspx" class="externalLink"&gt;http://blogs.technet.com/srd/archive/2009/04/08/the-history-of-the-exploitable-crash-analyzer.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, or watch the video at &lt;a href="http://channel9.msdn.com/posts/PDCNews/Bang-Exploitable-Security-Analyzer/" class="externalLink"&gt;http://channel9.msdn.com/posts/PDCNews/Bang-Exploitable-Security-Analyzer/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This tool was created by the Microsoft Security Engineering Center (MSEC) Security Science Team.  For more information on MSEC and the Security Science team, please visit &lt;a href="http://www.microsoft.com/security/msec" class="externalLink"&gt;http://www.microsoft.com/security/msec&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  To see what's being worked on presently, visit the Security Research and Development blog at &lt;a href="http://blogs.technet.com/srd/" class="externalLink"&gt;http://blogs.technet.com/srd/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;New bits posted on 6/17, changelog below:&lt;br /&gt;&lt;br /&gt;1.0.1 Updates:&lt;br /&gt;&lt;br /&gt;A bug that resulted in overtainting H or L registers has been fixed.&lt;br /&gt;Initial External Release: March, 2009&lt;br /&gt;&lt;br /&gt;1.0.2 Updates:&lt;br /&gt;&lt;br /&gt;When loading user mode mini-dumps, the Gather rule now correctly sets the stack context.&lt;br /&gt;&lt;br /&gt;1.0.3 Updates:&lt;br /&gt;&lt;br /&gt;New state and gather functionality and analyze rules to identify exceptions where the faulting address is on the stack.&lt;br /&gt;Hashes are fixed at 32 bit display (8 hex characters) and code locations are fixed at 64 bit display (16 hex characters).&lt;br /&gt;Added support for the REP SCAS instruction in the disassembler&lt;br /&gt;Fixed a serious bug in the wildcard match function, which would result in anything that matched up to the first wildcard matching the entire string&lt;br /&gt;Fixed a bug in which the destination pointer registers were not being set to the tainted value set for Write AVs that required taint analysis&lt;br /&gt;Fixed bugs in the distinction between source and data registers for taint tracking in some rep instructions&lt;br /&gt;&lt;br /&gt;1.0.4 Updates:&lt;br /&gt;&lt;br /&gt;Fixed a reporting and analysis bug, in which we change the faulting instruction as well as the invoking function when we skip excluded stack frames&lt;br /&gt;&lt;br /&gt;1.0.5 Updates:&lt;br /&gt;&lt;br /&gt;Updates to the excluded symbols list&lt;br /&gt;Handle POP instructions that pop to memory&lt;br /&gt;Handle PUSH instructions that push to memory&lt;br /&gt;Treat POP instructions to memory the same as MOV instructions to memory&lt;br /&gt;&lt;br /&gt;1.0.6 Updates:&lt;br /&gt;&lt;br /&gt;External Release: June, 2009&lt;/div&gt;</description><author>jasoshi</author><pubDate>Tue, 23 Jun 2009 16:57:13 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090623045713P</guid></item><item><title>New Post: Command options for !exploitable</title><link>http://msecdbg.codeplex.com/Thread/View.aspx?ThreadId=56156</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Sumit,&lt;/p&gt;
&lt;p&gt;Sorry for the long delay, I've got a batch file for you though, just take the below, throw it in notepad, and then save it as a .bat.&amp;nbsp; Let us know if you have any questions.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Jason&lt;/p&gt;
&lt;p&gt;Code begins==&amp;gt;&lt;/p&gt;
&lt;pre&gt;@echo off
setlocal ENABLEEXTENSIONS
@REM get local Path of script
for /F %%I in (&amp;quot;%0&amp;quot;) do set localDir=%%~dpI

@REM Check for MSEC.dll in current directory, and in script directory
if not exist .\msec.dll (
	if not exist %localDir%\msec.dll (
		echo.
		echo MSEC.dll not in current directory, please copy MSEC.dll locally and 
		echo rerun classify.bat.
		echo.
		goto error
	) else (
		set msecPath=%localdir%\msec.dll
	)
) else (
	set msecPath=.\msec.dll
)

@REM Check that cdb.exe is in the path or local directory
WHERE /Q cdb.exe
IF  ERRORLEVEL 1 (
    echo.
    echo cdb.exe was not found in the local directory or path
    echo.
    goto error
  )

@REM Validate First Parameter 
if /i &amp;quot;%~1&amp;quot; EQU &amp;quot;&amp;quot; goto Usage
if /i &amp;quot;%~1&amp;quot; EQU &amp;quot;/?&amp;quot; goto Usage
if /i &amp;quot;%~1&amp;quot; EQU &amp;quot;-?&amp;quot; goto Usage
if /i &amp;quot;%~1&amp;quot; EQU &amp;quot;/help&amp;quot; goto Usage
if /i &amp;quot;%~1&amp;quot; EQU &amp;quot;-help&amp;quot; goto Usage
if not exit &amp;quot;%~1&amp;quot; (
	echo.
    echo &amp;quot;%~1&amp;quot; could not be found.
    echo.
    goto error
)

@REM Validate second Parameter
if /i &amp;quot;%~2&amp;quot; EQU &amp;quot;&amp;quot; goto Usage
if exist &amp;quot;%~2&amp;quot; (
  dir /a:d &amp;quot;%~2&amp;quot; &amp;gt; nul
  IF  ERRORLEVEL 1 (
    echo.
    echo &amp;quot;%~2&amp;quot; is a file, the second paremeter should be a directory
    echo.
    goto error
  )
)

@REM ERROR Checking Is Over
set Hash=
set Type=
set Exploitability=
set tempLog=.\ExploitableLog-%random%.Log

cdb -z &amp;quot;%~1&amp;quot; -a%msecPath% -c &amp;quot;.symfix+; .reload; .logopen \&amp;quot;%tempLog%\&amp;quot;;!exploitable -m;.logclose;q&amp;quot;

for /f &amp;quot;tokens=1* delims=:&amp;quot; %%a in (%tempLog%) do (
	for /f &amp;quot;tokens=1*&amp;quot; %%c in (&amp;quot;%%b&amp;quot;) do (
	   if /i &amp;quot;%%a&amp;quot; EQU &amp;quot;MAJOR_HASH&amp;quot; set MajorHash=%%c
	   if /i &amp;quot;%%a&amp;quot; EQU &amp;quot;MINOR_HASH&amp;quot; set MinorHash=%%c
	   if /i &amp;quot;%%a&amp;quot; EQU &amp;quot;SHORT_DESCRIPTION&amp;quot; set Type=%%c
	   if /i &amp;quot;%%a&amp;quot; EQU &amp;quot;CLASSIFICATION&amp;quot; set Exploitability=%%c
	)
)

set ResultDir=%~2\%CrashDir%\%Exploitability%\%type%\%MajorHash%\%MinorHash%
md &amp;quot;%ResultDir%&amp;quot;
copy /b /y &amp;quot;%~1&amp;quot; &amp;quot;%ResultDir%&amp;quot;
copy /b /y %tempLog% &amp;quot;%ResultDir%&amp;quot;
del /q %tempLog%
goto end

:usage
Echo classify.bat ^ ^
echo.
echo Classify.bat will place the specified dump and log into a directory structure as follows:
echo.
echo ^\^\^\^
echo.
echo Examples:
echo ^\EXPLOITABLE\WriteAV\0x6e05193a\0x7505193a
echo ^\PROBABLY_EXPLOITABLE\TaintedDataControlsCodeFlow\0x6e05193a\0x7505193a
echo ^\UNKNOWN\PossibleStackCorruption\0x6e05193a\0x7505193a
echo.
echo Classify.bat requires MSEC.dll to be in the current directory and cdb to be 
echo in the path.
echo.
echo To easily run classify.bat against a set of dumps try the following command:
echo.
echo for /R . ^%%a in (*.dmp) do classify.bat ^%%a C:\Crashes
echo.
goto error
:error
exit /b 1
:end
exit /b 0&lt;/pre&gt;&lt;/div&gt;</description><author>jasoshi</author><pubDate>Fri, 19 Jun 2009 18:25:46 GMT</pubDate><guid isPermaLink="false">New Post: Command options for !exploitable 20090619062546P</guid></item><item><title>Updated Wiki: Home</title><link>http://msecdbg.codeplex.com/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;&amp;#33;exploitable &amp;#40;pronounced &amp;#8220;bang exploitable&amp;#8221;&amp;#41;  is a Windows  debugging  extension &amp;#40;Windbg&amp;#41; that provides automated crash analysis and security risk assessment.    The tool first creates hashes to determine the uniqueness of a crash and then assigns an exploitability rating to the crash: Exploitable, Probably Exploitable, Probably Not Exploitable, or Unknown.  There is more detailed information about the tool in the following .pptx file or at &lt;a href="http://www.microsoft.com/security/msec" class="externalLink"&gt;http://www.microsoft.com/security/msec&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  Additonally, see the blog post at &lt;a href="http://blogs.technet.com/srd/archive/2009/04/08/the-history-of-the-exploitable-crash-analyzer.aspx" class="externalLink"&gt;http://blogs.technet.com/srd/archive/2009/04/08/the-history-of-the-exploitable-crash-analyzer.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This tool was created by the Microsoft Security Engineering Center (MSEC) Security Science Team.  For more information on MSEC and the Security Science team, please visit &lt;a href="http://www.microsoft.com/security/msec" class="externalLink"&gt;http://www.microsoft.com/security/msec&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  To see what's being worked on presently, visit the Security Research and Development blog at &lt;a href="http://blogs.technet.com/srd/" class="externalLink"&gt;http://blogs.technet.com/srd/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;New bits posted on 6/17, changelog below:&lt;br /&gt;&lt;br /&gt;1.0.1 Updates:&lt;br /&gt;&lt;br /&gt;A bug that resulted in overtainting H or L registers has been fixed.&lt;br /&gt;Initial External Release: March, 2009&lt;br /&gt;&lt;br /&gt;1.0.2 Updates:&lt;br /&gt;&lt;br /&gt;When loading user mode mini-dumps, the Gather rule now correctly sets the stack context.&lt;br /&gt;&lt;br /&gt;1.0.3 Updates:&lt;br /&gt;&lt;br /&gt;New state and gather functionality and analyze rules to identify exceptions where the faulting address is on the stack.&lt;br /&gt;Hashes are fixed at 32 bit display (8 hex characters) and code locations are fixed at 64 bit display (16 hex characters).&lt;br /&gt;Added support for the REP SCAS instruction in the disassembler&lt;br /&gt;Fixed a serious bug in the wildcard match function, which would result in anything that matched up to the first wildcard matching the entire string&lt;br /&gt;Fixed a bug in which the destination pointer registers were not being set to the tainted value set for Write AVs that required taint analysis&lt;br /&gt;Fixed bugs in the distinction between source and data registers for taint tracking in some rep instructions&lt;br /&gt;&lt;br /&gt;1.0.4 Updates:&lt;br /&gt;&lt;br /&gt;Fixed a reporting and analysis bug, in which we change the faulting instruction as well as the invoking function when we skip excluded stack frames&lt;br /&gt;&lt;br /&gt;1.0.5 Updates:&lt;br /&gt;&lt;br /&gt;Updates to the excluded symbols list&lt;br /&gt;Handle POP instructions that pop to memory&lt;br /&gt;Handle PUSH instructions that push to memory&lt;br /&gt;Treat POP instructions to memory the same as MOV instructions to memory&lt;br /&gt;&lt;br /&gt;1.0.6 Updates:&lt;br /&gt;&lt;br /&gt;External Release: June, 2009&lt;/div&gt;</description><author>jasoshi</author><pubDate>Wed, 17 Jun 2009 19:12:14 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090617071214P</guid></item><item><title>Updated Release: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009)</title><link>http://msecdbg.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28935</link><description>&lt;div&gt;New MSECExtensions bits, changelog below:&lt;br&gt;&lt;br&gt;1.0.1 Updates:&lt;br&gt;&lt;br&gt;A bug that resulted in overtainting H or L registers has been fixed.&lt;br&gt;Initial External Release: March, 2009&lt;br&gt;&lt;br&gt;1.0.2 Updates:&lt;br&gt;&lt;br&gt;When loading user mode mini-dumps, the Gather rule now correctly sets the stack context.&lt;br&gt;&lt;br&gt;1.0.3 Updates:&lt;br&gt;&lt;br&gt;New state and gather functionality and analyze rules to identify exceptions where the faulting address is on the stack.&lt;br&gt;Hashes are fixed at 32 bit display (8 hex characters) and code locations are fixed at 64 bit display (16 hex characters).&lt;br&gt;Added support for the REP SCAS instruction in the disassembler&lt;br&gt;Fixed a serious bug in the wildcard match function, which would result in anything that matched up to the first wildcard matching the entire string&lt;br&gt;Fixed a bug in which the destination pointer registers were not being set to the tainted value set for Write AVs that required taint analysis&lt;br&gt;Fixed bugs in the distinction between source and data registers for taint tracking in some rep instructions&lt;br&gt;&lt;br&gt;1.0.4 Updates:&lt;br&gt;&lt;br&gt;Fixed a reporting and analysis bug, in which we change the faulting instruction as well as the invoking function when we skip excluded stack frames&lt;br&gt;&lt;br&gt;1.0.5 Updates:&lt;br&gt;&lt;br&gt;Updates to the excluded symbols list&lt;br&gt;Handle POP instructions that pop to memory&lt;br&gt;Handle PUSH instructions that push to memory&lt;br&gt;Treat POP instructions to memory the same as MOV instructions to memory&lt;br&gt;&lt;br&gt;1.0.6 Updates:&lt;br&gt;&lt;br&gt;External Release: June, 2009&lt;/div&gt;</description><author>jasoshi</author><pubDate>Wed, 17 Jun 2009 19:11:35 GMT</pubDate><guid isPermaLink="false">Updated Release: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009) 20090617071135P</guid></item><item><title>Released: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009)</title><link>http://msecdbg.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28935</link><description>&lt;div&gt;New MSECExtensions bits, changelog below:&lt;br&gt;&lt;br&gt;1.0.1 Updates:&lt;br&gt;&lt;br&gt;A bug that resulted in overtainting H or L registers has been fixed.&lt;br&gt;Initial External Release: March, 2009&lt;br&gt;&lt;br&gt;1.0.2 Updates:&lt;br&gt;&lt;br&gt;When loading user mode mini-dumps, the Gather rule now correctly sets the stack context.&lt;br&gt;&lt;br&gt;1.0.3 Updates:&lt;br&gt;&lt;br&gt;New state and gather functionality and analyze rules to identify exceptions where the faulting address is on the stack.&lt;br&gt;Hashes are fixed at 32 bit display (8 hex characters) and code locations are fixed at 64 bit display (16 hex characters).&lt;br&gt;Added support for the REP SCAS instruction in the disassembler&lt;br&gt;Fixed a serious bug in the wildcard match function, which would result in anything that matched up to the first wildcard matching the entire string&lt;br&gt;Fixed a bug in which the destination pointer registers were not being set to the tainted value set for Write AVs that required taint analysis&lt;br&gt;Fixed bugs in the distinction between source and data registers for taint tracking in some rep instructions&lt;br&gt;&lt;br&gt;1.0.4 Updates:&lt;br&gt;&lt;br&gt;Fixed a reporting and analysis bug, in which we change the faulting instruction as well as the invoking function when we skip excluded stack frames&lt;br&gt;&lt;br&gt;1.0.5 Updates:&lt;br&gt;&lt;br&gt;Updates to the excluded symbols list&lt;br&gt;Handle POP instructions that pop to memory&lt;br&gt;Handle PUSH instructions that push to memory&lt;br&gt;Treat POP instructions to memory the same as MOV instructions to memory&lt;br&gt;&lt;br&gt;1.0.6 Updates:&lt;br&gt;&lt;br&gt;External Release: June, 2009&lt;/div&gt;</description><author></author><pubDate>Wed, 17 Jun 2009 19:11:35 GMT</pubDate><guid isPermaLink="false">Released: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009) 20090617071135P</guid></item><item><title>Created Release: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009)</title><link>http://msecdbg.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28935</link><description>&lt;div&gt;New MSECExtensions bits, changelog below:&lt;br&gt;&lt;br&gt;1.0.1 Updates:&lt;br&gt;&lt;br&gt;A bug that resulted in overtainting H or L registers has been fixed.&lt;br&gt;Initial External Release: March, 2009&lt;br&gt;&lt;br&gt;1.0.2 Updates:&lt;br&gt;&lt;br&gt;When loading user mode mini-dumps, the Gather rule now correctly sets the stack context.&lt;br&gt;&lt;br&gt;1.0.3 Updates:&lt;br&gt;&lt;br&gt;New state and gather functionality and analyze rules to identify exceptions where the faulting address is on the stack.&lt;br&gt;Hashes are fixed at 32 bit display (8 hex characters) and code locations are fixed at 64 bit display (16 hex characters).&lt;br&gt;Added support for the REP SCAS instruction in the disassembler&lt;br&gt;Fixed a serious bug in the wildcard match function, which would result in anything that matched up to the first wildcard matching the entire string&lt;br&gt;Fixed a bug in which the destination pointer registers were not being set to the tainted value set for Write AVs that required taint analysis&lt;br&gt;Fixed bugs in the distinction between source and data registers for taint tracking in some rep instructions&lt;br&gt;&lt;br&gt;1.0.4 Updates:&lt;br&gt;&lt;br&gt;Fixed a reporting and analysis bug, in which we change the faulting instruction as well as the invoking function when we skip excluded stack frames&lt;br&gt;&lt;br&gt;1.0.5 Updates:&lt;br&gt;&lt;br&gt;Updates to the excluded symbols list&lt;br&gt;Handle POP instructions that pop to memory&lt;br&gt;Handle PUSH instructions that push to memory&lt;br&gt;Treat POP instructions to memory the same as MOV instructions to memory&lt;br&gt;&lt;br&gt;1.0.6 Updates:&lt;br&gt;&lt;br&gt;External Release: June, 2009&lt;/div&gt;</description><author>jasoshi</author><pubDate>Wed, 17 Jun 2009 19:11:14 GMT</pubDate><guid isPermaLink="false">Created Release: MSEC Debugger Extensions v1.0.6 (Jun 17, 2009) 20090617071114P</guid></item></channel></rss>
