收藏 分享(赏)

VB高级编程.doc

上传人:weiwoduzun 文档编号:4407194 上传时间:2018-12-27 格式:DOC 页数:88 大小:3.73MB
下载 相关 举报
VB高级编程.doc_第1页
第1页 / 共88页
VB高级编程.doc_第2页
第2页 / 共88页
VB高级编程.doc_第3页
第3页 / 共88页
VB高级编程.doc_第4页
第4页 / 共88页
VB高级编程.doc_第5页
第5页 / 共88页
点击查看更多>>
资源描述

1、 浅谈用 VB6.0 编写木 马程序现在网络上流行的木马软件基本都是客户机/服务器模式也就是所谓的 C/S结构,目前也有一些开始向 B/S结构转变,在这里暂且不对 B/S结构进行 详谈,本文主要介绍 C/S结构其原理就是在本机直接启动运行的程序拥有与使用者相同的权限。因此如果能够启动服务器端(即被攻击的计算机)的服务器程序,就可以使用相应的客户端工具客户程序直接控制它了。下面来谈谈如何用 VB来实现它。首先使用 VB建立两个程序,一个为客户端程序 Client,一个为服务器端程序 systry。在 Client工程中建立一个窗体,加载 WinSock控件,称 为 tcpClient,协议选择

2、TCP,再加入两个文本框,用以输入服务器的 IP地址或服务器名,然后建立一个按钮,按下之后就可以对连接进行初始化了,代码如下:Private Sub cmdConnect_Click()If Len(Text1.Text) = 0 And Len(Text2.Text) = 0 ThenMsgBox (“请输入主机名或主机 IP地址。“)Exit SubElseIf Len(Text1.Text) 0 ThentcpClient.RemoteHost = Text1.TextElsetcpClient.RemoteHost = Text2.TextEnd IfEnd IftcpClient.C

3、onnectTimer1.Enabled = TrueEnd Sub连接建立之后就可以使用 DataArrival事件处理所收到的数据了。在服务器端 systry工程也建立一个窗体,加载 WinSock控件,称为 tcpServer,协议选择 TCP ,在 Form_Load事件中加入如下代码:Private Sub Form_Load()tcpServer.LocalPort = 1999tcpServer.ListenEnd Sub准备应答客户端程序的请求连接,使用 ConnectionRequest事件来应答户端程序的请求,代码如下:Private Sub tcpServer_Conne

4、ctionRequest(ByVal requestID As Long)If tcpServer.State sckClosed ThentcpServer.Close检查控件的 State 属性是否为关闭的。End If 如果不是,在接受新的连接之前先关闭此连接。tcpServer.Accept requestIDEnd Sub这样在客户端程序按下了连接按钮后,服务器端程序的 ConnectionRequest事件被触发,执行了以上的代码。如果不出意外,连接就被建立起来了。建立连接后服务器端的程序通过 DataArrival事件接收客户机端程序所发的指令运行既定的程序。如:把服务器端的 驱

5、动器名、目录名、文件名等传到客户机端,客户机端接收后用 TreeView控件以树状的形式显示出来,浏览服务器端文件目录;强制关闭或重启服务器端的计算机;屏蔽任务栏窗口;屏蔽开始菜单;按照客户机端传过来的文件名或目录名,而删除它;屏蔽热启动键;运行服务器端的任何程序;还包括获取目标计算机屏幕图象、窗口及进程列表;激活、终止远端进程;打开、关闭、移动远端窗口;控制目标计算机鼠标的移动与动作;交换远端鼠标的左右键;在目标计算机模拟键盘输入,下载、上装文件;提取、创建、修改目标计算机系统注册表关键字;在远端屏幕上显示消息。DataArrival 事件程序如下:Private Sub tcpServer

6、_DataArrival(ByVal bytesTotal As Long)Dim strData As StringDim i As LongDim mKey As StringtcpServer.GetData strData接收数据并存入 strDataFor i = 1 To Len(strData)分离 strData 中的命令If Mid(strData, i, 1) = “ ThenmKey = Left(strData, i - 1)把命令 ID号存入 mKey把命令参数存入 strDatastrData = Right(strData, Len(strData) - i)Ex

7、it ForEnd IfNext iSelect Case Val(mKey)Case 1驱动器名、目录名、文件名Case 2强制关闭服务器端的计算机Case 3强制重启服务器端的计算机Case 4屏蔽任务栏窗口;Case 5屏蔽开始菜单;Case 6按照客户机端传过来的文件名或目录名,而删除它;Case 7屏蔽热启动键;Case 8运行服务器端的任何程序End SelectEnd Sub客户机端用 tcpClient.SendData发命令。命令包括命令 ID和命令参数,它们用符号“”隔开。另外,当客户机端断开与服务器端的来接后,服务器端应用 tcpServer_Close事件,来继续准备接

8、收客户机端的请求,其代码如下:Private Sub tcpServer_Close()tcpServer.ClosetcpServer.ListenEnd Sub这就是一个最基本的特洛伊木马程序,只要你的机器运行了服务器端程序,那别人就可以在千里之外控制你的计算机。至于如何让服务器端程序运行就要发挥你的聪明才智了,在我的源程序中有一中方法,是修改系统注册表的方法。 源代码下载成功的特洛伊木马程序要比这个复杂一些,还有程序的隐藏、自动复制、传播等问题要解决。警告:千万不要用来破坏别人的系统。_VB实现 SQL Server 2000存储过程 调用存储过程存储过程是存储在服务器上的一组预编译的

9、Transact-SQL语句,是一种封装重复任务操作的方法,支持用户提供的变量,具有强大的编程功能。它类似于 DOS系统中的 BAT文件。在 BAT文件中,可以包含一组经常执行的命令,这组命令通过 BAT文件的执行而被执行。同样的道理,可以把要完成某项任务的许多 Transact-SQL语句写在一起,组织成存储过程的形式,通过执行该存储过程就可以完成这项任务。存储过程与 BAT文件又有差别,即存储过程已经进行了预编译。1、创建存储过程的方法在 Transact-SQL语言中,创建存储过程可以使用 CREATE PROCEDURE语句,其语法形式如下:CREATE PROCEDURE proce

10、dure_name;numberparameter data_typeVARYING=defaultOUTPUT,nWITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTIONFOR REPLICATIONAS sql_statementn在上面的 CREATE PROCEDURE语句中,方括号“ “中的内容是可选的,花括号“中的内容是必须出现的,不能省略,n 表示前面的参数样式,可以重复出现。竖线“|“表示两边的选项可以任选一个。下面分析该语句中各种选项的含义。CREATE PROCEDURE是关键字,也可以写成 CREATE PROC 。procedure_n

11、ame是该存储过程的名称,名称可以是任何符合命名规则的标示符。名称后的;number 参数表示可以定义一系列的存储过程名称,这些存储过程的数量由 number指定。参数名称可以使用parameter data_type 来指定。在 Transact-SQL语言中,用户定义的参数名称前面加“ 符号,这些数据类型是 Transact-SQL语言允许的各种数据类型,包括系统提供的数据类型和用户定义的数据类型。当参数类型为 cursor 时,必 须使用关键字 VARYING 和 OUTPUT。VARYING 表示结果集可以是一个输出参数,其内容是动态的。该关键字只能在使用游标作为数据类型时使用。关键字

12、 OUTPUT 表示这是一个输出参数,可以把存储过程执行的结果信息返回应用程序。default用于指定参数的默认值 。RECOMPILE选项表示重新编译该 存储过程。该选项只是在需要的时候才使用,例如经常需要改变数据库模式时。ENCRYPTION选项用来加密创建存储过程的文本,防止他人查看。选项 FOR REPLICATION主要用于复制过程中。注意,该选项不能和选项 RECOMPILE同时使用。AS 是一个关键字,表示其后的内容是存储过程的语句。参数 sql-statementn表示在一个存储过程中可以包含多个Transact-SQL语句。2、存储过程的优点在频繁访问数据库的系统中,开发者都

13、乐于使用存储过程,这与存储过程的下列优点是分不开的。 存储过程可以与其他应用程序共享应用程序的逻辑,从而确保一致的数据访问和操纵。 存储过程提供了一种安全机制。如果用户被授予执行存储过程权限,那么即使该用户没有访问在执行该存储过程中所参考的表或视图的权限,该用户也可以完全执行该存储过程而不受到影响。因此,可以创建存储过程来完成所有的增加、删除等操作,并且可以通过编程控制上述操作中对信息的访问权限。 存储过程执行速度快,便于提高系统的性能。由于存储过程在第一次执行之后,其执行规划就驻存在过程高速缓冲存储区中,在以后的操作中,只需从过程高速缓冲存储区中调用编译好的二进制形式存储过程来执行。 使用存

14、储过程可以减少网络传输时间。如果有一千条 Transact-SQL语句的命令,一条一条地通过网络在客户机和服务器之间传送,那么这种传输所耗费的时间将很长。但是,如果把这一千条 Transact-SQL语句的命令写成一条较为复杂的存储过程命令,这时在客户机和服务器之间网络传输所需的时间就会大大减少。SQL Server 2000数据库存储过 程的调用VB 作为当今应用极为普遍的数据库客户端开发工具之一,对客户端应用程序调用服务器端存储过程提供了强大的支持。特别是随着 VB6.0的推出,VB客户端应用程序可以方便地利用 ADO 的对象和集合来实现对数据库存储过 程的调用。在笔者编写的科技档案管理系

15、统中,就是采用 VB作为开发平台,采用 SQL Server2000数据库管理数据,在这个科技档案管理系统中有海量的数据,并且对数据库有频繁的访问,利用存储过程访问数据库节省了执行时间,大大提高了系统的性能。1、ADO简介ADO控件(也称为 ADO Data控件)与 VB固有的 Data控件相似。使用 ADO Data 控件,可以利用 Microsoft ActiveX DataObjects(ADO)快速建立数据 库绑定控件和数据提供者之 间的连接。ADO Data控件可以实现以下功能:连接一个本地数据库或远程数据 库。打开一个指定的数据库表,或定 义一个基于结构化查询语言(SQL)的查询、

16、存储过程或该数据库中的表的视图的记录集合。将数据字段的数值传递给数据 绑定控件,可以在这些控件中显示或更改这些数值。添加新的记录,或根据更改 显示在绑定的控件中的数据来更新一个数据库。2、数据库的连接数据库的连接可通过 ADO控件实现,为此,必须在工程部件中选择 Microsoft ADO Data Control 6.0 (OLEDB),然后在窗体中添加 ADO控件。利用 ADO连接数据库有两种方法,具体如下。1) 通过 ADODC属性页实现连接在 ADODC属性页中选择生成按钮,进入数据链接属性对话 框;然后选择该对话框中的连接属性页,选择或输入服务器名称和数据库等重要信息;最后测试连接,

17、连接成功后,按确定按钮,返回到属性页对话框,可获得连接字符串,如下例:Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Science_File;Data Source=Data_Server其中 sa是用户名;Science_File 是数据库名;Data_Server 是数据库名。通过下列语句,即可连接到指定的数据库:dim odbcstr as String, adocon As New ADODB.Connectionodbcstr = “Provider=SQLOLEDB.1;Pers

18、ist Security Info=False;User ID=sa;Initial Catalog=Science_File;DataSource=Data_Server“adocon.Open odbcstr 连接到数据库2) 直接使用连接语句实现连接数据库的语句如下:Dim ado as ADODCado.ConnectionString = “Provider=SQLOLEDB.1;Password=“ Persist Security Info=True;User ID=“ Initial Catalog=“ Data Source=“ “ uid=“ pwd=“ database=

19、“ 数据库为 20M,则 dbSize=512*20)sql = “DISK INIT NAME=“ & Chr(34) & “ & dbName & “ & Chr(34) & “,PHYSNAME=“ & Chr(34) & “ & serverpath &“ & dbName & “.dat“ & Chr(34) & “,VDEVNO=“ & vdevno & “,SIZE=“ & dbSize & “Set rs = conn.Execute(sql) 注 释:初始化设备sql = “CREATE DATABASE “ & dbName & “ on “ & dbName & “=“ & dbSize & “注释:注:第一个 dbName是数据库名,第二个 dbName是设备名Set rs = conn.Execute(sql)注释 :在设备 dbName上建立数据库 dbNameMsgBox “数据 库“ & dbName & “建在服务器上“ & serverpath & “ & dbName & “.dat“,建立成功!“, 64, “ 成功“二、建立表格

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 软件工程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报