mirror of
https://github.com/Z4nzu/hackingtool
synced 2026-05-23 08:58:22 +00:00
Designs for all tools added
This commit is contained in:
parent
79e907f5ce
commit
dc2c7694d2
10 changed files with 688 additions and 5 deletions
|
|
@ -2,6 +2,16 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class Keydroid(HackingTool):
|
||||
TITLE = "Keydroid"
|
||||
|
|
@ -65,3 +75,62 @@ class AndroidAttackTools(HackingToolsCollection):
|
|||
Droidcam(),
|
||||
EvilApp()
|
||||
]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Android Attack Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Android Attack Tools Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = AndroidAttackTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -2,6 +2,15 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class KnockMail(HackingTool):
|
||||
TITLE = "Knockmail"
|
||||
|
|
@ -17,4 +26,62 @@ class KnockMail(HackingTool):
|
|||
class EmailVerifyTools(HackingToolsCollection):
|
||||
TITLE = "Email Verify tools"
|
||||
TOOLS = [KnockMail()]
|
||||
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Email Verify Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Email Verify Tools Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = EmailVerifyTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -2,6 +2,16 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class HashBuster(HackingTool):
|
||||
TITLE = "Hash Buster"
|
||||
|
|
@ -19,3 +29,62 @@ class HashBuster(HackingTool):
|
|||
class HashCrackingTools(HackingToolsCollection):
|
||||
TITLE = "Hash cracking tools"
|
||||
TOOLS = [HashBuster()]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Hash Cracking Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Hash Cracking Tools Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = HashCrackingTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
|
|||
|
|
@ -2,6 +2,16 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class EvilURL(HackingTool):
|
||||
TITLE = "EvilURL"
|
||||
|
|
@ -15,3 +25,62 @@ class EvilURL(HackingTool):
|
|||
class IDNHomographAttackTools(HackingToolsCollection):
|
||||
TITLE = "IDN Homograph Attack"
|
||||
TOOLS = [EvilURL()]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="IDN Homograph Attack Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]IDN Homograph Attack Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = IDNHomographAttackTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -2,6 +2,16 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class TerminalMultiplexer(HackingTool):
|
||||
TITLE = "Terminal Multiplexer"
|
||||
|
|
@ -37,3 +47,61 @@ class MixTools(HackingToolsCollection):
|
|||
Crivo()
|
||||
]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Mix Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Mix Tools Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = MixTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -2,6 +2,16 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class DebInject(HackingTool):
|
||||
TITLE = "Debinject"
|
||||
|
|
@ -23,9 +33,6 @@ class Pixload(HackingTool):
|
|||
PROJECT_URL = "https://github.com/chinarulezzz/pixload"
|
||||
|
||||
def __init__(self):
|
||||
# super(Pixload, self).__init__([
|
||||
# ('How To Use', self.show_project_page)
|
||||
# ], runnable = False)
|
||||
super(Pixload, self).__init__(runnable = False)
|
||||
|
||||
|
||||
|
|
@ -35,3 +42,62 @@ class PayloadInjectorTools(HackingToolsCollection):
|
|||
DebInject(),
|
||||
Pixload()
|
||||
]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Payload Injector Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Payload Injector Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = PayloadInjectorTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -6,6 +6,16 @@ import subprocess
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class InstaBrute(HackingTool):
|
||||
TITLE = "Instagram Attack"
|
||||
|
|
@ -49,7 +59,6 @@ class Faceshell(HackingTool):
|
|||
def run(self):
|
||||
name = input("Enter Username >> ")
|
||||
wordlist = input("Enter Wordlist >> ")
|
||||
# Ignore a FileNotFoundError if we are already in the Brute_Force directory
|
||||
with contextlib.suppress(FileNotFoundError):
|
||||
os.chdir("Brute_Force")
|
||||
subprocess.run(
|
||||
|
|
@ -75,3 +84,62 @@ class SocialMediaBruteforceTools(HackingToolsCollection):
|
|||
Faceshell(),
|
||||
AppCheck()
|
||||
]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Social Media Bruteforce Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Social Media Bruteforce Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = SocialMediaBruteforceTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -5,6 +5,16 @@ import subprocess
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class FacialFind(HackingTool):
|
||||
TITLE = "Find SocialMedia By Facial Recognation System"
|
||||
|
|
@ -85,3 +95,62 @@ class SocialMediaFinderTools(HackingToolsCollection):
|
|||
Sherlock(),
|
||||
SocialScan()
|
||||
]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Social Media Finder Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Social Media Finder Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = SocialMediaFinderTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -2,6 +2,16 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class GoSpider(HackingTool):
|
||||
TITLE = "Gospider"
|
||||
|
|
@ -16,3 +26,62 @@ class GoSpider(HackingTool):
|
|||
class WebCrawlingTools(HackingToolsCollection):
|
||||
TITLE = "Web crawling"
|
||||
TOOLS = [GoSpider()]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Web Crawling Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Web Crawling Tools Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = WebCrawlingTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
|
|
@ -2,6 +2,16 @@
|
|||
from core import HackingTool
|
||||
from core import HackingToolsCollection
|
||||
|
||||
from rich.console import Console
|
||||
from rich.theme import Theme
|
||||
from rich.table import Table
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Prompt
|
||||
from rich import box
|
||||
|
||||
_theme = Theme({"purple": "#7B61FF"})
|
||||
console = Console(theme=_theme)
|
||||
|
||||
|
||||
class WifiJammerNG(HackingTool):
|
||||
TITLE = "WifiJammer-NG"
|
||||
|
|
@ -35,3 +45,62 @@ class WifiJammingTools(HackingToolsCollection):
|
|||
WifiJammerNG(),
|
||||
KawaiiDeauther()
|
||||
]
|
||||
|
||||
def pretty_print(self):
|
||||
table = Table(title="Wifi Jamming Tools", show_lines=True, expand=True)
|
||||
table.add_column("Title", style="purple", no_wrap=True)
|
||||
table.add_column("Description", style="purple")
|
||||
table.add_column("Project URL", style="purple", no_wrap=True)
|
||||
|
||||
for t in self.TOOLS:
|
||||
desc = getattr(t, "DESCRIPTION", "") or ""
|
||||
url = getattr(t, "PROJECT_URL", "") or ""
|
||||
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
|
||||
|
||||
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
def show_options(self, parent=None):
|
||||
console.print("\n")
|
||||
panel = Panel.fit("[bold magenta]Wifi Jamming Tools Collection[/bold magenta]\n"
|
||||
"Select a tool to view details or run it.",
|
||||
border_style="purple")
|
||||
console.print(panel)
|
||||
|
||||
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
|
||||
table.add_column("Index", justify="center", style="bold yellow")
|
||||
table.add_column("Tool Name", justify="left", style="bold green")
|
||||
table.add_column("Description", justify="left", style="white")
|
||||
|
||||
for i, tool in enumerate(self.TOOLS):
|
||||
title = getattr(tool, "TITLE", tool.__class__.__name__)
|
||||
desc = getattr(tool, "DESCRIPTION", "—")
|
||||
table.add_row(str(i + 1), title, desc or "—")
|
||||
|
||||
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
|
||||
console.print(table)
|
||||
|
||||
try:
|
||||
choice = Prompt.ask("[bold cyan]Select a tool to view/run[/bold cyan]", default="99")
|
||||
choice = int(choice)
|
||||
if 1 <= choice <= len(self.TOOLS):
|
||||
selected = self.TOOLS[choice - 1]
|
||||
if hasattr(selected, "show_options"):
|
||||
selected.show_options(parent=self)
|
||||
elif hasattr(selected, "run"):
|
||||
selected.run()
|
||||
elif hasattr(selected, "show_info"):
|
||||
selected.show_info()
|
||||
else:
|
||||
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
|
||||
elif choice == 99:
|
||||
return 99
|
||||
except Exception:
|
||||
console.print("[bold red]Invalid choice. Try again.[/bold red]")
|
||||
return self.show_options(parent=parent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tools = WifiJammingTools()
|
||||
tools.pretty_print()
|
||||
tools.show_options()
|
||||
Loading…
Reference in a new issue