You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

dummy_avast.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env python3
  2. PID = "/tmp/dummy_avast.pid"
  3. import os
  4. import socket
  5. import socketserver
  6. import sys
  7. import dummy_killer
  8. class MyTCPHandler(socketserver.BaseRequestHandler):
  9. def handle(self):
  10. self.request.sendall(b"220 DAEMON\r\n")
  11. self.data = self.request.recv(1024).strip()
  12. self.request.sendall(b"210 SCAN DATA\r\n")
  13. if self.server.foundvirus:
  14. self.request.sendall(b"SCAN /some/path/malware/xpaj/00908235ee9e267fa2f4c83fb4304c63af976cbc\t[L]0.0\t0 Eicar\\ [Heur]\r\n")
  15. else:
  16. self.request.sendall(b"SCAN /some/path/malware/xpaj/00908235ee9e267fa2f4c83fb4304c63af976cbc\t[+]\r\n")
  17. self.request.sendall(b"200 SCAN OK\r\n")
  18. self.request.close()
  19. if __name__ == "__main__":
  20. HOST = "localhost"
  21. alen = len(sys.argv)
  22. if alen > 1:
  23. port = int(sys.argv[1])
  24. if alen >= 3:
  25. foundvirus = bool(sys.argv[2])
  26. else:
  27. foundvirus = False
  28. else:
  29. port = 3310
  30. foundvirus = False
  31. server = socketserver.TCPServer((HOST, port), MyTCPHandler, bind_and_activate=False)
  32. server.allow_reuse_address = True
  33. server.foundvirus = foundvirus
  34. server.server_bind()
  35. server.server_activate()
  36. dummy_killer.setup_killer(server)
  37. dummy_killer.write_pid(PID)
  38. try:
  39. server.handle_request()
  40. except socket.error:
  41. print("Socket closed")
  42. server.server_close()