您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

dummy_fprot.py 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python3
  2. import os
  3. import signal
  4. import socket
  5. import socketserver
  6. import sys
  7. import dummy_killer
  8. PID = "/tmp/dummy_fprot.pid"
  9. class MyTCPHandler(socketserver.BaseRequestHandler):
  10. def handle(self):
  11. self.data = self.request.recv(1024).strip()
  12. if self.server.foundvirus:
  13. self.request.sendall(b"1 <infected: EICAR_Test_File> FOO->bar\n")
  14. else:
  15. self.request.sendall(b"0 <clean> FOO\n")
  16. self.request.close()
  17. if __name__ == "__main__":
  18. HOST = "localhost"
  19. alen = len(sys.argv)
  20. if alen > 1:
  21. port = int(sys.argv[1])
  22. if alen >= 4:
  23. PID = sys.argv[3]
  24. foundvirus = bool(sys.argv[2])
  25. elif alen >= 3:
  26. foundvirus = bool(sys.argv[2])
  27. else:
  28. foundvirus = False
  29. else:
  30. port = 10200
  31. foundvirus = False
  32. server = socketserver.TCPServer((HOST, port), MyTCPHandler, bind_and_activate=False)
  33. server.allow_reuse_address = True
  34. server.foundvirus = foundvirus
  35. server.server_bind()
  36. server.server_activate()
  37. dummy_killer.setup_killer(server)
  38. dummy_killer.write_pid(PID)
  39. try:
  40. server.handle_request()
  41. except socket.error:
  42. print("Socket closed")
  43. server.server_close()