O bot monitora e controla o computador via telegramas

De que bot você está falando?


Este é um bot que eu mesmo escrevi usando Python.

Se você escrever o bot "s", o bot fará uma captura de tela e a enviará de volta para você.

Se o bot escrever "pergunta xxxxxxxxxxxxxxxxx?", Onde xxxxxxxxxxxxxxxx é sua pergunta, será aberta uma janela em toda a tela do computador em que sua pergunta foi escrita e no formulário de resposta, após o qual a pessoa terá a oportunidade de escrever a resposta para sua pergunta e clique em "Enviar" , após o qual o bot retornará a você o que a pessoa respondeu.

Você também pode escrever qualquer coisa para o bot e, no computador, uma caixa de diálogo é aberta com um botão "ok" e o conteúdo que você escreveu.

Como eu usei esse bot


Comecei antes de sair da loja, depois entrei nos telegramas para o bot e tirei screenshots. Então meu irmão mais novo sentou-se no computador e começou a trabalhar lá.
Então eu escrevi a seguinte mensagem para o bot: "a pergunta, por que você sentou no computador?", E ficou assim:

imagem

Bem, nós correspondemos com ele lá e, ao chegar em casa, concordamos que ele não seria mais assim :)

Como eu escrevi isso?


Conheço Python há muito tempo, e o conheço bem, por isso não foi difícil escrever um bot desse tipo.
Para mais ou menos programadores.

Eu usei bibliotecas: telebot, PyQt5, sys, tkinter, pyautogui, e isso é tudo, foi o suficiente para mim.

Aqui está o código fonte do programa:

import telebot as TL#          
from PyQt5.QtWidgets import QMessageBox#    messagebox     
import PyQt5#     
import sys#     
from tkinter import *#     ,          
from pyautogui import screenshot#    pyautogui   

token = input("  : ")

def vopros(mess,msg):#     
    def ok_btn(entr,msg,root):#     ,       ""
        msg = msg
        root = root
        msg(": "+entr.get())
        root.destroy()
    root = Tk()#   tkinter  
    root.geometry("200x200")#   
    root.attributes("-fullscreen",True)# ,         
    root.lift()#   lift,     
    lab = Label(root,text=mess)# ,          
    entr = Entry(root)#  
    btn_ok = Button(text="",command=lambda: ok_btn(entr,msg,root))#  "",     "ok_btn",     :  ,   ,  
    lab.pack()# 
    entr.pack()#  
    btn_ok.pack()##  ""
    root.mainloop()#  


def msg_mean(mess):#      
    newApp = PyQt5.QtWidgets.QApplication(sys.argv)#    PyQt5
    msg = QMessageBox()#   
    msg.setWindowTitle("")#     
    msg.setText(mess)#   ,    
    msg.setIcon(QMessageBox.Critical)#    
    x = msg.exec_()# 

bot = TL.TeleBot(token)#  "bot",     
@bot.message_handler(commands=['start'])#   bot  
def start_message(message):#        
                           #      ,    start 
                           #   
    bot.send_message(message.chat.id, ',  :)')#    " "

@bot.message_handler(content_types=['text'])#   bot  
def send_text(message):#    ()      
    def msg(message_text):#     
        bot.send_message(message.chat.id, str(message_text))#  id    ,          
    def snd_doc(name_doc):#     "msg",      (      )
        bot.send_document(message.chat.id, open(name_doc,"rb"))
    if message.text[:6] == "":#         "",      
        vopros(message.text,msg)#        
    else:#  
        if message.text == "s":#    "s"
            screen = screenshot('s.jpg')#   
            snd_doc("s.jpg")#      "snd_doc" 
        else:#      "s"    "",     
            msg_mean(message.text)#        


while True:#      
    try:
        bot.polling()#  
    except(BaseException):
        pass#   
    #         
    #      


Como você pode ver, o bot não é complicado, mas há bugs:

  • pode ser facilmente desabilitado através do gerenciador de tarefas,
  • se você envia muitas mensagens, ele simplesmente voa.

E uma pessoa pode se conectar ao seu bot (se ele souber qual é o nome do seu bot) e observar o computador.

Felizmente, eu sei como consertá-lo, e talvez consertá-lo, se você gosta de um bot desse tipo.

O que acontece no bot?


Primeiro, inicializo todas as bibliotecas que o bot usará.

import telebot as TL#          
from PyQt5.QtWidgets import QMessageBox#    messagebox     
import PyQt5#     
import sys#     
from tkinter import *#     ,          
from pyautogui import screenshot#    pyautogui   

Em seguida, crio uma função de pergunta:

def vopros(mess,msg):#     
    def ok_btn(entr,msg,root):#     ,       ""
        msg = msg
        root = root
        msg(": "+entr.get())
        root.destroy()
    root = Tk()#   tkinter  
    root.geometry("200x200")#   
    root.attributes("-fullscreen",True)# ,         
    root.lift()#   lift,     
    lab = Label(root,text=mess)# ,          
    entr = Entry(root)#  
    btn_ok = Button(text="",command=lambda: ok_btn(entr,msg,root))#  "",     "ok_btn",     :  ,   ,  
    lab.pack()# 
    entr.pack()#  
    btn_ok.pack()##  ""
    root.mainloop()#  

Em seguida, crio uma função que exibirá uma mensagem para o usuário no PC:

def msg_mean(mess):#      
    newApp = PyQt5.QtWidgets.QApplication(sys.argv)#    PyQt5
    msg = QMessageBox()#   
    msg.setWindowTitle("")#     
    msg.setText(mess)#   ,    
    msg.setIcon(QMessageBox.Critical)#    
    x = msg.exec_()# 

Então você pode fazer o telegrama e o bot em si, criar um bot:

bot = TL.TeleBot(token)#  "bot",     

E eu crio a primeira função que responderá ao comando "/ start" no telegrama:

def start_message(message):#        
                           #      ,    start 
                           #   
    bot.send_message(message.chat.id, ',  :)')#    " "

Em seguida, também trabalhamos com telegramas e agora criamos uma função que receberá uma mensagem do usuário:

@bot.message_handler(content_types=['text'])#   bot  
def send_text(message):#    ()      

E nele criamos duas funções, são msg e snd_doc.

    def msg(message_text):#     
        bot.send_message(message.chat.id, str(message_text))#  id    ,          
    def snd_doc(name_doc):#     "msg",      (      )
        bot.send_document(message.chat.id, open(name_doc,"rb"))

Em seguida, recebemos uma mensagem do usuário bot e verificamos o que ele queria:

    if message.text[:6] == "":#         "",      
        vopros(message.text,msg)#        
    else:#  
        if message.text == "s":#    "s"
            screen = screenshot('s.jpg')#   
            snd_doc("s.jpg")#      "snd_doc" 
        else:#      "s"    "",     
            msg_mean(message.text)#        

Resta apenas lançar o bot:

while True:#      
    try:
        bot.polling()#  
    except(BaseException):
        pass#   
    #         
    #      

É tudo, é assim que funciona.

Como usar esse bot?


Pode parecer complicado, mas se você fizer tudo de acordo com as instruções, nada será complicado.

instrução


Encontre no telegrama do bot chamado @BotFather,
a aparência é a seguinte: em imagem
seguida, escreva um comando para criar um novo bot, o comando se parece com o seguinte: / newbot

imagem
Em seguida, chame seu bot como quiser, mas você precisa nomeá-lo individualmente, ou seja, para que não exista esse bot no mundo, por exemplo: BotStepana3215.



Em seguida, você precisará criar o nome do seu bot e ter o prefixo "bot", por exemplo, chamarei meu assim: BotStepana3215_bot:



E o @BotFather fornecerá o token do seu bot, assim:



Este token não pode ser fornecido a mais ninguém, porque pode mude o bot.

E resta copiar o token, salvá-lo em algum lugar de um arquivo de texto (é mais conveniente copiar de lá), executar o programa e inserir o token lá.

E agora você pode escrever para o seu bot que você acabou de criar (ele pode ser encontrado na pesquisa de telegramas pelo sobrenome, no meu caso @ BotStepana3215_bot), e tudo o que listei a partir dessa funcionalidade funcionará para você.

Onde conseguir esse bot?


Aqui eu tenho .exe e .py no github

Mas .exe é apenas para o Windows 10.

Aproveite o programa e escreva críticas.

Boa sorte

All Articles