diff --git a/conf/db.ver b/conf/db.ver index d840aea..2a88959 100644 --- a/conf/db.ver +++ b/conf/db.ver @@ -1 +1 @@ -1712294860000 \ No newline at end of file +1750498935000 \ No newline at end of file diff --git a/conf/maldb.db b/conf/maldb.db index f55f7dd..5536c06 100644 Binary files a/conf/maldb.db and b/conf/maldb.db differ diff --git a/imports/db_handler.py b/imports/db_handler.py index f5fe903..56b22fe 100644 --- a/imports/db_handler.py +++ b/imports/db_handler.py @@ -1,3 +1,4 @@ +python import sqlite3 as lite from imports import globals import sys @@ -6,59 +7,61 @@ import sys class DBHandler: def __init__(self): + self._connect() + + def _connect(self): try: self.con = lite.connect(globals.vars.db_path) self.cur = self.con.cursor() except lite.Error as e: - print("An error occurred:", e.args[0]) + print(f"An error occurred: {e.args[0]}") sys.exit() def get_full_details(self): return self.cur.execute("SELECT * FROM Malwares").fetchall() def get_partial_details(self): - return self.cur.execute("SELECT ID, TYPE, LANGUAGE, ARCHITECTURE, PLATFORM, NAME FROM Malwares").fetchall() + query = "SELECT ID, TYPE, LANGUAGE, ARCHITECTURE, PLATFORM, NAME FROM Malwares" + return self.cur.execute(query).fetchall() def get_mal_list(self): - return self.cur.execute("SELECT ID, NAME, TYPE From Malwares").fetchall() + query = "SELECT ID, NAME, TYPE FROM Malwares" + return self.cur.execute(query).fetchall() def get_mal_names(self): - - # Sqlite3 returns a tuple even if a single value is returned - # We use x[0] for x to unpack the tuples - return [val[0] for val in self.cur.execute("SELECT NAME FROM Malwares").fetchall()] + query = "SELECT NAME FROM Malwares" + return [val[0] for val in self.cur.execute(query).fetchall()] def get_mal_tags(self): - return [val[0] for val in self.cur.execute("SELECT DISTINCT TAGS From Malwares WHERE TAGS IS NOT NULL").fetchall()] + query = "SELECT DISTINCT TAGS FROM Malwares WHERE TAGS IS NOT NULL" + return [val[0] for val in self.cur.execute(query).fetchall()] def get_mal_info(self, mid): - return self.cur.execute("SELECT TYPE, NAME, VERSION, AUTHOR, LANGUAGE, DATE, ARCHITECTURE, PLATFORM, TAGS From Malwares WHERE ID =" + str(mid)).fetchall() + query = ( + "SELECT TYPE, NAME, VERSION, AUTHOR, LANGUAGE, DATE, ARCHITECTURE, PLATFORM, TAGS " + f"FROM Malwares WHERE ID = {mid}" + ) + return self.cur.execute(query).fetchall() def query(self, query, param=''): - if globals.vars.DEBUG_LEVEL is 2: + if globals.vars.DEBUG_LEVEL == 2: print(locals()) try: - if param is not '': - return self.cur.execute(query, param if type(param) is list else [param]).fetchall() - else: - return self.cur.execute(query).fetchall() + if param != '': + params = param if isinstance(param, list) else [param] + return self.cur.execute(query, params).fetchall() + return self.cur.execute(query).fetchall() except lite.Error as e: - print("An error occurred:", e.args[0]) + print(f"An error occurred: {e.args[0]}") sys.exit() def close_connection(self): try: self.cur.close() self.con.close() - return except lite.Error as e: - print("An error occurred:", e.args[0]) + print(f"An error occurred: {e.args[0]}") sys.exit() def renew_connection(self): - try: - self.con = lite.connect(globals.vars.db_path) - self.cur = self.con.cursor() - except lite.Error as e: - print("An error occurred:", e.args[0]) - sys.exit() + self._connect() \ No newline at end of file diff --git a/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.md5 b/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.md5 new file mode 100644 index 0000000..4df37c2 --- /dev/null +++ b/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.md5 @@ -0,0 +1 @@ +eb69bd536036b275631b0cdcac3c0963 diff --git a/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.pass b/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.pass new file mode 100644 index 0000000..ba701bf --- /dev/null +++ b/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.pass @@ -0,0 +1 @@ +infected diff --git a/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.zip b/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.zip new file mode 100644 index 0000000..6df87e3 Binary files /dev/null and b/malware/Binaries/Wiper.BEEP.E/Wiper.BEEP.E.zip differ diff --git a/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.md5 b/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.md5 new file mode 100644 index 0000000..4865ffe --- /dev/null +++ b/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.md5 @@ -0,0 +1 @@ +ae4d661f2bd87e2ff78dedc34e04424e diff --git a/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.pass b/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.pass new file mode 100644 index 0000000..ba701bf --- /dev/null +++ b/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.pass @@ -0,0 +1 @@ +infected diff --git a/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.zip b/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.zip new file mode 100644 index 0000000..10b88ac Binary files /dev/null and b/malware/Binaries/Wiper.SAPP.IC/Wiper.SAPP.IC.zip differ diff --git a/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.md5 b/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.md5 new file mode 100644 index 0000000..670b091 --- /dev/null +++ b/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.md5 @@ -0,0 +1 @@ +e44327fbec4508158f0f9a119c1b7430 diff --git a/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.pass b/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.pass new file mode 100644 index 0000000..ba701bf --- /dev/null +++ b/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.pass @@ -0,0 +1 @@ +infected diff --git a/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.zip b/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.zip new file mode 100644 index 0000000..51bc1c9 Binary files /dev/null and b/malware/Binaries/Wiper.WIPE32.P/Wiper.WIPE32.P.zip differ