Files
spy_hunter/spyhunter.py
2026-03-13 12:59:54 -07:00

94 lines
3.0 KiB
Python

# path: spyhunter.py
import os
import importlib
import sys
import traceback
STATIC_MENU = {
"1": "Quick Start",
"2": "ADB/Device Settings",
"3": "Detection Setup",
"4": "Scan"
}
MODULE_MAPPING = {
"1": "modules.quick_start",
"2": "modules.adb_settings",
"3": "modules.detection_setup",
"4": "modules.scan"
}
BANNER = r"""
_________ ___ ___ __
/ _____/_____ ___.__./ | \ __ __ _____/ |_ ___________
\_____ \\____ < | / ~ \ | \/ \ __\/ __ \_ __ \
/ \ |_> >___ \ Y / | / | \ | \ ___/| | \/
/_______ / __// ____|\___|_ /|____/|___| /__| \___ >__|
|__|
Version 0.0.1 by SsSnake — Grand Butcher of The DCR
"""
def print_banner():
os.system('cls' if os.name == 'nt' else 'clear')
print(BANNER)
def load_custom_modules():
menu = {}
custom_path = os.path.join(os.path.dirname(__file__), "modules")
if not os.path.exists(custom_path):
os.makedirs(custom_path)
for fname in os.listdir(custom_path):
if fname.endswith(".py") and fname not in ["__init__.py"]:
try:
modname = f"modules.{fname[:-3]}"
mod = importlib.import_module(modname)
if hasattr(mod, "MENU_NAME") and hasattr(mod, "main"):
key = str(len(STATIC_MENU) + len(menu) + 1)
menu[key] = (mod.MENU_NAME, modname)
except Exception:
print(f"[WARN] Failed to load module {fname}: {traceback.format_exc(limit=1)}")
return menu
def show_menu(static_menu, custom_menu):
for key, name in static_menu.items():
print(f" {key}) {name}")
for key, (name, _) in custom_menu.items():
print(f" {key}) {name}")
print("\n[INFO] Press 'q' at any time to quit.\n")
def main():
while True:
try:
print_banner()
custom_menu = load_custom_modules()
show_menu(STATIC_MENU, custom_menu)
choice = input("Enter your selection: ").strip().lower()
if choice == 'q':
print("[INFO] Exiting SpyHunter...")
sys.exit(0)
if choice in STATIC_MENU:
module_path = MODULE_MAPPING[choice]
elif choice in custom_menu:
module_path = custom_menu[choice][1]
else:
print("[ERROR] Invalid choice. Try again.")
input("Press Enter to continue...")
continue
# Load and run the module
module = importlib.import_module(module_path)
module.main()
except KeyboardInterrupt:
print("\n[INFO] User aborted with Ctrl+C.")
sys.exit(0)
except Exception as e:
print(f"[FATAL] An error occurred: {e}")
traceback.print_exc()
input("Press Enter to return to main menu...")
if __name__ == "__main__":
main()