コード例 #1
0
def do(cmd):
	if 'list' in cmd:
		get_hosted_files()

	if 'config' in cmd:
		logger.msg(f'Server is currently configured to: ',f'{args.server_address}:{args.server_port}','blue')

	if 'generate' in cmd:
		if cmd.startswith('generate '):
			cmd = cmd.split(' ')[1:]
			generate_command(cmd)

	if 'read' in cmd:
		if cmd.startswith('read '):
			cmd = cmd.split(' ')[1]
			read_file(cmd)

	if 'add' in cmd:
		if cmd.startswith('add '):
			cmd = cmd.split(' ')[1]
			add_file(cmd)

	if 'delete' in cmd:
		if cmd.startswith('delete '):
			cmd = cmd.split(' ')[1]
			delete_file(cmd)

	if 'exit' in cmd:
		logger.msg('CTRL+C to kill the server!',None,'red')
		quit()
コード例 #2
0
def add_file(cmd):
	from_location = cmd
	to_location = args.directory
	try:
		copy(from_location,to_location)
		logger.msg(f'Copied {from_location} to ', to_location,'green')
		return 0
	except  Exception as e:
		logger.msg('Error: ',e,'red')
		return 1
コード例 #3
0
def get_hosted_files():
	hosted_path = './'
	url = f'http://{args.server_address}:{args.server_port}/'
	if not os.path.exists(hosted_path):
		logger.msg('Creating directory: ',hosted_path,'blue')
		os.mkdir(hosted_path)
	else:
		files = os.listdir(hosted_path)
		logger.list_dir(url,files)
		print()
コード例 #4
0
def delete_file(cmd):
	if args.directory.endswith('/'):
		file_to_delete = args.directory + cmd
	else:
		file_to_delete = args.directory + '/' + cmd
	try:
		os.remove(file_to_delete)
		logger.msg(f'Deleted ', file_to_delete,'green')
		return 0
	except Exception as e:
		logger.msg('Error: ',e,'red')
		return 1
コード例 #5
0
def read_file(cmd):
	if args.directory.endswith('/'):
		file_to_read = args.directory + cmd
	else:
		file_to_read = args.directory + '/' + cmd

	try:
		with open(file_to_read,'r') as f:
			logger.msg('Contents of ',file_to_read+':','green')
			print(f.read())
	except UnicodeDecodeError as e:
		logger.msg('Unable to read ',file_to_read,'red')
		return 1
コード例 #6
0
ファイル: core.py プロジェクト: ASkyeye/scx
    def compile(self):
        compiler_command = ''

        if self.lang == 'cs':
            compiler_command = 'mcs /platform:%s /unsafe %s /out:%s' % (
                self.arch, self.outfile_cs, self.outfile_net_exe)

        elif self.lang == 'c':
            if self.arch == 'x86':
                compiler_command = 'i686-w64-mingw32-gcc %s -o %s' % (
                    self.outfile_c, self.outfile_exe)
            elif self.arch == 'x64':
                compiler_command = 'x86_64-w64-mingw32-gcc %s -o %s' % (
                    self.outfile_c, self.outfile_exe)
            else:
                return False

        logger.msg('Compiling with: ', compiler_command, 'blue')

        if os.system(compiler_command) == 0:
            if os.path.exists(self.outfile_exe):
                logger.msg('Compiled: ', self.outfile_exe, 'green')
                return True
            else:
                logger.msg('Failed to compile: ', self.outfile_exe, 'red')
                return False
        else:
            logger.msg('Failed to compile: ', self.outfile_exe, 'red')
            return False
コード例 #7
0
def start_server():
    web_dir = args.directory
    os.chdir(web_dir)
    host = args.server_address
    port = args.server_port
    Handler = MyHTTPHandler
    httpd = socketserver.TCPServer((host, port), Handler)
    try:
        logger.msg('Listening @ ', f'http://{host}:{port}', 'green')
        httpd.serve_forever()
        quit()
    except KeyboardInterrupt:
        httpd.server_close()
        quit()
    finally:
        httpd.server_close()
        quit()
コード例 #8
0
lang = args.language

if args.x64:
    arch = 'x64'
else:
    arch = 'x86'

key = args.key
strip = args.strip
sign = args.sign
name = args.name

try:
    file_bytes = open(args.binary, "rb").read()
except Exception as e:
    logger.msg('Error opening file: ', e, 'red')
    quit()

if not os.path.exists('./result/'):
    os.makedirs('./result')

prereqs = ['i686-w64-mingw32-gcc', 'x86_64-w64-mingw32-gcc', 'mcs']

for p in prereqs:
    r = os.system(p + ' > /dev/null 2>&1')
    if r != 256:
        logger.msg('Missing requirement: ', p, 'red')
        quit()

scx = core.Scx(lang, arch, key, file_bytes, name)
コード例 #9
0
ファイル: core.py プロジェクト: ASkyeye/scx
 def sign(self):
     if sig_thief.signfile(self.outfile_exe, './lib/sig/Tcpview.exe_sig',
                           self.outfile_signed_exe):
         logger.msg('Signed: ', self.outfile_signed_exe, 'green')
     else:
         logger.msg('Failed to sign: ', self.outfile_signed_exe, 'red')
コード例 #10
0
ファイル: core.py プロジェクト: ASkyeye/scx
 def strip(self):
     if os.system('strip -s %s' % (self.outfile_exe)) == 0:
         logger.msg('Stripped: ', self.outfile_exe, 'green')
     else:
         logger.msg('Failed to strip: ', self.outfile_exe, 'red')