利用VisualBasic實現(xiàn)木馬攻擊

字號:

首先,新建一工程,名為Server,新建一個窗體,Name為Server,在窗體中加入一個winsock控件,Name設(shè)為sckServer,協(xié)議設(shè)為默認的TCP/IP協(xié)議。
    接下來我們回來Server窗體模塊中,添加如下代碼:
    Private Sub form_Load()
     With Me
     .sckServer.LocalPort = 88917'本地端口(呵呵!我的生日?。?BR>     .sckServer.Listen '開始監(jiān)聽
     End With
    End Sub
    '接受客戶端的連接請求。
    Private Sub sckServer_ConnectionRequest(ByVal requestID As Long)
     With Me
     If .sckServer.State <>sckClosed Then .sckServer.Close
     .sckServer.Accept (requestID)
     End With
    End Sub
     下面我們來建立客戶端程序:新建一個工程,名為Client,把窗體名為Client,在上面加入一個winsock控件,名為sckClient,協(xié)議為TCP/IP協(xié)議。再加一個按鈕cmdConnect在窗體模塊中加入代碼:
    Private Sub form_Load()
     With Me
     .sckClient.RemoteHost = "127.0.0.1"'設(shè)置遠程IP,本例設(shè)為本機。
     .sckClient.RemotePort = 88917 '遠程端口,就為server中的設(shè)置一樣.
     End With
    End Sub
    Private sub cmdConnect_Click()
     SckClient.Connect
    End sub
     至此,單擊Connect按鈕我們的兩個工程已經(jīng)可以進行通信了,但看不見,你可以在Client中的sckClient_Connect事件中加入代碼:debug.print “Connetion successful!”來查看。
     這僅是第一步,一點工作也做不了,下面我們來為它們添加功能。為了簡單,本文章只實現(xiàn)一點小小的功能―――關(guān)機,重啟,注銷。好,開始吧!
     在Server工程中新建一個模塊,Name為modApi,這個??鞛橐恍〢PI函數(shù),添加如下API函數(shù):
    Public Declare Function ExitWindowXXX Lib "user32" Alias "ExitWindowXXX" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Public Const EWX_LOGOFF = 0
    Public Const EWX_REBOOT = 2
    Public Const EWX_SHUTDOWN = 1
    Public Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long
    Public Type RECT
     Left As Long
     Top As Long
     Right As Long
     Bottom As Long
    End Type
     注:在兩個socket中編程中,進行通信的重要事件是DataArrival事件,用于接收遠程數(shù)據(jù)。