More UI functionality
This commit is contained in:
		
							
								
								
									
										3
									
								
								auth.py
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								auth.py
									
									
									
									
									
								
							@@ -9,11 +9,12 @@ def login(config, user, password, sysid):
 | 
				
			|||||||
    fprint("Attempting to login as " + user)
 | 
					    fprint("Attempting to login as " + user)
 | 
				
			||||||
    filename = sysid + "login.csv"
 | 
					    filename = sysid + "login.csv"
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    hashpasswd = bcrypt.hashpw(password.encode('utf-8'), user).decode()
 | 
					    #hashpasswd = bcrypt.hashpw(password.encode('utf-8'), user).decode()
 | 
				
			||||||
    with open(find_data_file(filename), "w", newline="") as f:
 | 
					    with open(find_data_file(filename), "w", newline="") as f:
 | 
				
			||||||
        writer = csv.writer(f)
 | 
					        writer = csv.writer(f)
 | 
				
			||||||
        writer.writerows([[user,password,sysid],])
 | 
					        writer.writerows([[user,password,sysid],])
 | 
				
			||||||
    fprint("done creating csv")
 | 
					    fprint("done creating csv")
 | 
				
			||||||
 | 
					    #return True
 | 
				
			||||||
    ssh.sftp_send_data(config, filename, 'sendlogin')
 | 
					    ssh.sftp_send_data(config, filename, 'sendlogin')
 | 
				
			||||||
    command = "python3 login_service.py " + sysid
 | 
					    command = "python3 login_service.py " + sysid
 | 
				
			||||||
    ssh.run_ssh(config, command, 'scripts')
 | 
					    ssh.run_ssh(config, command, 'scripts')
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										41
									
								
								block.py
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								block.py
									
									
									
									
									
								
							@@ -20,32 +20,53 @@ def get_blocklist(config):
 | 
				
			|||||||
    for row in csvreader:
 | 
					    for row in csvreader:
 | 
				
			||||||
        data2.append(row)
 | 
					        data2.append(row)
 | 
				
			||||||
    data2 = [i for i in data2 if i]
 | 
					    data2 = [i for i in data2 if i]
 | 
				
			||||||
 | 
					    #fprint(data2)
 | 
				
			||||||
 | 
					    data2.append(["N/A", "N/A", "N/A", "N/A", "100.115.71.78", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"])
 | 
				
			||||||
    fprint(data2)
 | 
					    fprint(data2)
 | 
				
			||||||
 | 
					    with open(find_data_file("blocklist.csv"), "w", newline="") as f:
 | 
				
			||||||
 | 
					        writer = csv.writer(f)
 | 
				
			||||||
 | 
					        writer.writerows(data2)
 | 
				
			||||||
 | 
					    fprint("done creating csv")
 | 
				
			||||||
    return data2
 | 
					    return data2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def block_conn(config, datafile, res):
 | 
					def block_conn(config, datafile, res):
 | 
				
			||||||
    setup_child()
 | 
					    setup_child()
 | 
				
			||||||
    fprint("Searching block data")
 | 
					    fprint("Searching block data")
 | 
				
			||||||
    mydata = list()
 | 
					    mydata = list()
 | 
				
			||||||
 | 
					    badapps = list()
 | 
				
			||||||
    with open(find_data_file(datafile), newline='') as csvfile:
 | 
					    with open(find_data_file(datafile), newline='') as csvfile:
 | 
				
			||||||
        csvreader = csv.reader(csvfile, delimiter=',', quotechar='|')
 | 
					        csvreader = csv.reader(csvfile, delimiter=',', quotechar='|')
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        for row in csvreader:
 | 
					        for row in csvreader:
 | 
				
			||||||
            mydata.append(row)
 | 
					            mydata.append(row)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    baddata = res
 | 
				
			||||||
 | 
					    fprint("Local loaded successfully")
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    #fprint(mydata)
 | 
					    #fprint(mydata)
 | 
				
			||||||
    for line in mydata:
 | 
					    for line in mydata:
 | 
				
			||||||
        fprint(line)
 | 
					        #fprint(line)
 | 
				
			||||||
        fprint(line)
 | 
					        #fprint(line)
 | 
				
			||||||
 | 
					        if line[0].find("0x") >= 0:
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        srcip = line[2].split(":")[0]
 | 
					        srcip = line[2].split(":")[0]
 | 
				
			||||||
        destip = line[4].split(":")[0]
 | 
					        destip = line[3].split(":")[0]
 | 
				
			||||||
        pid = line[5]
 | 
					        pid = line[5]
 | 
				
			||||||
        for line in res:
 | 
					        try: 
 | 
				
			||||||
            fprint(line)
 | 
					            pid = int(pid)
 | 
				
			||||||
 | 
					        except ValueError:
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for line in baddata:
 | 
				
			||||||
 | 
					            #fprint(destip + " " + line[4])
 | 
				
			||||||
            badsrcip = line[2]
 | 
					            badsrcip = line[2]
 | 
				
			||||||
            baddestip = line[4]
 | 
					            baddestip = line[4]
 | 
				
			||||||
            badpid = line[11]
 | 
					            badpid = line[11]
 | 
				
			||||||
            if srcip == badsrcip or destip == baddestip:
 | 
					            if srcip == badsrcip or destip == baddestip and not pid in badapps:
 | 
				
			||||||
                fprint("FLAG " + srcip + " " + destip + " " + pid)
 | 
					                fprint("FLAG " + srcip + " " + destip + " " + str(pid))
 | 
				
			||||||
                kill(pid)
 | 
					                badapps.append(pid)
 | 
				
			||||||
 | 
					                #fprint(badapps)
 | 
				
			||||||
 | 
					                #fprint("FLAG " + srcip + " " + destip + " " + str(pid))
 | 
				
			||||||
 | 
					                #kill(pid)
 | 
				
			||||||
 | 
					    return badapps
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										44
									
								
								ippigeon.py
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								ippigeon.py
									
									
									
									
									
								
							@@ -8,6 +8,7 @@ import uuid
 | 
				
			|||||||
import yaml
 | 
					import yaml
 | 
				
			||||||
from util import find_data_file
 | 
					from util import find_data_file
 | 
				
			||||||
from util import fprint
 | 
					from util import fprint
 | 
				
			||||||
 | 
					from util import kill
 | 
				
			||||||
import taskbartool
 | 
					import taskbartool
 | 
				
			||||||
import util
 | 
					import util
 | 
				
			||||||
import netstat
 | 
					import netstat
 | 
				
			||||||
@@ -17,6 +18,7 @@ import panel
 | 
				
			|||||||
import block
 | 
					import block
 | 
				
			||||||
 | 
					
 | 
				
			||||||
badapps = [756, 278670]
 | 
					badapps = [756, 278670]
 | 
				
			||||||
 | 
					badips = ["208.59.79.12",]
 | 
				
			||||||
displaydata = None
 | 
					displaydata = None
 | 
				
			||||||
settings = None
 | 
					settings = None
 | 
				
			||||||
netdata_res = None
 | 
					netdata_res = None
 | 
				
			||||||
@@ -63,8 +65,11 @@ def netstat_done(res):
 | 
				
			|||||||
def process_done(res):
 | 
					def process_done(res):
 | 
				
			||||||
    fprint("uploading to sftp...")
 | 
					    fprint("uploading to sftp...")
 | 
				
			||||||
    #ssh.sftp_send_data(res, config, datafile)
 | 
					    #ssh.sftp_send_data(res, config, datafile)
 | 
				
			||||||
    procdata_res = pool.apply_async(ssh.sftp_send_data, (config, datafile, 'send'))
 | 
					    procdata_res = pool.apply_async(ssh.sftp_send_data, (config, datafile, 'send'), callback=upload_done)
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					def upload_done(res):
 | 
				
			||||||
 | 
					    settings["block"] = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def login_done(res):
 | 
					def login_done(res):
 | 
				
			||||||
    if not res:
 | 
					    if not res:
 | 
				
			||||||
        fprint("Login failure")
 | 
					        fprint("Login failure")
 | 
				
			||||||
@@ -75,10 +80,18 @@ def login_done(res):
 | 
				
			|||||||
        settings["continueui"] = True
 | 
					        settings["continueui"] = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def blockdata_done(res):
 | 
					def blockdata_done(res):
 | 
				
			||||||
 | 
					    global settings
 | 
				
			||||||
    fprint("FINISHED downloading block data")
 | 
					    fprint("FINISHED downloading block data")
 | 
				
			||||||
    #block_res = pool.apply_async(block.block_conn, (config, datafile, res))
 | 
					    #block_res = pool.apply_async(block.block_conn, (config, datafile, res, settings))
 | 
				
			||||||
    block.block_conn(config, datafile, res)
 | 
					    block_res = block.block_conn(config, datafile, res)
 | 
				
			||||||
    
 | 
					    tmplist = settings["badapps"]
 | 
				
			||||||
 | 
					    for x in block_res:
 | 
				
			||||||
 | 
					        fprint(x)
 | 
				
			||||||
 | 
					        if not x in tmplist:
 | 
				
			||||||
 | 
					            tmplist.append(x)
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    settings["badapps"] = tmplist
 | 
				
			||||||
 | 
					    fprint(settings["badapps"])
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
def killall():
 | 
					def killall():
 | 
				
			||||||
    kids = active_children()
 | 
					    kids = active_children()
 | 
				
			||||||
@@ -104,7 +117,7 @@ def mainloop(pool):
 | 
				
			|||||||
        killall()
 | 
					        killall()
 | 
				
			||||||
    #print(res.get(timeout=1))
 | 
					    #print(res.get(timeout=1))
 | 
				
			||||||
    if counter == 0: # runs every INTERVAL
 | 
					    if counter == 0: # runs every INTERVAL
 | 
				
			||||||
        fprint("start loop")
 | 
					        #fprint("start loop")
 | 
				
			||||||
        if netdata_res is None or netdata_res.ready():
 | 
					        if netdata_res is None or netdata_res.ready():
 | 
				
			||||||
            #rawdata = netdata_res.get()
 | 
					            #rawdata = netdata_res.get()
 | 
				
			||||||
            #procdata_res = pool.apply_async(process_netstat, (rawdata))
 | 
					            #procdata_res = pool.apply_async(process_netstat, (rawdata))
 | 
				
			||||||
@@ -138,12 +151,10 @@ def mainloop(pool):
 | 
				
			|||||||
        #block.get_blocklist(config)
 | 
					        #block.get_blocklist(config)
 | 
				
			||||||
        settings["block"] = False
 | 
					        settings["block"] = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #fprint(settings["killbox"])
 | 
					    if settings["kill"] == True:
 | 
				
			||||||
    if len(settings["killbox"]) > 0:
 | 
					        for x in settings["badapps"]:
 | 
				
			||||||
        fprint("Kill opportunity!")
 | 
					            kill(x)
 | 
				
			||||||
        for proc in settings["killbox"]:
 | 
					        settings["badapps"] = list()
 | 
				
			||||||
            pool.apply_async(kill, (proc,))
 | 
					 | 
				
			||||||
            settings["killbox"].remove(proc)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sleep(interval / (interval * config["core"]["clockspeed"]))
 | 
					    sleep(interval / (interval * config["core"]["clockspeed"]))
 | 
				
			||||||
    counter += 1
 | 
					    counter += 1
 | 
				
			||||||
@@ -175,9 +186,9 @@ if __name__ == '__main__':
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    sys.stdout = Logger(filename=find_data_file("output.log"))
 | 
					    sys.stdout = Logger(filename=find_data_file("output.log"))
 | 
				
			||||||
    sys.stderr = Logger(filename=find_data_file("output.log"))
 | 
					    sys.stderr = Logger(filename=find_data_file("output.log"))
 | 
				
			||||||
    
 | 
					    with Manager() as manager:
 | 
				
			||||||
    with Pool(processes=5) as pool:
 | 
					        with Pool(processes=5) as pool:
 | 
				
			||||||
        with Manager() as manager:
 | 
					        
 | 
				
			||||||
            with open(find_data_file('config.yml'), 'r') as file:
 | 
					            with open(find_data_file('config.yml'), 'r') as file:
 | 
				
			||||||
                #global config
 | 
					                #global config
 | 
				
			||||||
                config = yaml.safe_load(file)
 | 
					                config = yaml.safe_load(file)
 | 
				
			||||||
@@ -190,8 +201,9 @@ if __name__ == '__main__':
 | 
				
			|||||||
            settings["showui"] = False
 | 
					            settings["showui"] = False
 | 
				
			||||||
            settings["continueui"] = False
 | 
					            settings["continueui"] = False
 | 
				
			||||||
            settings["killbox"] = list()
 | 
					            settings["killbox"] = list()
 | 
				
			||||||
            settings["badapps"] = badapps
 | 
					            settings["badapps"] = list()
 | 
				
			||||||
            settings["block"] = True
 | 
					            settings["block"] = False
 | 
				
			||||||
 | 
					            settings["kill"] = False
 | 
				
			||||||
            killme = manager.Value('d', 0)
 | 
					            killme = manager.Value('d', 0)
 | 
				
			||||||
            #killme = False
 | 
					            #killme = False
 | 
				
			||||||
            # launch background UI app as process
 | 
					            # launch background UI app as process
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										594715
									
								
								output.log
									
									
									
									
									
								
							
							
						
						
									
										594715
									
								
								output.log
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										112
									
								
								panel.py
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								panel.py
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ from util import find_data_file
 | 
				
			|||||||
BG_IMG = 'icon.png'
 | 
					BG_IMG = 'icon.png'
 | 
				
			||||||
filename = sysid + "gendata.csv"
 | 
					filename = sysid + "gendata.csv"
 | 
				
			||||||
COLUMN_NAMES = np.flip(['Executable', 'Proto', 'Source IP', 'Destination IP',  'Status', 'PID'])
 | 
					COLUMN_NAMES = np.flip(['Executable', 'Proto', 'Source IP', 'Destination IP',  'Status', 'PID'])
 | 
				
			||||||
COLUMN_SIZES = np.flip([150, 50, 200, 200, 110, 65])
 | 
					COLUMN_SIZES = np.flip([200, 50, 200, 200, 140, 100])
 | 
				
			||||||
TEST_FILE = None
 | 
					TEST_FILE = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
displaydata = None
 | 
					displaydata = None
 | 
				
			||||||
@@ -19,12 +19,26 @@ settings = None
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
killme = False
 | 
					killme = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def loaddata():
 | 
				
			||||||
 | 
					    global TEST_FILE
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        TEST_FILE = pd.read_csv(find_data_file(filename), skiprows=1)
 | 
				
			||||||
 | 
					        TEST_FILE = TEST_FILE.iloc[1:, :]
 | 
				
			||||||
 | 
					        TEST_FILE.columns = ['Executable', 'Protocol', 'Source IP', 'Destination IP',  'Status', 'PID']
 | 
				
			||||||
 | 
					        #fprint(TEST_FILE)
 | 
				
			||||||
 | 
					        #fprint(len(TEST_FILE))
 | 
				
			||||||
 | 
					        #fprint(TEST_FILE.iloc[1, 1])
 | 
				
			||||||
 | 
					    except FileNotFoundError:
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
class OtherFrame(wx.Frame):
 | 
					class OtherFrame(wx.Frame):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Class used for creating frames other than the main one
 | 
					    Class used for creating frames other than the main one
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    def __init__(self):
 | 
					    def __init__(self):
 | 
				
			||||||
        wx.Frame.__init__(self, None, -1, 'Server Panel', size=(600, 250))
 | 
					        wx.Frame.__init__(self, None, -1, 'Server Panel', size=(1000, 700))
 | 
				
			||||||
        panel = ServerPanel(self)
 | 
					        panel = ServerPanel(self)
 | 
				
			||||||
        self.Show()
 | 
					        self.Show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -122,12 +136,11 @@ class ServerPanel(wx.Panel):
 | 
				
			|||||||
    def __init__(self, parent):
 | 
					    def __init__(self, parent):
 | 
				
			||||||
        super().__init__(parent, size=(500, 500))
 | 
					        super().__init__(parent, size=(500, 500))
 | 
				
			||||||
        #self.SetBackgroundColour((44, 51, 51))
 | 
					        #self.SetBackgroundColour((44, 51, 51))
 | 
				
			||||||
        
 | 
					        self.main_sizer = wx.BoxSizer(wx.VERTICAL)
 | 
				
			||||||
        main_sizer = wx.BoxSizer(wx.VERTICAL)
 | 
					 | 
				
			||||||
        secondary_sizer = wx.BoxSizer(wx.HORIZONTAL)
 | 
					        secondary_sizer = wx.BoxSizer(wx.HORIZONTAL)
 | 
				
			||||||
        self.row_obj_dict = {}
 | 
					        self.row_obj_dict = {}
 | 
				
			||||||
        self.list_ctrl = wx.ListCtrl(
 | 
					        self.list_ctrl = wx.ListCtrl(
 | 
				
			||||||
            self, size=(-1, 200),
 | 
					            self, size=(-1, 400),
 | 
				
			||||||
            style=wx.LC_REPORT | wx.BORDER_SUNKEN
 | 
					            style=wx.LC_REPORT | wx.BORDER_SUNKEN
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        tb = wx.ToolBar( self, -1)
 | 
					        tb = wx.ToolBar( self, -1)
 | 
				
			||||||
@@ -136,52 +149,73 @@ class ServerPanel(wx.Panel):
 | 
				
			|||||||
        tb.AddTool(wx.ID_ANY, '',wx.Bitmap(find_data_file("WXPython_30x30.png")),) 
 | 
					        tb.AddTool(wx.ID_ANY, '',wx.Bitmap(find_data_file("WXPython_30x30.png")),) 
 | 
				
			||||||
        tb.AddTool(wx.ID_ANY, '',wx.Bitmap(find_data_file("settings_30x30.png"))) 
 | 
					        tb.AddTool(wx.ID_ANY, '',wx.Bitmap(find_data_file("settings_30x30.png"))) 
 | 
				
			||||||
        tb.Realize() 
 | 
					        tb.Realize() 
 | 
				
			||||||
        main_sizer.Add(tb)
 | 
					        self.main_sizer.Add(tb)
 | 
				
			||||||
        #main_sizer.SetBackgroundColour((44, 51, 51))
 | 
					        #main_sizer.SetBackgroundColour((44, 51, 51))
 | 
				
			||||||
        # self.pnl1.SetBackgroundColour(wx.BLACK)
 | 
					        # self.pnl1.SetBackgroundColour(wx.BLACK)
 | 
				
			||||||
        self.handle_columns()
 | 
					        self.handle_columns()
 | 
				
			||||||
        global settings
 | 
					        #self.updatedata()
 | 
				
			||||||
        for i in range(len(TEST_FILE)):
 | 
					        wx.CallAfter(self.updatedata)
 | 
				
			||||||
            self.list_ctrl.InsertItem(i, TEST_FILE.iloc[i, 0])
 | 
					        
 | 
				
			||||||
            #fprint(TEST_FILE.iloc[i, 5] + " in " + str(settings["badapps"]))
 | 
					        wx.GetApp().ProcessPendingEvents() 
 | 
				
			||||||
            #if TEST_FILE.iloc[i, 5] in settings["badapps"]:
 | 
					        self.main_sizer.Add(self.list_ctrl, 0, wx.ALL | wx.EXPAND, 20)
 | 
				
			||||||
            for pid in settings["badapps"]:
 | 
					 | 
				
			||||||
                #fprint(pid)
 | 
					 | 
				
			||||||
                if str(TEST_FILE.iloc[i, 5]) == str(pid):
 | 
					 | 
				
			||||||
                    #fprint("Got " + TEST_FILE.iloc[i, 5])
 | 
					 | 
				
			||||||
                    settings["killbox"].append(pid)
 | 
					 | 
				
			||||||
                    fprint(settings["killbox"])
 | 
					 | 
				
			||||||
                    self.list_ctrl.SetItemBackgroundColour(i, wx.Colour(200, 51, 51))
 | 
					 | 
				
			||||||
            for j in range(1, 6):
 | 
					 | 
				
			||||||
                self.list_ctrl.SetItem(i, j, str(TEST_FILE.iloc[i, j]))
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                #fprint(i, j, TEST_FILE.iloc[i, j])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        main_sizer.Add(self.list_ctrl, 0, wx.ALL | wx.EXPAND, 20)
 | 
					 | 
				
			||||||
        start_button = wx.Button(self, label='Start')
 | 
					        start_button = wx.Button(self, label='Start')
 | 
				
			||||||
        start_button.SetBackgroundColour((205, 215, 206))
 | 
					        start_button.SetBackgroundColour((205, 215, 206))
 | 
				
			||||||
        start_button.Bind(wx.EVT_BUTTON, self.on_edit)
 | 
					        start_button.Bind(wx.EVT_BUTTON, self.on_start)
 | 
				
			||||||
        start_button.Bind(wx.EVT_ENTER_WINDOW, self.on_edit)
 | 
					        #start_button.Bind(wx.EVT_ENTER_WINDOW, self.on_start)
 | 
				
			||||||
        stop_button = wx.Button(self, label='Stop')
 | 
					        stop_button = wx.Button(self, label='Stop')
 | 
				
			||||||
        stop_button.SetBackgroundColour('#F08080')
 | 
					        stop_button.SetBackgroundColour('#F08080')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        secondary_frame_button = wx.Button(self, label='Window')
 | 
					        secondary_frame_button = wx.Button(self, label='Window')
 | 
				
			||||||
        secondary_frame_button.Bind(wx.EVT_BUTTON, self.on_window)
 | 
					        secondary_frame_button.Bind(wx.EVT_BUTTON, self.on_window)
 | 
				
			||||||
        # wx.BORDER(stop_button, wx.BORDER_NONE)
 | 
					        # wx.BORDER(stop_button, wx.BORDER_NONE)
 | 
				
			||||||
        stop_button.Bind(wx.EVT_BUTTON, self.on_edit)
 | 
					        stop_button.Bind(wx.EVT_BUTTON, self.on_stop)
 | 
				
			||||||
        main_sizer.Add(start_button, 0, wx.CENTER | wx.ALL | 100, 5)
 | 
					        self.main_sizer.Add(start_button, 0, wx.CENTER | wx.ALL | 100, 5)
 | 
				
			||||||
        main_sizer.Add(stop_button, 0, wx.CENTER | wx.ALL | 100, 5)
 | 
					        self.main_sizer.Add(stop_button, 0, wx.CENTER | wx.ALL | 100, 5)
 | 
				
			||||||
        main_sizer.Add(secondary_frame_button, 0, wx.CENTER | wx.ALL | 100, 5)
 | 
					        self.main_sizer.Add(secondary_frame_button, 0, wx.CENTER | wx.ALL | 100, 5)
 | 
				
			||||||
        self.SetSizer(main_sizer)
 | 
					        self.SetSizer(self.main_sizer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def handle_columns(self):
 | 
					    def handle_columns(self):
 | 
				
			||||||
        for col in range(len(COLUMN_NAMES)):
 | 
					        for col in range(len(COLUMN_NAMES)):
 | 
				
			||||||
            self.list_ctrl.InsertColumn(0, COLUMN_NAMES[col], width=COLUMN_SIZES[col])
 | 
					            self.list_ctrl.InsertColumn(0, COLUMN_NAMES[col], width=COLUMN_SIZES[col])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def updatedata(self):
 | 
				
			||||||
 | 
					        fprint("updatedata called")
 | 
				
			||||||
 | 
					        loaddata()
 | 
				
			||||||
 | 
					        global settings
 | 
				
			||||||
 | 
					        if self.list_ctrl.DeleteAllItems():
 | 
				
			||||||
 | 
					            fprint("Items deleted")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            fprint("Unable to delete")
 | 
				
			||||||
 | 
					        for i in range(len(TEST_FILE)):
 | 
				
			||||||
 | 
					            idx = 0
 | 
				
			||||||
 | 
					            for pid in settings["badapps"]:
 | 
				
			||||||
 | 
					                #fprint(pid)
 | 
				
			||||||
 | 
					                idx = i
 | 
				
			||||||
 | 
					                if str(TEST_FILE.iloc[i, 5]) == str(pid): # "bad" pid, highlight in red at the top
 | 
				
			||||||
 | 
					                    idx = self.list_ctrl.InsertItem(0, TEST_FILE.iloc[i, 0])
 | 
				
			||||||
 | 
					                    self.list_ctrl.SetItemBackgroundColour(idx, wx.Colour(200, 51, 51))
 | 
				
			||||||
 | 
					                    break
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                idx = self.list_ctrl.InsertItem(i, TEST_FILE.iloc[i, 0])
 | 
				
			||||||
 | 
					            #fprint(TEST_FILE.iloc[i, 5] + " in " + str(settings["badapps"]))
 | 
				
			||||||
 | 
					            #if TEST_FILE.iloc[i, 5] in settings["badapps"]:
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					                    #fprint("Got " + TEST_FILE.iloc[i, 5])
 | 
				
			||||||
 | 
					            for j in range(1, 6):
 | 
				
			||||||
 | 
					                fprint(str(idx) + " " + str(TEST_FILE.iloc[i, 0]))
 | 
				
			||||||
 | 
					                self.list_ctrl.SetItem(idx, j, str(TEST_FILE.iloc[idx, j]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                #fprint(i, j, TEST_FILE.iloc[i, j])
 | 
				
			||||||
 | 
					        #self.SetSizer(self.main_sizer)
 | 
				
			||||||
 | 
					        wx.CallLater(5000, self.updatedata)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def on_edit(self, event):
 | 
					    def on_start(self, event):
 | 
				
			||||||
        fprint('in on_edit')
 | 
					        fprint('in on_start')
 | 
				
			||||||
 | 
					        settings["kill"] = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def on_stop(self, event):
 | 
				
			||||||
 | 
					        fprint('in on_stop')
 | 
				
			||||||
 | 
					        settings["kill"] = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def on_window(self, event):
 | 
					    def on_window(self, event):
 | 
				
			||||||
        OtherFrame()
 | 
					        OtherFrame()
 | 
				
			||||||
@@ -192,6 +226,7 @@ class ServerPanel(wx.Panel):
 | 
				
			|||||||
        else:
 | 
					        else:
 | 
				
			||||||
            bmp = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
 | 
					            bmp = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
 | 
				
			||||||
            self.bitmap = wx.StaticBitmap(self, -1, bmp, (0, 0))
 | 
					            self.bitmap = wx.StaticBitmap(self, -1, bmp, (0, 0))
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ServerFrame(wx.Frame):
 | 
					class ServerFrame(wx.Frame):
 | 
				
			||||||
@@ -214,16 +249,7 @@ def openwindow(data, sets, kill):
 | 
				
			|||||||
    settings = sets
 | 
					    settings = sets
 | 
				
			||||||
    if settings["loggedin"]:
 | 
					    if settings["loggedin"]:
 | 
				
			||||||
        fprint("Creating server panel")
 | 
					        fprint("Creating server panel")
 | 
				
			||||||
        global TEST_FILE
 | 
					        loaddata()
 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            TEST_FILE = pd.read_csv(find_data_file(filename), skiprows=1)
 | 
					 | 
				
			||||||
            TEST_FILE = TEST_FILE.iloc[1:, :]
 | 
					 | 
				
			||||||
            TEST_FILE.columns = ['Executable', 'Protocol', 'Source IP', 'Destination IP',  'Status', 'PID']
 | 
					 | 
				
			||||||
            fprint(TEST_FILE)
 | 
					 | 
				
			||||||
            fprint(len(TEST_FILE))
 | 
					 | 
				
			||||||
            #fprint(TEST_FILE.iloc[1, 1])
 | 
					 | 
				
			||||||
        except FileNotFoundError:
 | 
					 | 
				
			||||||
            pass
 | 
					 | 
				
			||||||
        app = wx.App(False)
 | 
					        app = wx.App(False)
 | 
				
			||||||
        frame = OtherFrame()
 | 
					        frame = OtherFrame()
 | 
				
			||||||
        app.MainLoop()
 | 
					        app.MainLoop()
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								util.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								util.py
									
									
									
									
									
								
							@@ -43,7 +43,7 @@ def time():
 | 
				
			|||||||
def kill(pid):
 | 
					def kill(pid):
 | 
				
			||||||
    setup_child()
 | 
					    setup_child()
 | 
				
			||||||
    fprint("Killing PID " + str(pid))
 | 
					    fprint("Killing PID " + str(pid))
 | 
				
			||||||
    os.kill(pid, 9)
 | 
					    os.kill(int(pid), 9)
 | 
				
			||||||
    fprint("Signal 9 sent to PID " + str(pid))
 | 
					    fprint("Signal 9 sent to PID " + str(pid))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def fprint(msg):
 | 
					def fprint(msg):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user