Ticket #144: geoip-nmap-modules-fixes.diff

File geoip-nmap-modules-fixes.diff, 2.5 kB (added by stack.box@gmail.com, 3 months ago)

geoip and nmap modules fixes

  • scapy-2.0.0.10/scapy/modules/geoip.py

    old new  
    5252    ip=map(int,ip.split(".")) 
    5353    ip = ip[3]+(ip[2]<<8L)+(ip[1]<<16L)+(ip[0]<<24L) 
    5454 
    55     cloc = country_loc_kdb.get_base() 
    56     db = IP_country_kdb.get_base() 
     55    cloc = conf.country_loc_kdb.get_base() 
     56    db = conf.IP_country_kdb.get_base() 
    5757 
    5858    d=0 
    5959    f=len(db)-1 
  • scapy-2.0.0.10/scapy/modules/nmap.py

    old new  
    66from scapy.data import KnowledgeBase 
    77from scapy.config import conf 
    88 
    9 conf.nmap_base ="/usr/share/nmap/nmap-os-fingerprints" 
     9from scapy.layers.inet import * 
     10 
     11conf.nmap_base = "/usr/share/nmap/nmap-os-fingerprints" 
     12#conf.nmap_base = "/usr/share/nmap/nmap-os-db" 
    1013 
    1114 
    1215###################### 
     
    2225            return 
    2326 
    2427        self.base = [] 
    25         name = None 
     28        sig = name = None 
    2629        try: 
    27             for l in f
     30            for l in f.readlines()
    2831                l = l.strip() 
    2932                if not l or l[0] == "#": 
    3033                    continue 
    31                 if l[:12] == "Fingerprint "
    32                     if name is not None
     34                if l.startswith("Fingerprint ")
     35                    if name is not None and sig is not None
    3336                        self.base.append((name,sig)) 
    3437                    name = l[12:].strip() 
    3538                    sig={} 
    3639                    p = self.base 
    3740                    continue 
    38                 elif l[:6] == "Class ": 
     41                elif l.startswith("Class "): 
     42                    continue 
     43                if not name: 
    3944                    continue 
     45 
    4046                op = l.find("(") 
    4147                cl = l.find(")") 
    4248                if op < 0 or cl < 0: 
     
    4854                for n,v in s: 
    4955                    si[n] = v 
    5056                sig[test]=si 
    51             if name is not None
     57            if name is not None and sig is not None
    5258                self.base.append((name,sig)) 
    53         except
     59        except Exception, err
    5460            self.base = None 
    5561            warning("Can't read nmap database [%s](new nmap version ?)" % self.filename) 
    5662        f.close()