mirror of
https://github.com/SystemRage/py-kms.git
synced 2024-11-29 11:44:20 +01:00
107 lines
4.4 KiB
Python
107 lines
4.4 KiB
Python
#!/usr/bin/env python3
|
|
|
|
def byterize(obj):
|
|
objdict = obj.__dict__['fields']
|
|
|
|
def do_encode(dictio, key):
|
|
if isinstance(dictio[key], str) and len(dictio[key]) > 0 and key not in ['SecondaryAddr']:
|
|
dictio[key] = dictio[key].encode('latin-1')
|
|
elif hasattr(dictio[key], '__dict__'):
|
|
subdictio = dictio[key].__dict__['fields']
|
|
for subkey in subdictio:
|
|
do_encode(subdictio, subkey)
|
|
|
|
for field in objdict:
|
|
do_encode(objdict, field)
|
|
|
|
return obj
|
|
|
|
|
|
def justify(astring, indent = 35, break_every = 100):
|
|
str_indent = ('\n' + ' ' * indent)
|
|
splitted = astring.split('\n')
|
|
longests = [(n, s) for n, s in enumerate(splitted) if len(s) >= break_every]
|
|
|
|
for longest in longests:
|
|
lines = []
|
|
for i in range(0, len(longest[1]), break_every):
|
|
lines.append(longest[1][i : i + break_every])
|
|
splitted[longest[0]] = str_indent.join(lines)
|
|
|
|
if len(splitted) > 1:
|
|
justy = str_indent.join(splitted)
|
|
else:
|
|
justy = str_indent + str_indent.join(splitted)
|
|
|
|
return justy
|
|
|
|
|
|
class ShellStyle(object):
|
|
def style(self, s, style):
|
|
return style + s + '\033[0m'
|
|
|
|
def green(self, s):
|
|
return self.style(s, '\033[92m')
|
|
|
|
def blue(self, s):
|
|
return self.style(s, '\033[94m')
|
|
|
|
def yellow(self, s):
|
|
return self.style(s, '\033[93m')
|
|
|
|
def red(self, s):
|
|
return self.style(s, '\033[91m')
|
|
|
|
def magenta(self, s):
|
|
return self.style(s, '\033[95m')
|
|
|
|
def cyan(self, s):
|
|
return self.style(s, '\033[96m')
|
|
|
|
def white(self, s):
|
|
return self.style(s, '\033[97m')
|
|
|
|
def bold(self, s):
|
|
return self.style(s, '\033[1m')
|
|
|
|
def underline(self, s):
|
|
return self.style(s, '\033[4m')
|
|
|
|
|
|
def shell_message(nshell):
|
|
|
|
shelldict = {0: ShellStyle().yellow("Client generating RPC Bind Request..."),
|
|
1: ShellStyle().yellow("Client sending RPC Bind Request...") + ShellStyle().red("\t\t\t\t===============>"),
|
|
2: ShellStyle().red("===============>\t\t") + ShellStyle().yellow("Server received RPC Bind Request !!!"),
|
|
3: ShellStyle().yellow("\t\t\t\tServer parsing RPC Bind Request..."),
|
|
4: ShellStyle().yellow("\t\t\t\tServer generating RPC Bind Response..."),
|
|
5: ShellStyle().red("<===============\t\t") + ShellStyle().yellow("Server sending RPC Bind Response..."),
|
|
6: ShellStyle().green("\t\t\t\tRPC Bind acknowledged !!!\n"),
|
|
7: ShellStyle().yellow("Client received RPC Bind Response !!!") + ShellStyle().red("\t\t\t\t<==============="),
|
|
8: ShellStyle().green("RPC Bind acknowledged !!!\n"),
|
|
9: ShellStyle().blue("Client generating Activation Request dictionary..."),
|
|
10: ShellStyle().blue("Client generating Activation Request data..."),
|
|
11: ShellStyle().blue("Client generating RPC Activation Request..."),
|
|
12: ShellStyle().blue("Client sending RPC Activation Request...") + ShellStyle().red("\t\t\t===============>"),
|
|
13: ShellStyle().red("===============>\t\t") + ShellStyle().blue("Server received RPC Activation Request !!!"),
|
|
14: ShellStyle().blue("\t\t\t\tServer parsing RPC Activation Request..."),
|
|
15: ShellStyle().blue("\t\t\t\tServer processing KMS Activation Request..."),
|
|
16: ShellStyle().blue("\t\t\t\tServer processing KMS Activation Response..."),
|
|
17: ShellStyle().blue("\t\t\t\tServer generating RPC Activation Response..."),
|
|
18: ShellStyle().red("<===============\t\t") + ShellStyle().blue("Server sending RPC Activation Response..."),
|
|
19: ShellStyle().green("\t\t\t\tServer responded, now in Stand by...\n"),
|
|
20: ShellStyle().blue("Client received Response !!!") + ShellStyle().red("\t\t\t\t\t<==============="),
|
|
21: ShellStyle().green("Activation Done !!!"),
|
|
-1: ShellStyle().red("\t\t\t\t\t\t\t\tServer receiving"),
|
|
-2: ShellStyle().red("Client sending"),
|
|
-3: ShellStyle().red("Client receiving"),
|
|
-4: ShellStyle().red("\t\t\t\t\t\t\t\tServer sending")
|
|
}
|
|
|
|
if isinstance(nshell, list):
|
|
for n in nshell:
|
|
print(shelldict[n])
|
|
else:
|
|
print(shelldict[nshell])
|
|
|