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.5KB

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