求一段ASP代码

时间:2022-09-03 10:23:51
本人不懂ASP,请高手帮忙写一个页面
功能:
 扫描同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是目录下只留压缩包里的东西
 注:如果不能完成解压,可以调用DLL类进行解压,

26 个解决方案

#1


该回复于2011-04-15 11:05:39被版主删除

#2


这个asp木马有这个功能,你可以看看再修改下代码

#3


从程序中摘出来的一小段程序,希望对你有所帮助:


<%

Set Shell = Server.CreateObject("WScript.Shell")'存放解压文件的目录需要Everyone写的权限
p=server.Mappath("rar") '解压程序的存放位置
cmd="" 'p & "\cmd.exe /c " '不需要cmd.exe文件
rar=p & "\rar.exe  x  -o+ " '用于解压缩的程序
command= cmd & rar & SaveFile & " " & SavePath & "\" & iif(zz<10,"0","") & zz ' rar.exe x -t -o+ -p- iis.rar c:\ok
'response.write command & "<br>"
'D:\www\dw\rar\rar.exe x -o+ d:\ftp\dw\0933101\00\0301EF69B4346C06AD51D192E6F5C91043.rar d:\ftp\dw\0933101\00\03

RetCode = Shell.Run(command,1, True)
if  RetCode=0 then
    CheckHackerFiles SavePath & "\" & iif(zz<10,"0","") & zz ' d:\ftp\dw\0933101\00\03
    Response.write "<center><br><br>文件 <span style=""color:red;"">" & FileName_j & " </span>上传成功!<br></center>"
else
    Response.write "<center><br><br><span style=""color:red;""> 文件 </span>" & FileName_j & "<span style=""color:red;""> 格式不正确!</span></center>"
    Set fso=CreateObject("Scripting.FileSystemObject")  '删除上传的压缩文件
    fso.DeleteFile SaveFile
    set fso=Nothing
end if 

%>

#4


可以先删除原来的所有文件及子目录中的文件,然后再解压。

删除各目录下的文件可用:


<%

Sub CheckHackerFiles(Path)
dim fso,fd,fs,fo,f,c,pos
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fso.DeleteFile Path & "\" & f.Name
next
Set fs=fd.SubFolders
For each f in fs
CheckHackerFiles Path & "\" & f.Name
next
End Sub
%>

#5


引用 4 楼 sxldfang 的回复:
可以先删除原来的所有文件及子目录中的文件,然后再解压。

删除各目录下的文件可用:

VBScript code

<%

Sub CheckHackerFiles(Path)
    dim fso,fd,fs,fo,f,c,pos
    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    Set fd=fso……


能不能根据我上面的需求帮我写一个页面,十分感谢,我对asp一点不懂,你给的代码我也看不懂

#6


该回复于2011-04-15 14:31:21被版主删除

#7


同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是 目录下只留压缩包里的东西

问题:
1、不行的,你会把本程序也删除掉的

2、有多个压缩包怎么办?出现重名怎么办?

#8


引用 7 楼 sxldfang 的回复:
同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是目录下只留压缩包里的东西

问题:
1、不行的,你会把本程序也删除掉的

2、有多个压缩包怎么办?出现重名怎么办?


第一个问题:可以保留本程序
第二个问题:不会出现多个压缩包,只有一个压缩包,解压完成后,删除压缩包

#9


请高手也关注一下我的问题 感谢

http://topic.csdn.net/u/20110415/14/e2203fd0-5a18-4133-b415-6d3227f5a54d.html?15638

#10



通过测试,功能强大,小心使用

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压成功,原压缩包会被删除,否则不会删除
4、压缩包中可以含子目录,解压时一并还原
5、若没有压缩包,则相当于删除目录中清单前两项之外的所有内容


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>

<%
dim pName, pPath, rarFile '本文件名,本文件的路径,压缩包名
pName= request.ServerVariables("SCRIPT_NAME") '/vote/cs/jy.asp 
pName=Ucase(mid(pName,instrrev(pName,"/")+1)) 'JY.ASP
pPath=Server.MapPath(".") 'E:\www\vote\cs
rarFile=""
delAllFile pPath
if rarFile<>"" then '存在压缩包
response.Write("Rar=" & rarFile & "<br>")
if unRar then
response.Write("Success!")
else
response.Write("Error!")
end if
else
response.Write("No find RAR file")
end if

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub delAllFile(Path)
    dim fso,fd,fs,fn,f
    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    Set fd=fso.GetFolder(Path)
    Set fs=fd.Files
    for each f in fs
fn=UCase(f.Name)
if Path=pPath and (fn=pName or fn="RAR.EXE" or right(fn,4)=".RAR" ) then
' 不能删除:1、本程序  2、压缩包   3、解压程序
if right(fn,4)=".RAR" then rarFile= Path & "\" & f.Name
else
        fso.DeleteFile Path & "\" & f.Name
end if
    next
    Set fs=fd.SubFolders
    For each f in fs
        delAllFile Path & "\" & f.Name
    next 
if Path<>pPath then
fd.Delete
end if
set fs=Nothing
set fd=Nothing
set fso=Nothing
End Sub

Function unRar()
dim Shell, cmd, fso
Set Shell = Server.CreateObject("WScript.Shell") '存放解压文件的目录需要Everyone写的权限
cmd=server.Mappath("rar.exe") & " x -o+ " & rarFile & " " & Server.MapPath(".")
unRar = ( Shell.Run(cmd,1, True) = 0 )
if  unRar then '若解压成功
Set fso=CreateObject("Scripting.FileSystemObject")  '删除上传的压缩包文件
fso.DeleteFile rarFile
set fso=Nothing
end if 
Set Shell=Nothing
End Function


%>

</body>
</html>



#11


引用 10 楼 sxldfang 的回复:
通过测试,功能强大,小心使用!

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压……


非常感谢,还有一些问题,
 压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
       E:\users\b\web\
       E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
 压缩包名字也是传过来的

#12


求一段ASP代码
我应该复制哪个rar.exe

#13


386kb的那个Rar.exe

#14


引用 13 楼 hongmei85 的回复:
386kb的那个Rar.exe

 我试过了,不行啊,
Rar=E:\发布\dfdsf\A301-jiaoyu.Rar
Error

dfdsf目录下文件
  A301-jiaoyu.Rar
  dsfds.asp
  Rar.exe

#15


 现在可以了,
请帮忙解决这些问题:
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
  E:\users\b\web\
  E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
 压缩包名字也是传过来的

还有必需要有Everyone权限吗? 其它的可不可以

#16


引用 10 楼 sxldfang 的回复:
通过测试,功能强大,小心使用!

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压……


可不可以自动检测本目录下是否有压缩文件

#17


引用 16 楼 zx_001 的回复:
可不可以自动检测本目录下是否有压缩文件


不就是这样自动检测的吗?

#18


根据你的目录结构,程序进行简单修改就行啦!结贴吧!

#19


楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。

#20


引用 19 楼 theforever 的回复:
楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。


我通过FTP向这个文件夹传送一个压缩包,但是需要传送完成后进行解压, 
我就是用户访问我的网站,点击下载文件,而文件不是下载到本地,是下载到用户指定的FTP空间,下载的是压缩包,我想在传送完压缩包之后,直接解压,  我就想传送完成后调用用户FTP空间下的asp程序进行解压,然后删除压缩包,当然肯定在IIS下新建网站的目录指定到FTP的

#21


引用 18 楼 sxldfang 的回复:
根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限

#22


这个问题解决了,我可以再加分

#23


该回复于2011-04-18 14:53:08被版主删除

#24


该回复于2011-04-18 15:47:20被版主删除

#25


引用 21 楼 zx_001 的回复:
引用 18 楼 sxldfang 的回复:

根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限


用 IIS 进程帐户:  IWAM_XXXX,其中XXXX随机器不能应该不一样。

#26


引用 25 楼 sxldfang 的回复:
引用 21 楼 zx_001 的回复:
引用 18 楼 sxldfang 的回复:

根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限


用 IIS 进程帐户: IWAM_XXXX,其中XXXX随机器不能应该不一样。


不让加分了,"该帖已达到分数最大值,不允许加分操作。"

多谢你了

#1


该回复于2011-04-15 11:05:39被版主删除

#2


这个asp木马有这个功能,你可以看看再修改下代码

#3


从程序中摘出来的一小段程序,希望对你有所帮助:


<%

Set Shell = Server.CreateObject("WScript.Shell")'存放解压文件的目录需要Everyone写的权限
p=server.Mappath("rar") '解压程序的存放位置
cmd="" 'p & "\cmd.exe /c " '不需要cmd.exe文件
rar=p & "\rar.exe  x  -o+ " '用于解压缩的程序
command= cmd & rar & SaveFile & " " & SavePath & "\" & iif(zz<10,"0","") & zz ' rar.exe x -t -o+ -p- iis.rar c:\ok
'response.write command & "<br>"
'D:\www\dw\rar\rar.exe x -o+ d:\ftp\dw\0933101\00\0301EF69B4346C06AD51D192E6F5C91043.rar d:\ftp\dw\0933101\00\03

RetCode = Shell.Run(command,1, True)
if  RetCode=0 then
    CheckHackerFiles SavePath & "\" & iif(zz<10,"0","") & zz ' d:\ftp\dw\0933101\00\03
    Response.write "<center><br><br>文件 <span style=""color:red;"">" & FileName_j & " </span>上传成功!<br></center>"
else
    Response.write "<center><br><br><span style=""color:red;""> 文件 </span>" & FileName_j & "<span style=""color:red;""> 格式不正确!</span></center>"
    Set fso=CreateObject("Scripting.FileSystemObject")  '删除上传的压缩文件
    fso.DeleteFile SaveFile
    set fso=Nothing
end if 

%>

#4


可以先删除原来的所有文件及子目录中的文件,然后再解压。

删除各目录下的文件可用:


<%

Sub CheckHackerFiles(Path)
dim fso,fd,fs,fo,f,c,pos
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fso.DeleteFile Path & "\" & f.Name
next
Set fs=fd.SubFolders
For each f in fs
CheckHackerFiles Path & "\" & f.Name
next
End Sub
%>

#5


引用 4 楼 sxldfang 的回复:
可以先删除原来的所有文件及子目录中的文件,然后再解压。

删除各目录下的文件可用:

VBScript code

<%

Sub CheckHackerFiles(Path)
    dim fso,fd,fs,fo,f,c,pos
    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    Set fd=fso……


能不能根据我上面的需求帮我写一个页面,十分感谢,我对asp一点不懂,你给的代码我也看不懂

#6


该回复于2011-04-15 14:31:21被版主删除

#7


同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是 目录下只留压缩包里的东西

问题:
1、不行的,你会把本程序也删除掉的

2、有多个压缩包怎么办?出现重名怎么办?

#8


引用 7 楼 sxldfang 的回复:
同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是目录下只留压缩包里的东西

问题:
1、不行的,你会把本程序也删除掉的

2、有多个压缩包怎么办?出现重名怎么办?


第一个问题:可以保留本程序
第二个问题:不会出现多个压缩包,只有一个压缩包,解压完成后,删除压缩包

#9


请高手也关注一下我的问题 感谢

http://topic.csdn.net/u/20110415/14/e2203fd0-5a18-4133-b415-6d3227f5a54d.html?15638

#10



通过测试,功能强大,小心使用

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压成功,原压缩包会被删除,否则不会删除
4、压缩包中可以含子目录,解压时一并还原
5、若没有压缩包,则相当于删除目录中清单前两项之外的所有内容


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>

<%
dim pName, pPath, rarFile '本文件名,本文件的路径,压缩包名
pName= request.ServerVariables("SCRIPT_NAME") '/vote/cs/jy.asp 
pName=Ucase(mid(pName,instrrev(pName,"/")+1)) 'JY.ASP
pPath=Server.MapPath(".") 'E:\www\vote\cs
rarFile=""
delAllFile pPath
if rarFile<>"" then '存在压缩包
response.Write("Rar=" & rarFile & "<br>")
if unRar then
response.Write("Success!")
else
response.Write("Error!")
end if
else
response.Write("No find RAR file")
end if

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub delAllFile(Path)
    dim fso,fd,fs,fn,f
    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    Set fd=fso.GetFolder(Path)
    Set fs=fd.Files
    for each f in fs
fn=UCase(f.Name)
if Path=pPath and (fn=pName or fn="RAR.EXE" or right(fn,4)=".RAR" ) then
' 不能删除:1、本程序  2、压缩包   3、解压程序
if right(fn,4)=".RAR" then rarFile= Path & "\" & f.Name
else
        fso.DeleteFile Path & "\" & f.Name
end if
    next
    Set fs=fd.SubFolders
    For each f in fs
        delAllFile Path & "\" & f.Name
    next 
if Path<>pPath then
fd.Delete
end if
set fs=Nothing
set fd=Nothing
set fso=Nothing
End Sub

Function unRar()
dim Shell, cmd, fso
Set Shell = Server.CreateObject("WScript.Shell") '存放解压文件的目录需要Everyone写的权限
cmd=server.Mappath("rar.exe") & " x -o+ " & rarFile & " " & Server.MapPath(".")
unRar = ( Shell.Run(cmd,1, True) = 0 )
if  unRar then '若解压成功
Set fso=CreateObject("Scripting.FileSystemObject")  '删除上传的压缩包文件
fso.DeleteFile rarFile
set fso=Nothing
end if 
Set Shell=Nothing
End Function


%>

</body>
</html>



#11


引用 10 楼 sxldfang 的回复:
通过测试,功能强大,小心使用!

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压……


非常感谢,还有一些问题,
 压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
       E:\users\b\web\
       E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
 压缩包名字也是传过来的

#12


求一段ASP代码
我应该复制哪个rar.exe

#13


386kb的那个Rar.exe

#14


引用 13 楼 hongmei85 的回复:
386kb的那个Rar.exe

 我试过了,不行啊,
Rar=E:\发布\dfdsf\A301-jiaoyu.Rar
Error

dfdsf目录下文件
  A301-jiaoyu.Rar
  dsfds.asp
  Rar.exe

#15


 现在可以了,
请帮忙解决这些问题:
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
  E:\users\b\web\
  E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
 压缩包名字也是传过来的

还有必需要有Everyone权限吗? 其它的可不可以

#16


引用 10 楼 sxldfang 的回复:
通过测试,功能强大,小心使用!

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压……


可不可以自动检测本目录下是否有压缩文件

#17


引用 16 楼 zx_001 的回复:
可不可以自动检测本目录下是否有压缩文件


不就是这样自动检测的吗?

#18


根据你的目录结构,程序进行简单修改就行啦!结贴吧!

#19


楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。

#20


引用 19 楼 theforever 的回复:
楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。


我通过FTP向这个文件夹传送一个压缩包,但是需要传送完成后进行解压, 
我就是用户访问我的网站,点击下载文件,而文件不是下载到本地,是下载到用户指定的FTP空间,下载的是压缩包,我想在传送完压缩包之后,直接解压,  我就想传送完成后调用用户FTP空间下的asp程序进行解压,然后删除压缩包,当然肯定在IIS下新建网站的目录指定到FTP的

#21


引用 18 楼 sxldfang 的回复:
根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限

#22


这个问题解决了,我可以再加分

#23


该回复于2011-04-18 14:53:08被版主删除

#24


该回复于2011-04-18 15:47:20被版主删除

#25


引用 21 楼 zx_001 的回复:
引用 18 楼 sxldfang 的回复:

根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限


用 IIS 进程帐户:  IWAM_XXXX,其中XXXX随机器不能应该不一样。

#26


引用 25 楼 sxldfang 的回复:
引用 21 楼 zx_001 的回复:
引用 18 楼 sxldfang 的回复:

根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限


用 IIS 进程帐户: IWAM_XXXX,其中XXXX随机器不能应该不一样。


不让加分了,"该帖已达到分数最大值,不允许加分操作。"

多谢你了