diff --git a/INSTALL.md b/INSTALL.md index a92f4f0..98d30e8 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -9,6 +9,14 @@ Mouse terminal sudo apt install gpm +imagemagick +----------- + +imagemagick for convert command + +sudo apt install imagemagick + + User mount device --------------- diff --git a/pandorabox.py b/pandorabox.py index 4e43534..99c4586 100755 --- a/pandorabox.py +++ b/pandorabox.py @@ -40,6 +40,7 @@ def config(): # Quarantine QUARANTINE = config['DEFAULT']['QUARANTINE'].lower()=="true" QUARANTINE_FOLDER = config['DEFAULT']['QUARANTINE_FOLDER'] + # ---------------------------------------------------------- """ Convert size to human readble string """ @@ -65,19 +66,6 @@ def intit_curses(): curses.noecho() # screen.clear() - -"""Print status string""" -def print_status(strStatus): - global status_win - #status_win.addstr(1, 1, "Status : %-32s" % strStatus, curses.color_pair(2)) - #status_win.refresh() - -"""Print current action""" -def print_action(label): - global status_win - #status_win.addstr(3, 1, "Action : %-32s" % label, curses.color_pair(2)) - #status_win.refresh() - """Print FS Label""" def print_fslabel(label): global status_win @@ -140,30 +128,6 @@ def update_bar(progress): progress_win.addstr(0, 1, "Progress: %d%%" % progress) progress_win.refresh() -def init_log(): - global log_win, logging - log_win = curses.newwin(curses.LINES-20, curses.COLS, 20, 0) - log_win.border(0) - logging.basicConfig( - filename='pandorabox.log', - level=logging.INFO, - format='%(asctime)s - %(message)s', - datefmt='%m/%d/%y %H:%M' - ) - -logs = [] -def log(str): - global log_win, logging - logging.info(str) - logs.append(str) - if len(logs)>(curses.LINES-22): - logs.pop(0) - log_win.clear() - log_win.border(0) - for i in range(min(curses.LINES-22,len(logs))): - log_win.addstr(i+1,1,logs[i][:curses.COLS-2],curses.color_pair(3)) - log_win.refresh() - """Splash screen""" s = [None] * 10; s[0] = " ██▓███ ▄▄▄ ███▄ █ ▓█████▄ ▒█████ ██▀███ ▄▄▄ ▄▄▄▄ ▒█████ ▒██ ██▒" @@ -202,12 +166,10 @@ def print_screen(): status_win = curses.newwin(5, curses.COLS, 12, 0) status_win.border(0) status_win.addstr(0, 1, "USB Key Information") - # print_status("WAITING") print_fslabel("") print_size(None) print_used(None) print_fstype("") - print_action("") print_model("") print_serial("") init_bar() @@ -219,6 +181,33 @@ def end_curses(): curses.endwin() curses.flushinp() +# ----------------------------------------------------------- +# Logging windows +# ----------------------------------------------------------- + +def init_log(): + global log_win, logging + log_win = curses.newwin(curses.LINES-20, curses.COLS, 20, 0) + log_win.border(0) + logging.basicConfig( + filename='pandorabox.log', + level=logging.INFO, + format='%(asctime)s - %(message)s', + datefmt='%m/%d/%y %H:%M' + ) + +logs = [] +def log(str): + global log_win, logging + logging.info(str) + logs.append(str) + if len(logs)>(curses.LINES-22): + logs.pop(0) + log_win.clear() + log_win.border(0) + for i in range(min(curses.LINES-22,len(logs))): + log_win.addstr(i+1,1,logs[i][:curses.COLS-2],curses.color_pair(3)) + log_win.refresh() # ----------------------------------------------------------- # Device @@ -276,7 +265,6 @@ def device_loop(): log("Device inserted") log_device_info(device) # display device type - print_status("KEY INSERTED") print_fslabel(device.get("ID_FS_LABEL")) print_fstype(device.get("ID_PART_TABLE_TYPE") + " " + device.get("ID_FS_TYPE")) print_model(device.get("ID_MODEL")) @@ -314,13 +302,10 @@ def device_loop(): if device.action == "remove": log("Device removed") - #print_status("WAITING") - print_action("Device removed") print_fslabel("") print_size(None) print_used(None) print_fstype("") - print_action("") print_model("") print_serial("") umount_device() @@ -353,7 +338,6 @@ def log_device_info(dev): # pandora # ----------------------------------------------------------- - """Scan a mount point with Pandora""" def scan(mount_point, used): global infected_filed @@ -376,7 +360,6 @@ def scan(mount_point, used): if FAKE_SCAN : time.sleep(0.1) status = "SKIPPED" - # status = "ALERT" else: if file_size > (1024*1024*1024): status = "TOO BIG" @@ -417,7 +400,6 @@ def scan(mount_point, used): # -------------------------------------- - """Main entry point""" def main(stdscr): try :