        <%ST(A)%>
		<div id="Content_ContentList" class="content-width"><a name="body" accesskey="B" href="#body"></a>
			<div class="pageContent">
					<div style="float:right;width:180px !important;width:auto">
						  <a href="feed.asp?cateID=17" target="_blank" title="订阅所有黑客的日志" accesskey="F"><img border="0" src="images/rss.png" alt="订阅所有黑客的日志" style="margin-bottom:-1px"/> 订阅</a>
						   | <a href="?id=40" title="上一篇日志: Newmm.asp木马分析" accesskey=","><img border="0" src="images/Cprevious.gif" alt=""/>上一篇</a> | <a href="?id=42" title="下一篇日志: ASP最新SQL防注入过滤函数" accesskey="."><img border="0" src="images/Cnext.gif" alt=""/>下一篇</a>
					</div> 
						   <img src="images/icons/1.gif" style="margin:0px 2px -4px 0px" alt=""/> <strong><a href="default.asp?cateID=17" title="查看所有黑客的日志">黑客</a></strong> </div>
						   <div class="Content">
						   <div class="Content-top"><div class="ContentLeft"></div><div class="ContentRight"></div>
						     <h1 class="ContentTitle"><strong>解析Asp.net木马文件操作</strong></h1>
						     <h2 class="ContentAuthor">作者:apple 日期:2006-06-09</h2>
						   </div>
						    <div class="Content-Info">
							  <div class="InfoOther">字体大小: <a href="javascript:SetFont('12px')" accesskey="1">小</a> <a href="javascript:SetFont('14px')" accesskey="2">中</a> <a href="javascript:SetFont('16px')" accesskey="3">大</a></div>
							  <div class="InfoAuthor"><img src="images/weather/hn2_sunny.gif" style="margin:0px 2px -6px 0px" alt=""/><img src="images/weather/hn2_t_sunny.gif" alt=""/> <img src="images/level3.gif" style="margin:0px 2px -1px 0px" alt=""/> 
					              <$EditAndDel$>
							  </div>
							</div>
						  <div id="logPanel" class="Content-body">
					             作者：Swords <br/><br/>开始Asp.net木马EvilSpy的编写了，名字是老大冰血给起的，挺不错的。本文主要介绍一下Asp.net木马中文件操作功能的具体实现。<br/>要编写Asp.net木马，首先要导入名称空间System.IO。名称空间System.IO提供了大量文件和文件夹的操作功能，包括读写文件、创建和删除目录以及察看文件和目录的属性。<br/>1. 浅谈取得文件和文件夹的信息<br/>详细说一下attributes集合，它提供了文件和文件夹的额外信息，如是否只读的或隐藏的。<br/>文件和目录的属性<br/>属性 数字值<br/>ReadOnly（只读） 1<br/>Hidden(隐藏) 2<br/>System(系统) 4<br/>Directory（目录） 16<br/>Archive（存档） 32<br/>Encrypted（加密） 64<br/>Normal（普通） 128<br/>Tempory（临时） 256<br/>SparseFile（稀疏文件） 512<br/>Compressed（压缩） 2048<br/>Offline（脱机） 4096<br/>NotContentIndexed（非内容索引） 8192<br/><br/><br/>要改变文件的属性，只需将这些值类加。例如，要将目录设置为隐藏+系统+加密+压缩，可以使用下面的语句：<br/>f.attributes=2138<br/>2138即2+4+64+2048<br/>这些值估计新手很难记忆，我们直接用属性名称来设置，只要用或bitor来分割各属性，如：<br/>f.attributes=FileAttributes.Hidden BitOr FileAttributes.System BitOr FileAttributes. Encrypted BitOr FileAttributes. Compressed<br/>上述代码相当于f.attributes=2138<br/>要确定文件或者文件夹的某个属性被设置，可使用与操作符bitand这样来检测：<br/>if f.attributes bitand fileattributes.hidden &gt;0 then<br/>response.write(“属性为隐藏!”)<br/>end if<br/><br/>检测函数：<br/>sub getfileinfo()<br/>dim f as new fileinfo(server.mappath(“test.aspx”))<br/>f =new fileinfo(strf)<br/>label1.text="文件信息:&lt;br&gt;文件名称:"& f.name & <br/>"&lt;br&gt;文件路径:" & f.directoryname &<br/>"&lt;br&gt;创建时间:" & f.CreationTime & <br/>"&lt;br&gt;最后访问时间:" & f.lastaccesstime & <br/>"&lt;br&gt;最后修改时间:" & f.lastwritetime & <br/>"&lt;br&gt;文件长度:" & f.length & "bytes&lt;br&gt;文件属性:" & f.attributes & "&lt;p&gt;"<br/><br/>dir=f.directory<br/>label1.text+="目录信息:&lt;br&gt;目录名:"& dir.name &"&lt;br&gt;目录全名:" & dir.fullname & "&lt;br&gt;创建时间:" & dir.CreationTime & "&lt;br&gt;最后访问时间:" & dir.lastaccesstime & "&lt;br&gt;最后修改时间:" & dir.lastwritetime & "&lt;br&gt;父母录:" & dir.parent.name &<br/>"&lt;br&gt;目录属性:" & dir.attributes & "&lt;p&gt;"<br/>end sub<br/><br/>2. 打开文件的各种手法<br/>Asp.net允许以二进制和Unicode模式打开文件，由于二进制方法比较少用，下面主要介绍用Unicode打开文件的各种模式。<br/><br/>File对象的open方法<br/>方法 描述<br/>Open() 按照提供的参数打开文件,返回一个stream流<br/>OpenRead() 返回文件的一个只读流<br/>OpenText() 返回一个SteamReader对象<br/>OpenWrite() 返回文件的一个读写流<br/>其中，open()方法接受3个参数，从做到右依次为filemode(打开方式)，fileaccess(访问权限)，fileshare(处理共享)<br/>FileMode值<br/>模式 说明<br/>Append(仅适用write访问权限) 若文件存在，打开<br/>若文件不存在，创建一个新文件<br/>create 创建新文件或者覆盖已经存在的文件<br/>createNew 创建新文件<br/>Open 打开已存在的文件<br/>Openorcreate 若文件存在，打开<br/>若文件不存在，创建一个新文件<br/>Truncate 打开已存在的文件并清空原来所有的内容<br/><br/>FileAccess的值<br/>权限 说明<br/>Read 只读<br/>Write 只写<br/>ReadWrite 读写<br/>FileShare的值<br/>权限 说明<br/>Read 只读<br/>Write 只写<br/>ReadWrite 读写<br/>None 文件独占，其他进程不能访问该文件<br/><br/><br/>3. 怎样读取文件数据<br/>在Asp.net中，主要由SteamReader的方法实现。 SteamReader取得反馈信息的方法有三种：<br/>read:一次读取一个字符<br/>readline：读取字符直到行尾<br/>readtoend：读取字符直到流结尾<br/>第一中方法read返回的是Ascii码值,我们可以string.chr(objreader.read)来转化为实际值<br/>还可以从流中返回指定数目的字符数, objreader.read(char(),start,end)<br/>下面这个例子是返回三十个字符。<br/>Dim objreader as new StreamReader(server.mappath(“test.aspx”))<br/>Dim arrstr() as char=new char(30)<br/>Objreader.read(arrstr,0,30)<br/>For I=0 to ubound(arrstr)-1<br/>lblResponse.text+=arrstr(i)<br/>next<br/>objreader.close<br/><br/>用第二种方法readline时,此时我们可以配合peek（）使用,peek（）方法判断是否到了流结尾，注意：peek（）方法获取下一个字符，但并不将其返回。<br/>我们可以用一个Web服务器控件label（id="lblResponse"）来显示获取的数据。<br/>Dim objreader as new StreamReader(server.mappath(“test.aspx”))<br/>while objreader.peek() &gt; -1<br/>lblResponse.text+=server.HTMLEncode(objreader.ReadLine) & "&lt;br&gt;"<br/>end while<br/>objreader.close<br/>第三种方法最简单易用:<br/>Dim objreader as new StreamReader(server.mappath(“test.aspx”))<br/>lblResponse.text+=server.HTMLEncode(objreader.ReadtoEnd)<br/>objreader.close<br/><br/>4. 轻轻松松写文件<br/>在Asp.net中，主要由StreamWriter的方法实现。<br/>可以这样定义一个StreamWriter<br/>dim objwriter as new StreamWriter(filestream,append)<br/>注意append这个参数 ，它是一个布尔型<br/>Append值<br/>Flase 若文件存在，原文件被覆盖<br/>若文件不存在，创建该文件<br/>True 追加到文件尾部<br/>Steamwriter写数据的方法比StreamReader少，有write()和writeline()两种<br/><br/>Dim objwriter as new StreamWriter(server.mappath(“test.aspx”),true)<br/>Objwriter.writeline（） '写入了一个换行符<br/>Objwriter.writeline(“这将写入一行数据”)<br/>Objwrite.write(“写入数据，但不带换行符”)<br/><br/>5．文件和目录的复制、创建、删除、移动<br/>文件和目录的复制、创建、删除、移动<br/>方法 说明<br/>Directory.createDirectories 创建指定的所有目录<br/>Directory.createDirectory 创建一个目录<br/>Directory.delete 删除一个目录<br/>File.Copy 复制文件，overwrite指定是否覆盖已有文件<br/>File.create 创建新文件<br/>File.createText 创建一个StreamWriter对象<br/>File.delete 删除一个文件<br/>File.ChangeExtension 修改扩展名，将extension为nothing将删除扩展名，扩展名中必须有“.”<br/>File.HasExtension 判断是否有扩展名，如果有，返回真值<br/>Move 移动文件或目录<br/>6.测试。 <br/><br/><br/>
							<br/><br/>
						   <br/>
						   </div>
						   <div class="Content-body">
					             
							<img src="images/From.gif" style="margin:0px 2px -4px 0px" alt=""/><strong>文章来自:</strong> <a href="http://www.xoofeng.com/apple/" target="_blank">本站原创</a><br/>
							<img src="images/icon_trackback.gif" style="margin:0px 2px -4px 0px" alt=""/><strong>引用通告地址:</strong> <a href="http://www.xoofeng.com/apple/trackback.asp?tbID=41" target="_blank">http://www.xoofeng.com/apple/trackback.asp?tbID=41</a><br/>
						    <img src="images/tag.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>Tags:</strong> <br/>
						   </div>
						   <div class="Content-bottom"><div class="ContentBLeft"></div><div class="ContentBRight"></div>评论: 0</a> | 引用: 0 | 查看次数: <$log_ViewNums$>
			</div></div></div>
