예제 #1
0
def gpl_while_input(title: str,
                    list_of_chooses=[],
                    text_color='magenta',
                    number_color='green',
                    title_color='white',
                    input_text='Number of choose : ',
                    input_color='blue',
                    on_invalid_sleep_time=1,
                    on_invalid_text='Invalid number!',
                    on_exit_request_text='Exit with user request.',
                    on_exit_request_forground_text_color='yellow',
                    exit_option=True,
                    exit_option_text='Exit (or "q").'):
    if exit_option:
        list_of_chooses.append(exit_option_text)
    while True:
        gpl_clear_and_banner()
        print(colored(title, title_color))
        i = 0
        for option in list_of_chooses:
            i += 1
            print("\t" + colored(str(i), number_color) + ' ' +
                  colored(option, text_color))
        choose = gpl_input("\n" + input_text,
                           input_color,
                           clear_and_banner_before=False)
        try:
            choose = int(choose)
        except:
            Handler(Error_Levels.High, on_invalid_text)
            gpl_sleep(on_invalid_sleep_time)
            continue
        else:
            if choose <= 0 or choose > len(list_of_chooses):
                Handler(Error_Levels.High, on_invalid_text)
                gpl_sleep(on_invalid_sleep_time)
                continue
        if exit_option and choose == len(list_of_chooses):
            print(
                colored(on_exit_request_text,
                        on_exit_request_forground_text_color))
            Exit_Request(Exit_Codes.Normal)
        else:
            list_of_chooses.pop()
            return choose
예제 #2
0
def gpl_confirm(text: str,
                default_return_value=None,
                clear_and_banner_before=True):
    Choose = str.lower(
        gpl_input(colored('[?] ', 'green') + text + ' [y/n/q] ? ',
                  dont_style=True,
                  clear_and_banner_before=clear_and_banner_before))
    if Choose == 'n' or Choose == 'no':
        return False
    elif Choose == 'y' or Choose == 'yes':
        return True
    else:
        if default_return_value != None:
            return default_return_value
        else:
            print(
                colored('[!] ', 'red') + colored(
                    'Invalid Choose! type once y/yes/n/no/q/exit', 'yellow'))
            gpl_sleep(1)
예제 #3
0
def gpl_clear(clear_on_unsuported_OS=True,
              on_unsuported_OS_text="New page is here:\n-----------------",
              on_unsuported_OS_text_color='yellow'):
    global OS
    if OS == 'Linux':
        print('\033c')
    elif OS == 'Windows':
        print(popen('cls').read())
    elif clear_on_unsuported_OS:
        print(colored(on_unsuported_OS_text, on_unsuported_OS_text_color))
        print('\033c')
예제 #4
0
def Exit_Request(Error_Code,
                 clear_and_banner=True,
                 text_after_clear=None,
                 clear_tmp_folder=True):
    if clear_and_banner:
        gpl_clear_and_banner()
    if text_after_clear:
        print(text_after_clear)
    # clean tmp folder
    if clear_tmp_folder:
        Clean_Temp_Dir(False)
    print(colored('Good by..', 'magenta'))
    exit(Error_Code)
예제 #5
0
def gpl_sleep(time_by_sec=1,
              on_exit_request_text='Exit with user request.',
              on_exit_request_forground_color='yellow',
              manage_ctrl_C_and_exit=True):
    try:
        sleep(time_by_sec)
    except (KeyboardInterrupt, EOFError):
        if manage_ctrl_C_and_exit:
            print(
                colored(on_exit_request_text, on_exit_request_forground_color))
            exit(Exit_Codes.CTRL_C)
        else:
            raise KeyboardInterrupt
예제 #6
0
def gpl_input(text: str,
              dont_style=False,
              forground_color='white',
              clear_and_banner_before=True,
              on_invalid_after_clear_text=None,
              clear_before=False,
              on_exit_request_text='\nExit with user request.',
              on_exit_request_forground_color='yellow',
              q_to_exit=True,
              clear_and_banner_when_exit=True,
              clear_when_exit=False,
              get_int=False,
              get_float=False,
              get_ip=False,
              on_invalid_number_text='Invalid number!',
              on_invalid_sleep_by_sec=1,
              on_invalid_clear_and_banner=True,
              on_invalid_ip_text="Invalid IP!"):
    if clear_and_banner_before and (not clear_before):
        gpl_clear_and_banner()
    elif clear_before:
        gpl_clear()
    try:
        while True:
            if dont_style:
                choose = input(text)
            else:
                choose = input(colored(text, forground_color))
            if q_to_exit and (str.lower(choose) == 'q'
                              or str.lower(choose) == 'exit'):
                if clear_when_exit:
                    gpl_clear()
                elif clear_and_banner_when_exit:
                    gpl_clear_and_banner()
                print(
                    colored(on_exit_request_text,
                            on_exit_request_forground_color))
                Exit_Request(Exit_Codes.Normal)
            else:
                if get_float:
                    try:
                        choose = float(choose)
                    except:
                        Handler(Error_Levels.High, on_invalid_number_text)
                        gpl_sleep(on_invalid_sleep_by_sec)
                        if on_invalid_clear_and_banner:
                            gpl_clear_and_banner()
                        if on_invalid_after_clear_text:
                            print(on_invalid_after_clear_text)
                    else:
                        return choose
                elif get_int:
                    try:
                        choose = int(choose)
                    except:
                        Handler(Error_Levels.High, on_invalid_number_text)
                        gpl_sleep(on_invalid_sleep_by_sec)
                        if on_invalid_clear_and_banner:
                            gpl_clear_and_banner()
                        if on_invalid_after_clear_text:
                            print(on_invalid_after_clear_text)
                    else:
                        return choose
                elif get_ip:
                    try:
                        ip_address(choose)
                    except:
                        Handler(Error_Levels.High, on_invalid_ip_text)
                        gpl_sleep(on_invalid_sleep_by_sec)
                        if on_invalid_clear_and_banner:
                            gpl_clear_and_banner()
                        if on_invalid_after_clear_text:
                            print(on_invalid_after_clear_text)
                    else:
                        return choose
                else:
                    return choose
    except (KeyboardInterrupt, EOFError):
        print(
            colored("\n" + on_exit_request_text,
                    on_exit_request_forground_color))
        Exit_Request(Exit_Codes.CTRL_C,
                     text_after_clear=colored('Exit with user request.',
                                              'yellow'))
예제 #7
0
# import libs
from os import name
from time import sleep
from lib.packages.termcolor import colored
from lib.config.Main_Configs import Sleep_On_Unknown_OS
"""		detect os		"""
# can be once : ['Linux','Windows','Unknown']
if str.lower(name) == 'nt':
    OS = 'Windows'
elif str.lower(name) == 'posix':
    OS = 'Linux'
else:
    OS = 'Unknown'
    print(
        colored('[!] ', 'red') + colored(
            'Your os not support, Sometimes it may be not working. Continue after '
            + str(Sleep_On_Unknown_OS) + ' S..'))
    sleep(Sleep_On_Unknown_OS)
예제 #8
0
def gpl_clear_and_banner(owners_text='WitBlack',
                         field2_title='',
                         field2_text='',
                         field3_title='',
                         field3_text='',
                         license='FREE'):  # plugin_version shuild in globals
    global Banner_Version
    if not 'Banner_Version' in globals():
        raise Exception(
            'Banner_Version not in globals. Run gpl_set_banner_verion first.')
    gpl_clear()
    Python_Version = str(version_info[0])
    if len(field3_title) > 31:
        field3_title = field3_title[:31]
    if len(field2_title) > 31:
        field3_title = field2_title[:31]
    print(
        colored(
            ' _______________________________________________________________________',
            'red'))
    print(
        colored('|', 'red') +
        colored(' ▒███▒ ▒████           █                ', 'magenta') +
        colored('  |', 'red') +
        colored(' Programmer info:          ', 'white') + colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored('░█▒ ░█ █▒  ▓█          █                ', 'magenta') +
        colored('  |', 'red') + colored('---------------------------|', 'red'))
    print(
        colored('|', 'red') +
        colored('█▒          █ █▒██▒    █    █   █  ▒███▒', 'magenta') +
        colored('  |', 'red') +
        colored(' Programmed by WitBlack    ', 'green') + colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored('█          ▒█ █▓ ▒█    █    █   █  █▒ ░█', 'magenta') +
        colored('  |', 'red') +
        colored(' Github ~>                 ', 'white') + colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored('█   ██   ███░ █   █    █    █   █  █▒░  ', 'magenta') +
        colored('  |', 'red') +
        colored('Https://github.com/WitBlack', 'blue') + colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored('█    █     ▓█ █   █    █    █   █  ░███▒', 'magenta') +
        colored('  |', 'red') +
        colored(' Website ~>                ', 'white') + colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored('█▒   █      █ █   █         █   █     ▒█', 'magenta') +
        colored('  |', 'red') +
        colored('Https://BugZone.ir         ', 'blue') + colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored('▒█░ ░█ █░  ▓█ █   █    █    █▒ ▓█  █░ ▒█', 'magenta') +
        colored('  |', 'red') +
        colored(' E-Mail ~>                 ', 'white') + colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored(' ▒███▒ ▒████  █   █    █    ▒██▒█  ▒███▒', 'magenta') +
        colored('  |', 'red') +
        colored('[email protected]           ', 'blue') + colored('|', 'red'))
    print(
        colored('|', 'red') + colored(
            '                                 _________|___________________________|',
            'red'))
    print(
        colored('|', 'red') +
        colored('________________________________|', 'red') +
        colored('                       ███           ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored(' Information :                  ', 'white') +
        colored('|', 'red') +
        colored(' ███████                 █           ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('|', 'red') +
        colored('--------------------------------', 'red') +
        colored('|', 'red') +
        colored('    █                    █           ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('|', 'red') + colored(' Python Version: ', 'blue') +
        colored(Python_Version + '              ', 'white') +
        colored('|', 'red') +
        colored('    █     ███    ███     █    ▒███▒  ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('|', 'red') + colored(' LICENSE: ', 'blue') +
        colored(gpl_fix_spases(license, 22, overflow=False), 'white') +
        colored('|', 'red') +
        colored('    █    █▓ ▓█  █▓ ▓█    █    █▒ ░█  ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('|', 'red') + colored(' VERSION: ', 'blue') +
        colored(gpl_fix_spases(Banner_Version, 22, overflow=False), 'white') +
        colored('|', 'red') +
        colored('    █    █   █  █   █    █    █▒░    ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('|', 'red') + colored(' OS: ', 'blue') +
        colored(gpl_fix_spases(OS, 27, overflow=False), 'white') +
        colored('|', 'red') +
        colored('    █    █   █  █   █    █    ░███▒  ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('|', 'red') + colored(' Owners: ', 'blue') +
        colored(gpl_fix_spases(owners_text, 23, overflow=False), 'white') +
        colored('|', 'red') +
        colored('    █    █   █  █   █    █       ▒█  ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('| ', 'red') + colored(field2_title, 'blue') + colored(
            gpl_fix_spases(field2_text, 31 -
                           len(field2_title), overflow=False), 'white') +
        colored('|', 'red') +
        colored('    █    █▓ ▓█  █▓ ▓█    █░   █░ ▒█  ', 'magenta') +
        colored('|', 'red'))
    print(
        colored('| ', 'red') + colored(field3_title, 'blue') + colored(
            gpl_fix_spases(field3_text, 31 -
                           len(field3_title), overflow=False), 'white') +
        colored('|', 'red') +
        colored('    █     ███    ███     ▒██  ▒███▒  ', 'magenta') +
        colored('|', 'red'))
    print(
        colored(
            '|________________________________|_____________________________________|',
            'red'))
    print(
        colored('| Warning:', 'red') + colored(
            " Don't break or kill script while process runing.            ",
            'yellow') + colored('|', 'red'))
    print(
        colored(
            '|______________________________________________________________________|\n',
            'red'))
예제 #9
0
def Handler(Error_Level, Title, Description=None, Clear_Page=True):
    if Error_Level == Error_Levels.Critical:
        print(colored('[!] ', 'red') + colored(Title, 'yellow'))
        if Clear_Page:
            Exit_Request(Exit_Codes.Crash)
        else:
            Exit_Request(Exit_Codes.Crash, clear_and_banner=False)
    elif Error_Level == Error_Levels.High:
        print(colored('[!] ', 'red') + colored(Title, 'yellow'))
    elif Error_Level == Error_Levels.Confirm:
        print(colored('[?] ', 'yellow') + colored(Title, 'white'))
    elif Error_Level == Error_Levels.Failed_Job:
        print(colored('[-] ', 'yellow') + colored(Title, 'red'))
    elif Error_Level == Error_Levels.Alert:
        print(colored('[+] ', 'green') + colored(Title, 'white'))
    elif Error_Level == Error_Levels.Info:
        print(colored('[*] ', 'magenta') + colored(Title, 'white'))
    else:
        print(Title)

    # show description
    if Description != None:
        if Error_Level == None:
            print(Description)
        else:
            print(colored("Description:\t", 'blue') + colored(Description, 'white'))
예제 #10
0
def gpl_ask_load_from_file(
        just_ask=False,
        read_lines=False,
        read_content=False,
        read_bytes=False,
        ask_address_text='Enter address/name of file to load (q to exit): ',
        ask_address_text_color='white',
        on_file_not_exists_text='File not exists or not a file!',
        on_file_not_exists_text_color='red',
        on_file_not_exists_sleep_by_sec=1,
        on_file_not_have_enough_access_text='File not have enough access to read.',
        on_file_not_have_enough_access_text_color='red',
        on_file_not_have_enough_access_sleep_by_sec=1,
        on_file_is_dir_text="It's a directory. should be a file.",
        on_file_is_dir_text_color='red',
        on_file_is_dir_sleep_by_sec=1):
    while True:
        gpl_clear()
        address = gpl_input(ask_address_text, ask_address_text_color)
        if not exists(address):
            print(
                colored(on_file_not_exists_text,
                        on_file_not_exists_text_color))
            gpl_sleep(on_file_not_exists_sleep_by_sec)
        elif isfile(address):
            if just_ask:
                return address
            elif read_content:
                try:
                    file = open(address, 'r')
                    data = file.read()
                except:
                    print(
                        colored(on_file_not_have_enough_access_text,
                                on_file_not_have_enough_access_text_color))
                    gpl_sleep(on_file_not_have_enough_access_sleep_by_sec)
                else:
                    file.close()
                    return data
            elif read_lines:
                try:
                    file = open(address, 'r')
                    data = file.readlines()
                except:
                    print(
                        colored(on_file_not_have_enough_access_text,
                                on_file_not_have_enough_access_text_color))
                    gpl_sleep(on_file_not_exists_sleep_by_sec)
                else:
                    file.close()
                    lst = []
                    for item in data:
                        if item[-1:] == "\n":
                            lst.append(item[:-1])
                        else:
                            lst.append(item)
                    return lst
            elif read_bytes:
                try:
                    file = open(address, 'rb')
                    data = file.read()
                except:
                    print(
                        colored(on_file_not_have_enough_access_text,
                                on_file_not_have_enough_access_text_color))
                    gpl_sleep(on_file_not_exists_sleep_by_sec)
                else:
                    file.close()
                    return data
        elif isdir(address):
            print(colored(on_file_is_dir_text, on_file_is_dir_text_color))
            gpl_sleep(on_file_is_dir_sleep_by_sec)
예제 #11
0
def gpl_ask_save_to_file(
        just_ask=False,
        bytes_to_write=b'',
        string_to_write='',
        is_string_to_write=True,
        ask_address_text='Enter address/name of file to load (q to exit): ',
        ask_address_text_color='white',
        on_ask_overwrite_text='This is a file, Overwrite [y/n/q] ? ',
        on_ask_overwrite_text_color='yellow',
        on_file_not_have_enough_access_text='File not have enough access to write.',
        on_file_not_have_enough_access_text_color='red',
        on_file_not_have_enough_access_sleep_by_sec=1,
        on_file_is_dir_text='This is a directory. Should be file.',
        on_file_is_dir_text_color='red',
        on_file_is_dir_sleep_by_sec=1):
    while True:
        gpl_clear()
        address = gpl_input(ask_address_text, ask_address_text_color)
        if not exists(address):
            if just_ask:
                return address
            elif is_string_to_write:
                try:
                    file = open(address, 'w')
                    file.write(string_to_write)
                except:
                    print(
                        colored(on_file_not_have_enough_access_text,
                                on_file_not_have_enough_access_text_color))
                    gpl_sleep(on_file_not_have_enough_access_sleep_by_sec)
                else:
                    file.close()
                    return
            else:
                try:
                    file = open(address, 'wb')
                    file.write(bytes_to_write)
                except:
                    print(
                        colored(on_file_not_have_enough_access_text,
                                on_file_not_have_enough_access_text_color))
                    gpl_sleep(on_file_not_have_enough_access_sleep_by_sec)
                else:
                    file.close()
                    return
        elif isdir(address):
            print(colored(on_file_is_dir_text, on_file_is_dir_text_color))
            gpl_sleep(on_file_is_dir_sleep_by_sec)
        elif isfile(address):
            gpl_clear()
            choose = gpl_input(on_ask_overwrite_text,
                               on_ask_overwrite_text_color)
            if choose.lower() == 'y' or choose.lower() == 'yes':
                if just_ask:
                    return address
                elif is_string_to_write:
                    try:
                        file = open(address, 'w')
                        file.write(string_to_write)
                    except:
                        print(
                            colored(on_file_not_have_enough_access_text,
                                    on_file_not_have_enough_access_text_color))
                        gpl_sleep(on_file_not_have_enough_access_sleep_by_sec)
                    else:
                        file.close()
                        return
                else:
                    try:
                        file = open(address, 'wb')
                        file.write(bytes_to_write)
                    except:
                        print(
                            colored(on_file_not_have_enough_access_text,
                                    on_file_not_have_enough_access_text_color))
                        gpl_sleep(on_file_not_have_enough_access_sleep_by_sec)
                    else:
                        file.close()
                        return
예제 #12
0
 def Generate_Menu(Plugin_List):
     ret = colored('Select Once:\n\n', 'white')
     for Plugin in Plugin_List:
         ret += colored("\n" + str(Plugin['ID']), 'green') + ' ' + colored(
             Plugin['Title'], 'white')
     return ret
예제 #13
0
    from os import remove, mkdir, listdir, system
    from sys import argv, exc_info
    from shutil import rmtree
    from threading import Thread
    from subprocess import call

    # dont needed at launcher.py
    # just import to check installed or not
    from requests import get
    from importlib import reload
    from scapy.all import IP
except:
    # failed to load external
    try:
        print(
            colored('[!] ', 'red') +
            colored('Some depends not installed.', 'yellow'))
        print(colored('Run "pip install -r requires.txt"', 'blue'))
    except:
        print(
            '\x1b[0;31m[!] ERROR:    Internal "termcolor" package dameged :(\x1b[0m'
        )
    exit(1)

# load configs
try:
    import lib.config.Exit_Codes as Exit_Codes
    import lib.config.Error_Levels as Error_Levels
    import lib.config.Main_Configs as Main_Configs
except:
    print(