Markopy
Utilizing Markov Models for brute forcing attacks
cudamarkopy.py
Go to the documentation of this file.
1 #!/usr/bin/python3
2 
3 
7 
8 
12 
13 import sys
14 import os
15 from importlib.util import spec_from_loader, module_from_spec
16 from importlib.machinery import SourceFileLoader, ExtensionFileLoader
17 import inspect
18 try:
19  spec = spec_from_loader("markopy", SourceFileLoader("markopy", os.path.abspath("markopy.py")))
20  markopy = module_from_spec(spec)
21  spec.loader.exec_module(markopy)
22 except (ModuleNotFoundError,FileNotFoundError) as e:
23  if(os.path.exists("../../../Markopy/src/CLI/markopy.py")):
24  spec = spec_from_loader("markopy", SourceFileLoader("markopy", "../../../Markopy/src/CLI/markopy.py"))
25  markopy = module_from_spec(spec)
26  spec.loader.exec_module(markopy)
27 
28 try:
29  from cudammx import CudaModelMatrixCLI
30  from mmx import ModelMatrixCLI
31  from mp import MarkovPasswordsCLI
32 
33 except ModuleNotFoundError as e:
34  #print("Working in development mode. Trying to load markopy.py from ../../../Markopy/")
35  if(os.path.exists("../../../Markopy/src/CLI/cudammx.py")):
36  sys.path.insert(1, '../../../Markopy/src/CLI/')
37  from cudammx import CudaModelMatrixCLI
38  from mmx import ModelMatrixCLI
39  from mp import MarkovPasswordsCLI
40  else:
41  raise e
42 
43 from termcolor import colored
44 
45 
46 class CudaMarkopyCLI(markopy.MarkopyCLI, CudaModelMatrixCLI):
47  """!
48  @brief CUDA extension to MarkopyCLI. Adds CudaModelMatrixCLI to the interface.
49  @belongsto Python::CudaMarkopy
50  @extends Python::Markopy::MarkopyCLI
51  @extends Python::CudaMarkopy::CudaModelMatrixCLI
52  """
53  def __init__(self) -> None:
54  "! @brief initialize CLI selector"
55  markopy.MarkopyCLI.__init__(self,add_help=False)
56  self.parserparser.epilog+=f"""
57  {__file__.split("/")[-1]} -mt CUDA generate trained.mdl -n 500 -w output.txt
58  Import trained.mdl, and generate 500 lines to output.txt
59  """
60 
61  def help(self):
62  "! @brief overload help string"
63  self.parserparser.print_help = self.stubstub
64  self.argsargsargsargs = self.parserparser.parse_known_args()[0]
65  if(self.argsargsargsargs.model_type!="_MMX"):
66  if(self.argsargsargsargs.model_type=="MP"):
67  mp = MarkovPasswordsCLI()
68  mp.add_arguments()
69  mp.parser.print_help()
70  elif(self.argsargsargsargs.model_type=="MMX"):
71  mp = ModelMatrixCLI()
72  mp.add_arguments()
73  mp.parser.print_help()
74  elif(self.argsargsargsargs.model_type == "CUDA"):
75  mp = CudaModelMatrixCLI()
76  mp.add_arguments()
77  mp.parser.print_help()
78  else:
79  print(colored("Model Mode selection choices:", "green"))
80  self.print_helpprint_help()
81  print(colored("Following are applicable for -mt MP mode:", "green"))
82  mp = MarkovPasswordsCLI()
83  mp.add_arguments()
84  mp.parser.print_help()
85  print(colored("Following are applicable for -mt MMX mode:", "green"))
86  mp = ModelMatrixCLI()
87  mp.add_arguments()
88  mp.parser.print_help()
89  print(colored("Following are applicable for -mt CUDA mode:", "green"))
90  mp = CudaModelMatrixCLI()
91  mp.add_arguments()
92  mp.parser.print_help()
93  exit()
94 
95  def parse(self):
96  markopy.MarkopyCLI.parse(self)
97 
98  def parse_fail(self):
99  "! @brief Not a valid model type"
100  if(self.argsargsargsargs.model_type == "CUDA"):
102  else:
103  markopy.MarkopyCLI.parse_fail(self)
104 
105 
106 if __name__ == "__main__":
107  mp = CudaMarkopyCLI()
108  #mp = markopy_cli.MarkopyCLI()
109  mp.parse()
110  mp.process()
CUDA extension to MarkopyCLI.
Definition: cudamarkopy.py:46
def help(self)
overload help function to print submodel helps
Definition: cudamarkopy.py:61
Python CLI wrapper for CudaModelMatrix.
Definition: cudammx.py:55