eva-exploit 3.3.7__tar.gz → 3.3.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/PKG-INFO +1 -1
  2. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/config.py +1 -1
  3. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/eva_exploit.egg-info/PKG-INFO +1 -1
  4. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/pyproject.toml +1 -1
  5. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/utils/system.py +43 -22
  6. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/README.md +0 -0
  7. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/eva.py +0 -0
  8. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/eva_exploit.egg-info/SOURCES.txt +0 -0
  9. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/eva_exploit.egg-info/dependency_links.txt +0 -0
  10. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/eva_exploit.egg-info/entry_points.txt +0 -0
  11. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/eva_exploit.egg-info/requires.txt +0 -0
  12. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/eva_exploit.egg-info/top_level.txt +0 -0
  13. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/__init__.py +0 -0
  14. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/attack_map.py +0 -0
  15. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/exploit_search.py +0 -0
  16. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/llm.py +0 -0
  17. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/prompt_builder.py +0 -0
  18. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/reporting.py +0 -0
  19. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/tooling.py +0 -0
  20. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/vuln_intel.py +0 -0
  21. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/modules/workflow.py +0 -0
  22. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/sessions/__init__.py +0 -0
  23. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/sessions/eva_session.py +0 -0
  24. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/setup.cfg +0 -0
  25. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/utils/__init__.py +0 -0
  26. {eva_exploit-3.3.7 → eva_exploit-3.3.8}/utils/ui.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eva-exploit
3
- Version: 3.3.7
3
+ Version: 3.3.8
4
4
  Summary: Exploit Vector Agent
5
5
  Author: ARCANGEL0
6
6
  License: MIT
@@ -10,7 +10,7 @@ from pathlib import Path
10
10
 
11
11
  # ================= CONFIG =================
12
12
  APP_NAME = "EVA"
13
- APP_VERSION = "3.3.7"
13
+ APP_VERSION = "3.3.8"
14
14
  GITHUB_REPO = "arcangel0/EVA"
15
15
  PYPI_PACKAGE = "eva-exploit"
16
16
  API_ENDPOINT = "NOT_SET"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eva-exploit
3
- Version: 3.3.7
3
+ Version: 3.3.8
4
4
  Summary: Exploit Vector Agent
5
5
  Author: ARCANGEL0
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "eva-exploit"
7
- version = "3.3.7"
7
+ version = "3.3.8"
8
8
  description = "Exploit Vector Agent"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -370,35 +370,56 @@ def checkupdts():
370
370
 
371
371
  def run_self_update():
372
372
  print(Fore.CYAN + f"\nChecking updates for {APP_NAME}...\n")
373
- updated = False
373
+ status = get_update_status(force=True)
374
+ if not status.get("available"):
375
+ cyber("EVA is already up to date.", color=Fore.CYAN)
376
+ return 0
374
377
 
375
- pip_result = subprocess.run(
376
- [sys.executable, "-m", "pip", "install", "--upgrade", PYPI_PACKAGE,"--break-system-packages"],
377
- text=True
378
- )
379
- if pip_result.returncode == 0:
380
- updated = True
378
+ latest = status.get("latest") or "latest"
379
+ source = status.get("source")
380
+ print(Style.BRIGHT + Fore.MAGENTA + f"Update {latest} found! Installing . . . . " + Style.RESET_ALL)
381
381
 
382
- if Path(".git").exists() and command_exists("git"):
383
- branch = "main"
384
- branch_detect = subprocess.run(
385
- ["git", "rev-parse", "--abbrev-ref", "HEAD"],
386
- capture_output=True,
387
- text=True
388
- )
389
- if branch_detect.returncode == 0 and branch_detect.stdout.strip():
390
- branch = branch_detect.stdout.strip()
391
-
392
- pull_result = subprocess.run(["git", "pull", "--tags", "origin", branch], text=True)
393
- if pull_result.returncode == 0:
394
- updated = True
382
+ updated = False
383
+ with open(os.devnull, "w") as devnull:
384
+ if source == "github" and Path(".git").exists() and command_exists("git"):
385
+ branch = _git_branch()
386
+ pull_result = subprocess.run(
387
+ ["git", "pull", "--tags", "origin", branch],
388
+ stdout=devnull,
389
+ stderr=devnull,
390
+ text=True
391
+ )
392
+ updated = pull_result.returncode == 0
393
+ else:
394
+ pip_result = subprocess.run(
395
+ [
396
+ sys.executable,
397
+ "-m",
398
+ "pip",
399
+ "install",
400
+ "--upgrade",
401
+ PYPI_PACKAGE,
402
+ "--break-system-packages",
403
+ "-q",
404
+ ],
405
+ stdout=devnull,
406
+ stderr=devnull,
407
+ text=True
408
+ )
409
+ updated = pip_result.returncode == 0
395
410
 
411
+ print(Fore.CYAN + "Almost done . . . . ")
396
412
  if updated:
397
- print(Fore.GREEN + "\n✔ Update process finished. Restart EVA to use the latest version.")
413
+ global _UPDATE_STATUS_CACHE
414
+ _UPDATE_STATUS_CACHE = None
415
+ cyber("✔ Update process finished. Restart EVA to use the latest version.", color=Fore.GREEN)
398
416
  return 0
399
417
 
400
418
  print(Fore.RED + "\n[!] Could not auto-update EVA in this environment.")
401
- print(Fore.YELLOW + f"Try manually: {sys.executable} -m pip install --upgrade {PYPI_PACKAGE}")
419
+ if source == "github":
420
+ print(Fore.YELLOW + f"Try manually: git pull --tags origin {_git_branch()}")
421
+ else:
422
+ print(Fore.YELLOW + f"Try manually: {sys.executable} -m pip install --upgrade {PYPI_PACKAGE}")
402
423
  return 1
403
424
 
404
425
 
File without changes
File without changes
File without changes
File without changes
File without changes