1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/env python3
-
- PID = "/tmp/dummy_avast.pid"
-
- import os
- import socket
- import socketserver
- import sys
-
- import dummy_killer
-
- class MyTCPHandler(socketserver.BaseRequestHandler):
-
- def handle(self):
- self.request.sendall(b"220 DAEMON\r\n")
- self.data = self.request.recv(1024).strip()
- self.request.sendall(b"210 SCAN DATA\r\n")
- if self.server.foundvirus:
- self.request.sendall(b"SCAN /some/path/malware/xpaj/00908235ee9e267fa2f4c83fb4304c63af976cbc\t[L]0.0\t0 Eicar\\ [Heur]\r\n")
- else:
- self.request.sendall(b"SCAN /some/path/malware/xpaj/00908235ee9e267fa2f4c83fb4304c63af976cbc\t[+]\r\n")
- self.request.sendall(b"200 SCAN OK\r\n")
- self.request.close()
-
- if __name__ == "__main__":
- HOST = "localhost"
-
- alen = len(sys.argv)
- if alen > 1:
- port = int(sys.argv[1])
- if alen >= 3:
- foundvirus = bool(sys.argv[2])
- else:
- foundvirus = False
- else:
- port = 3310
- foundvirus = False
-
- server = socketserver.TCPServer((HOST, port), MyTCPHandler, bind_and_activate=False)
- server.allow_reuse_address = True
- server.foundvirus = foundvirus
- server.server_bind()
- server.server_activate()
-
- dummy_killer.setup_killer(server)
- dummy_killer.write_pid(PID)
-
- try:
- server.handle_request()
- except socket.error:
- print("Socket closed")
-
- server.server_close()
|