예제 #1
0
def display_utf8_pcap(symbols):

    pcap_list = []
    if utilities.globalvars.NETWORK:
        for PCAPFile in utilities.globalvars.PCAPFiles:
            pcap_list.append(PCAPImporter.readFile(PCAPFile).values())
    else:
        for PCAPFile in utilities.globalvars.PCAPFiles:
            pcap_list.append(FileImporter.readFile(PCAPFile).values())
    tempstdout_list = []
    for i, pcap in enumerate(pcap_list):
        old_stdout = sys.stdout
        tempstdout_list.append(io.StringIO())
        sys.stdout = tempstdout_list[i]
        for j in pcap:
            print(j)
        sys.stdout = old_stdout
    buffer = ""
    for i, tempstdout in enumerate(tempstdout_list):
        buffer += "<----------------------------------------PCAP " + str(
            i
        ) + " :-------------------------------------->\n" + tempstdout.getvalue(
        ) + "\n"
    # Print buffer in a pager
    click.echo_via_pager(buffer)
    # Print buffer in tkinter window
    tkinter_window(buffer)
    pcap_exchange_menu(symbols)
예제 #2
0
def display_field(fields, field_selector, symbol, symbol_selector):
    old_stdout = sys.stdout
    sys.stdout = tempstdout = io.StringIO()
    if field_selector != "*":
        field = symbolselector.selectsymbol(fields, field_selector)
        print(field)
    else:
        for field in fields:
            print(field)
    sys.stdout = old_stdout
    click.echo_via_pager(tempstdout.getvalue())
    tkinter_window(tempstdout.getvalue())
    field_manipulate_menu(symbol, symbol_selector)
예제 #3
0
def display_raw_pcap(symbols):

    if utilities.globalvars.NETWORK:
        pcap_list = []
        for PCAPFile in utilities.globalvars.PCAPFiles:
            pcap_list.append(rdpcap(PCAPFile))
        tempstdout_list = []
        for i, pcap in enumerate(pcap_list):
            old_stdout = sys.stdout
            tempstdout_list.append(io.StringIO())
            sys.stdout = tempstdout_list[i]
            pcap.hexdump()
            sys.stdout = old_stdout
        buffer = ""
        for i, tempstdout in enumerate(tempstdout_list):
            buffer += "<----------------------------------------PCAP " + str(
                i
            ) + " :-------------------------------------->\n" + tempstdout.getvalue(
            ) + "\n"

    else:
        old_stdout = sys.stdout
        tempstdout = []
        i = 0
        for PCAPFile in utilities.globalvars.PCAPFiles:
            tempstdout.append(io.StringIO())
            sys.stdout = tempstdout[i]
            file = open(PCAPFile, 'rb')
            file_buffer = b''
            for line in file:
                file_buffer += line
            file.close()
            hexdump(file_buffer)
            sys.stdout = old_stdout
            i += 1
        buffer = ""
        for i, out in enumerate(tempstdout):
            buffer += "<----------------------------------------FILE " + str(
                i
            ) + " :-------------------------------------->\n" + out.getvalue(
            ) + "\n"
    # Print buffer in a pager
    click.echo_via_pager(buffer)
    # Print buffer in tkinter window
    tkinter_window(buffer)
    pcap_exchange_menu(symbols)
예제 #4
0
def display_symbols_only(symbols):
    old_stdout = sys.stdout
    sys.stdout = tempstdout = io.StringIO()
    #List all sessions
    sessions = []
    splitMessageList = OrderedDict()
    for sym in symbols:
        for message in sym.messages:
            sessions.append(message.session)
    sessions = set(copy.deepcopy(sessions))
    for session in sessions:
        print("\033[1;31m" + " " + session.name + " " + '\033[0m')
        session_abstract = session.abstract(symbols)
        for element in session_abstract:
            print(element)
    sys.stdout = old_stdout
    click.echo_via_pager(tempstdout.getvalue())
    tkinter_window(tempstdout.getvalue())
    pcap_exchange_menu(symbols)
예제 #5
0
def display_symbols(symbol_selector, symbols):

    old_stdout = sys.stdout
    sys.stdout = tempstdout = io.StringIO()
    if symbol_selector == "*":
        for symbol in symbols:
            click.echo(
                click.style("[", fg="red") + click.style(symbol.name) +
                click.style("]", fg="red"))
            print(symbol)
    else:
        symbol = symbolselector.selectsymbol(symbols, symbol_selector)
        click.echo(
            click.style("[", fg="red") + click.style(symbol.name) +
            click.style("]", fg="red"))
        print(symbol)
    sys.stdout = old_stdout
    click.echo_via_pager(tempstdout.getvalue())
    tkinter_window(tempstdout.getvalue())
    manipulate_menu(symbols)
예제 #6
0
def display_messages_with_fields(symbols):
    old_stdout = sys.stdout
    sys.stdout = tempstdout = io.StringIO()
    #List all sessions
    sessions = []
    splitMessageList = OrderedDict()
    for sym in symbols:
        for message in sym.messages:
            sessions.append(message.session)
    sessions = set(sessions)
    for session in sessions:
        print("\033[1;31m" + " " + session.name + " " + '\033[0m')
        message_list = []
        for symbol in symbols:
            for message in symbol.messages:
                if message.session.id == session.id:
                    #Append the message to our message list
                    message_list.append(message)
            splitMessageList.update(symbol.getMessageCells())
        message_list.sort(key=lambda mess: mess.date)
        for message in message_list:
            for i, element in enumerate(splitMessageList[message]):
                print(" | ", end=" ")
                if i <= 2:
                    if element is not None:
                        print('\033[92m' + " " + element + " " + '\033[0m',
                              end=" ")
                    else:
                        pass
                else:
                    print(element, end=" ")
            print("\n")
    sys.stdout = old_stdout
    click.echo_via_pager(tempstdout.getvalue())
    tkinter_window(tempstdout.getvalue())
    pcap_exchange_menu(symbols)