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

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

  1. moonden

    moonden Member

    Joined:
    3 Jul 2010
    Messages:
    45
    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:
    45
    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:
    6
    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 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    630
    Likes Received:
    1,050
    Reputations:
    47
    Вам надо просто запустить скрипт под питоном (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:
    6
    Likes Received:
    0
    Reputations:
    0
    Извиняюсь за глупый вопрос, как передать значение ( с питоном на Вы)
     
  7. fandor9

    fandor9 Reservists Of Antichat

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

    trineti2000 New Member

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

    trineti2000 New Member

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

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Есть матрица (для примера будет 20 на 20-ть).
    Эта матрица заполнена False-и (для сокращения буду использовать букву F)
    [​IMG]
    Когда например по координата 5, 7 поступает кое какое значение, оно меняется на True (буду писать T для сокращения)
    [​IMG]
    После чего в эту координату есть еще допустим 10-ть значений (именно которые предназначены для этой координаты в этой матрице), но так как эта координата уже занята, следующее значение предназначенное для этой координаты, надо впихнуть в другую ближайшую свободную координату со значением False (F).
    Необходимо придумать такой оптимальный алгоритм для поиска ближайшей свободной координаты в матрице.
    Заранее спасибо за помощь !
     
    #1130 Matrix001, 3 Dec 2019
    Last edited: 4 Dec 2019
  11. aka dexter

    aka dexter Elder - Старейшина

    Joined:
    23 Jun 2006
    Messages:
    539
    Likes Received:
    801
    Reputations:
    74
    numpy в помощь...
     
  12. karusel38

    karusel38 New Member

    Joined:
    16 Oct 2018
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    Всем привет! Помогите новичку ;)
    Нужен код который будет генерировать числа
    Типо;
    от 6051000000
    до 6051999999
    Чтобы на выходе получить списком в тектстоый файл
    Может найдется кодер, кто на пишет код на python?:confused:
     
  13. ZodiaX

    ZodiaX Reservists Of Antichat

    Joined:
    7 May 2009
    Messages:
    533
    Likes Received:
    308
    Reputations:
    51
    Code:
    list = [i for i in range(6051000000,6051999999)]
    print(list)
    сгугли как list в файл записать, это не сложно.
     
    KIR@PRO and Pirnazar like this.
  14. suzi

    suzi New Member

    Joined:
    6 Apr 2019
    Messages:
    10
    Likes Received:
    4
    Reputations:
    0
    BFS -> queue:
    from collections import deque
    adj: to_left, to_right, to_up, to_down
    edge cases: indices < 0 or > len(matrix)
     
    Matrix001 likes this.
  15. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Спасибо большое, кажется разобрался.
     
  16. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Если кто знает, помогите с функцией создания матрицы для размытия по гауссу (по кривой распределения Гаусса).
    Это матрица для радиуса 1 пиксель (3x3 матрица)
    [​IMG]
    А функция должна составлять такие матрицы для любого радиуса, например (12x12).
    Заранее спасибо !!!
     
  17. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Есть последовательность чисел, например [6, 0, 3, 5, 5, 7, 1, 0, 0, 7, 4, 1, 1, 3, 2,9, 7, 4]. Как можно спрогназировать следующее число не используя нейросети. ?!
     
  18. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    630
    Likes Received:
    1,050
    Reputations:
    47
    ну так как у вас числа в интервале [0-9] то скорее всего на выходе идёт остаток деления на 10 или же x.mod(10). Так же можно отбросить вариант регистр сдвига с линейной обратной связью (LFSR), так как при 3-битном регистре были-бы числа в интервале [0-7], а при 4-битном в интервале [0-15]. Так что можно предположить какую-либо математическую формулу которая зависит не только от последнего предыдущего числа, а допустим от последних 3-8 чисел. Тоесть если наш результат x, то х-1 это предыдущий результат, а х-2 это пред-предыдущий и т.д. ну и факторы перед числами: x=(a0+а1*x-1+a2*x-2+a3*x-3) mod 10
     
  19. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    А если числа больше, ограничиваются 1000-й ?
     
  20. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Не то, бред получается