• STATISTIQUES
  • Il y a eu un total de 0 membres et 41175 visiteurs sur le site dans les dernières 24h pour un total de 41 175 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] PHPFreaks
    PHPFreaks est un site dédié à l'apprentissage et l'enseignement du PHP. Ici vous trouver...
    Programmation
    [EN] phrack
    Lot's of stuff !
    Hacking
    [FR] Root-me
    Script: 5, Système: 20, Cracking: 16, Cryptanalyse: 17, Programmation: 8, Réaliste: 11, Réseau: 10, Stéganog...
    Challenges
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[IRC] bot python.
19-05-2014, 11h32
Message : #1
Junky Hors ligne
Snorky Master
*



Messages : 228
Sujets : 35
Points: 203
Inscription : Mar 2013
[IRC] bot python.
Bonjour,

En parallèle d'une journée merdique pour un admin sys linux (maj openssl du parc plus installation d'n windows 7) je vous poste le début du code de mon BOT irc que je suis en train de me faire pour le fun.

Code PYTHON :

#!/usr/bin/python2

import socket
import time
import string
import re

VERSION = "PythonBot: 0.1 powered by Snorky"

DEBUG = False


LIST=["!help", "!quit", "!conn"]


def init_conn(channel, nickname, server, port):
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect((server, port))
    return s

def send_data(s, msg):
    msg = msg + "\r\n"
    s.send(msg)

def ping(s, msg):
    send_data(s, "PONG %s" % msg)

def conn(s, channel, nickname, host):
    ident = "aa"
    realname = "bb"
    #Send data for connection
    send_data(s, "NICK %s" % nickname)
    send_data(s, "USER %s %s oxy :%s" % (ident, host, realname))
    #Waiting
    time.sleep(2)
    #Join the channel
    send_data(s, "JOIN %s" % channel)

def cctp(s, line):
    nick, msg_type, chan = info(line)
    if (re.findall(ur"^.+VERSION.+$", line[3])):
        #[':Snorky!Silentd@snorky', 'PRIVMSG', 'Oxy', ':\x01VERSION\x01']
        send_data(s, (("NOTICE %s \001VERSION %s\001")% (nick, VERSION)))
    else:
        send_data(s, (("NOTICE %s \001THE_GAME %s\001")% (nick, "www.tukif.com")))

def info(line):
    nick = line[0].split("!")[0][1:]
    msg_type = line[1]
    channel = line[2]
    return nick, msg_type, channel


def menu(s, channel):
    for cmd in LIST:
        send_data(s, ("PRIVMSG %s %s" % (channel, cmd)))
        time.sleep(0.2)

def do_command(s, line, connected, channel):
    #[':Snorky!Silentd@snorky', 'PRIVMSG', '#Snorky_land', ':zz']
    #:Snorky!Silentd@snorky PRIVMSG #Snorky_land :zz
    regex = ur"^:\x01.+\x01$"
    victim = line[0].split("!")[0][1:]
    if DEBUG: print line

    if (connected == 0):
        print ' '.join(map(str, line))
        if (line[1] == "JOIN"):
            connected = 1
    #CTCP VERSION
    elif (re.findall(regex, line[3])):
        cctp(s, line)
    #Menu
    elif (line[3]==":!menu"):
        menu(s, channel)
    #Chanserv Notification
    elif(victim == "ChanServ"):
        print line
    else:
        print line[0].split("!")[0][1:], "\t| ", line[3][1:]
    return connected

def master(s, channel, nickname, server, port):
    readbuffer = ""
    connected = 0
    while True:
        readbuffer=readbuffer+s.recv(1024)
        temp=string.split(readbuffer, "\n")
        readbuffer=temp.pop( )

        for line in temp:
            line=string.rstrip(line)
            line=string.split(line)
            if(line[0]=="PING"):
                ping(s, line[1])
            else :
                connected = do_command(s, line, connected, channel)
#        msg = raw_input(">>> ")
#        if (connected == 1):
#            send_data(s, ("PRIVMSG %s %s" %(channel, msg)))
        time.sleep(0.2)

def main():
    import sys
    if len(sys.argv) != 4:
        print "Usage: testbot <server[:port]> <channel> <nickname>"
        sys.exit(1)

    s = sys.argv[1].split(":", 1)
    server = s[0]
    if len(s) == 2:
        try:
            port = int(s[1])
        except ValueError:
            print "Error: Erroneous port."
            sys.exit(1)
    else:
        port = 6667
    channel = sys.argv[2]
    nickname = sys.argv[3]

    s = init_conn(channel, nickname, server, port)
    conn(s, channel, nickname, server)

    master(s, channel, nickname, server, port)


if __name__ == "__main__":
    main()

 


Pour le lancer:
Code :
#./prog.py SERVER_NAME CHAN NICK
./oxy.py irc.big-daddy.fr \#bot Oxy

#Attention, bien échapper le '#' du chan sinon marche pas et vous devriez comprendre pk. :)

Voilou, je retourne a mes MAJ + install . Smile

Junky,
Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier

+1 (3) -1 (0) Répondre


Messages dans ce sujet
[IRC] bot python. - par Junky - 19-05-2014, 11h32
RE: [IRC] bot python. - par Junky - 23-05-2014, 14h35
RE: [IRC] bot python. - par Aniem - 26-05-2014, 16h23
RE: [IRC] bot python. - par Junky - 26-05-2014, 16h27
RE: [IRC] bot python. - par Talanor - 31-05-2014, 16h15
RE: [IRC] bot python. - par Junky - 04-06-2014, 11h36

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 946 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 137 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 222 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 120 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 432 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 347 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 156 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 179 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 124 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 419 15-08-2014, 20h26
Dernier message: sakiir

Atteindre :


Utilisateur(s) parcourant ce sujet : 6 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut