ich hab vor kurzen ein kleines Script geschrieben welches von jeder Datei auf meinen Computer eine MD5, SHA1 und eine SHA256 Hashsumme erstellt und diese in eine MySQL Datenbank einträgt. Danach sollen diese Hashsummen mit einer Datenbank verglichen werden in welcher Hashsummen von Malware eingetragen ist. Das Script welches die Hashsummen von mein Dateien erstellt sieht wie folgt aus:
Code: Alles auswählen
import hashlib
import sys
import os
import MySQLdb
def main():
walker = os.walk(os.environ["SYSTEMDRIVE"] + os.sep)
while True:
try:
curdir = walker.next()
except StopIteration:
break
finally:
for f in curdir[2]:
insert(curdir[0], f)
def insert(path, fname):
absolute = path + os.sep + fname
try:
content = open(absolute, "r").read()
md5 = hashlib.md5(content).hexdigest()
sha256 = hashlib.sha256(content).hexdigest()
sha1 = hashlib.sha1(content).hexdigest()
except IOError:
md5 = sha256 = sha1 = ""
cursor.execute("INSERT INTO files VALUES (%s, %s, %s, %s, %s)",
(fname, absolute, md5, sha256, sha1))
connection.commit()
if __name__ == "__main__":
try:
connection = MySQLdb.connect(
"localhost",
"root",
"",
"system")
except:
sys.stdout.write("Can not connect to MySQL database (adress: localhost, user: root, password: '', table: system)")
sys.exit(0)
cursor = connection.cursor()
sys.stdout.write("Running... Pleas be patient")
main()
Kann mir da vielleicht jemand erklären warum dieser Fehler auftritt und wie ich ihn beheben kann?
Liebe Grüße
microkernel