18a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen#!/usr/bin/env python 28a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen 38a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen"""This is a very simple client for the backdoor daemon. This is intended more 48a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chenfor testing rather than normal use. See bd_serv.py """ 58a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen 68a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chenimport socket 78a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chenimport sys, time, select 88a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen 98a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chendef recv_wrapper(s): 108a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen r,w,e = select.select([s.fileno()],[],[], 2) 118a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen if not r: 128a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen return '' 138a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen #cols = int(s.recv(4)) 148a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen #rows = int(s.recv(4)) 158a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen cols = 80 168a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen rows = 24 178a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen packet_size = cols * rows * 2 # double it for good measure 188a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen return s.recv(packet_size) 198a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen 208a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen#HOST = '' #'localhost' # The remote host 218a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen#PORT = 1664 # The same port as used by the server 228a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chens = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) 238a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chens.connect(sys.argv[1])#(HOST, PORT)) 248a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chentime.sleep(1) 258a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen#s.setblocking(0) 268a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen#s.send('COMMAND' + '\x01' + sys.argv[1]) 278a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chens.send(':sendline ' + sys.argv[2]) 288a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chenprint recv_wrapper(s) 298a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chens.close() 308a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chensys.exit() 318a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen#while True: 328a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen# data = recv_wrapper(s) 338a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen# if data == '': 348a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen# break 358a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen# sys.stdout.write (data) 368a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen# sys.stdout.flush() 378a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen#s.close() 388a3c0430323c28c1fbe8ceecd2cd8e58b64a9295Johnny Chen 39