Changeset 471

Show
Ignore:
Timestamp:
03/31/10 20:08:54 (8 years ago)
Author:
arthur
Message:

Merge IRC patch from Patrik Lantz. Change setup.py to use dpkt 1.7

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/honeysnap/ircDecode.py

    r461 r471  
    3333 
    3434# global bot word list. 
    35 botprefixes = [".", "-", "!", "\`",  "\\", "|"] 
    36 botcoms = ["die ", "esay ", "flood ", "m ", "me ", "part ", "payment ", "ping ", "s ", "say ", "server ", 
    37         "services ", "startflood ", "stopflood ", "x ", "antiaction ", "antibold ", "anticolour ", "antinotice ", 
    38         "antipub ", "antirepeat ", "antireverse ", "antiunderline ", "antiurl ", "autovoice ", "chanserv ",  
    39         "cycle ", "dynamicexempts ", "dynamicinvites ", "enforcetopiclimit ", "nodesynch ", "locked ", 
    40         "noop ", "op ", "passive ", "private ", "revenge ", "revengebot ", "secret ", "seen ", "seen ", 
    41         "shared ", "stats ", "strictop ", "suspended ", "topic ", "userexempts ", "userinvites ", "voice "] 
     35botprefixes = ["", "?", ":", ".", "-", "!", "\`",  "\\", "|"] 
     36botcoms = ["die ", "esay ", "flood ", "m ", "me ", "part ", "payment ", "ping ", "pingstop ", "s ", "say ", "server ", "services ", "startflood ", 
     37        "stopflood ", "x ", "advscan ", "asc ", "aolspam.", "antiaction ", "antibold ", "anticolour ", "antinotice ", "antipub ", "antirepeat ", "antireverse ", 
     38        "antiunderline ", "antiurl ", "autovoice ", "carnivore ", "chanserv ", "clone ", "c ", "clonestop ", "cycle ", "c_raw ", "c_mode ", "c_nick ", 
     39        "c_join ", "c_part ", "c_privmsg ", "c_action ", "c_r ", "c_m ", "c_n ", "c_j ", "c_p ", "c_pm ", "c_a ", "cvar.", "download ", "dl ", "dynamicexempts ", 
     40        "dynamicinvites ", "ddos.", "enforcetopiclimit ", "email ", "execute ", "findfile ", "ff ", "findfilestopp ", "http.", "icmp ", "icmpflood ", 
     41        "nodesynch ", "locked ", "noop ", "op ", "passive ", "private ", "rename ", "mv ", "revenge ", "revengebot ", "scanall ", "sa ", "scandel ", "scan.", 
     42        "scanstop ", "scanstats ", "secret ", "seen ", "seen ", "shared ", "sniffer.", "stats ", "spam.", "syn ", "synstop ", "strictop ", "suspended ", "topic ", 
     43        "udp ", "udpstop ", "update ", "up ", "userexempts ", "userinvites ", "voice "] 
    4244 
    4345botwords = [] 
     
    9294        self.words = words 
    9395        self.wordlines = [] 
    94         self.botlines = [] 
     96        self.botlines = []     
     97        self.currenttopicsBotCmd = [] 
     98        self.currenttopicsKeyword = []         
    9599        self.privcount = 0      
    96100        self.dir = "" 
     
    155159            self.targets[target] += 1 
    156160            #self.ipsearch(c,e) 
    157             if cmd in ["privmsg", "pubmsg", "notice", "privnotice"]: 
     161            if cmd in ['privmsg', 'mode', 'quit', 'nick', 'join', 'pubmsg', 'currenttopic', 'topicinfo', 'topic']: 
    158162                self.analyzeMsg(c, e) 
    159163             
     
    196200    def ipsearch(self, c, e): 
    197201        cmd = e.eventtype() 
    198         if cmd in ['privmsg', 'mode', 'quit', 'nick', 'join', 'pubmsg']: 
     202        if cmd in ['privmsg', 'mode', 'quit', 'nick', 'join', 'pubmsg', 'currenttopic', 'topicinfo', 'topic']: 
    199203            #srcip = dnet.addr(c.pkt.src) 
    200204            srcip = e.src 
     
    205209                 
    206210    def botcmds(self, c, e):    
    207         """Find lines matching botwords""" 
     211        """Find lines matching botwords"""      
     212        if e.eventtype() == 'topicinfo': 
     213            self.topics(e, 'botcmds') 
     214            return 
    208215        data = ' '.join(e.arguments()) 
    209216        matches = [w for w in self.botwords if w in data] 
    210217        if len(matches) > 0:   
    211             self.botlines.append([str(e), matches]) 
     218            self.botlines.append([str(e), matches])   
     219            if e.eventtype() == 'currenttopic': 
     220                self.currenttopicsBotCmd.append(str(e)) 
    212221         
    213222    def keywords(self, c, e): 
    214         """Find lines matching word list""" 
     223        """Find lines matching word list"""     
     224        if e.eventtype() == 'topicinfo': 
     225            self.topics(e, 'keyword') 
     226            return         
    215227        data = ' '.join(e.arguments()) 
    216228        matches = [w for w in self.words if w in data] 
    217229        if len(matches) > 0:  
    218             self.wordlines.append([str(e), matches]) 
     230            self.wordlines.append([str(e), matches])   
     231            if e.eventtype() == 'currenttopic': 
     232                self.currenttopicsKeyword.append(str(e))             
     233 
     234    def topics(self, e, matchtype): 
     235        """ 
     236        Find matching currenttopic and topicinfo 
     237        Store result in self.botlines or self.wordlines (for keyword matches) 
     238        """ 
     239        savedtopics = self.currenttopicsBotCmd 
     240        matchlist   = self.botlines 
     241        if matchtype == 'keyword': 
     242            savedtopics = self.currenttopicsKeyword 
     243            matchlist   = self.wordlines 
     244        timecmp = str(e).split(' ')[0].strip() 
     245        for s in savedtopics: 
     246            if s.split(' ')[0].strip() == timecmp: 
     247                matchlist.append([str(e), 'currenttopic']) 
    219248     
    220249    def analyzeMsg(self, c, e): 
     
    232261        else: 
    233262            fromuser = e.source() 
    234         #t = time.asctime(time.localtime(c.ts)) 
    235263        t = e.time 
    236264        cmd = e.eventtype() 
    237         if cmd == "pubmsg" or cmd=="notice": 
     265        if cmd == "pubmsg" or cmd=="notice" or cmd=="topic": 
    238266            channel = e.target() 
    239267        if cmd == "privmsg" or cmd=="privnotice": 
  • trunk/setup.py

    r465 r471  
    2323    install_requires = [ 
    2424        "python-irclib>=0.4.6", 
    25         "dpkt>=1.6",  
     25        "dpkt>=1.7",  
    2626    ], 
    2727    dependency_links = [     
    28         "http://dpkt.googlecode.com/files/dpkt-1.6.tar.gz", 
     28        "http://dpkt.googlecode.com/files/dpkt-1.7.tar.gz", 
    2929    ], 
    3030    entry_points = {