|
|
|
|
Strumenti |
26-03-2020, 18:53 | #21 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
Spiega...
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] |
26-03-2020, 19:00 | #22 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
oh bene! sono in contatto con un forum inglese ma è tutto un casino spiegare le cose...
allora ho 2 script x python trovati qui: https://github.com/potassium-chlorid...Steganography1 prima avevo un problema con PIL, poi ho risolto. ora nuovo problema con errore qui: Traceback (most recent call last): File "D:\Python-3.8.1 x64\encrypt.py", line 5, in <module> image=Image.open(sys.argv[1]) IndexError: list index out of range |
26-03-2020, 19:09 | #23 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
Non l'ho ancora provato, ma ho già una risposta.
Quell'eccezione indica che non stai passando tutti gli argomenti richiesti dal programma quando lo invochi da riga di comando. Lo script sta facendo accesso al secondo elemento di sys.argv, che è la lista dei command-line args e non trova l'elemento. Quindi si aspetta un argomento da command-line, che guardando il codice dovrebbe essere il percorso del file immagine La stringa di testo come secondo argomento. Invoca lo script con python encrypt.py <image.jpg> testo E per l'operazione inversa python decrypt.py <image.jpg>
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] Ultima modifica di Blue_screen_of_death : 26-03-2020 alle 20:42. |
26-03-2020, 20:16 | #24 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
mmm...capito.
quindi dovrei immettere il percorso immagine... pensavo andasse mettendo il file jpg insieme al file .py appunto x non dover scrivere il percorso... possibile che chi lo ha pensato non abbia strutturato la cosa in maniera più semplice? ma comunque: ora quel percorso di jpg e txt come/dove lo devo inserire?? |
26-03-2020, 20:30 | #25 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
Per far funzionare lo script usando il nome del file
Se non vuoi mettere il percorso completo puoi mettere il jpg nella stessa cartella di encrypt.py e invocare lo script solo con il nome del file Ad es. se hai chiamato il file nome_del_file.jpg e lo hai messo nella cartella JPG-Steganography1, con questo comando dovrebbe funzionare. cd JPG-Steganography1 python encrypt.py nome_del_file.jpg text Per far funzionare lo script senza argomenti Se invece vuoi invocare lo script senza passare comandi, allora fai queste sostituzioni nel codice (fai attenzione alle virgolette, che sono obbligatorie) sys.argv[1] -> "nome_del_file.jpg" sys.argv[2] -> "testo_da_inserire" e chiama il tuo file nome_del_file.jpg
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] Ultima modifica di Blue_screen_of_death : 26-03-2020 alle 20:42. |
27-03-2020, 09:18 | #26 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
intanto grazie davvero x il supporto.
poi specifico che uso una versione portable di python, x l'esattezza la Portable Python-3.8.1 x64 da questo io eseguo PyScripter-Launcher.exe che lancia lo script. poi diciamo che io ho la cartella in: D:\Python-3.8.1 x64 e in questa cartella ho messo l'immagine picture.jpg e il testo note.txt preferisco adattare lo scritp a questi nomi e averli nella cartella Python dove insieme ho anche i file encrypt.py e decript.py ora ho adattato lo script come mi hai detto nel secondo punto (preferisco questo) quindi ho modificato così: "picture.jpg"=Image.open(sys.argv[1]) "note.txt"=sys.argv[2] ma non credo di aver capito bene, infatti non funziona... |
27-03-2020, 09:26 | #27 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
mi viene un dubbio: ma questo script gestisce anche i file jpg o solo png (come ho visto nelle righe successive)?
a me interessa che utilizzi i jpg. ma dato che ci siamo mi serve comunque a capire come funziona il sistema...! |
27-03-2020, 14:15 | #28 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
Metti il nome del file (con estensione inclusa) tra virgolette al posto di sys.argv[1]
Metti il testo da inserire (non il file, ma proprio il testo) tra virgolette al posto di sys.argv[2] ad esempio "nome_del_file.jpg" al posto di sys.argv[1] "testo_da_inserire" al posto di sys.argv[2] Sono solo 3 o 4 sostituzioni da fare. Purtroppo non posso pubblicare il codice completo con le modifiche perché violerei la licenza. -------------- Ho "riparato" il programmino hidensend.exe E' compilato a 32-bit, non 16-bit, ma nel zip che si trova in rete quell'eseguibile è corrotto. Ho sistemato solo hidensend.exe, non la GUI. Quindi fai attenzione a non lanciarlo con la GUI altrimenti si corrompe di nuovo Eseguilo solo da riga di comando. Te lo mando in pm. Fai sapere se funziona.
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] |
27-03-2020, 14:50 | #29 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
grazie. ora provo.
ma violare la licenza de che?? è uno script di un singolo utente, pubblicato su gthub dove è tutto open... io non credo che modificare uno script di un altro sia una cosa da non fare... anzi se si apportano modifiche o migliorie penso che la cosa sia fattibile, essendo appunto open source... io non vedo il problema... esempio: ok mettere il nome del file jpg ma il testo da inserire....!! e se io avessi un testo molto lungo?? sarebbe più saggio, come si carica l'immagine dal suo nome file, avere lo stesso anche x il txt. ossia avere un note.txt e caricare il file anzichè il suo contenuto. questo cambiamento sarebbe a mio parere una cosa saggia... e ho già scritto all'autore... mi rispondesse farei notare a lui la cosa, ma non risponde.... chissà a quando risale questo lavoro... |
27-03-2020, 15:06 | #30 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
allora: se metto un testo completo tra virgolette al posto di sys.argv[2]
mi rileva un errore di sintassi alla riga 1... allora ho provato a mettere il nome del txt tra virgolette "note.txt" nel caso tu ti fossi sbagliato a scrivere e ho questo errore: Size: 192 Maxsize: 128 Little picture. Exit Exit code: 1 pensando la mia immagine fosse grande, ho ridimensionato riducendo. altro errore. quindi ho ingrandito, aumentando i pixel di risoluzione passando da 185kb a 731kb: stavolta funziona, ma poi si blocca qui quasi al fondo: |
27-03-2020, 15:22 | #31 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
Non trova R2.png che dovrebbe essere nella cartella JPG-Steganography1
E' presente? edit. Ma non è più comodo avviarlo da riga di comando? Basta installare python3 Poi apri il terminale e esegui questo comando per configurare le dipendenze richieste pip install pillow E per eseguire lo script è sufficiente usare questi comandi cd percorso/dove/hai/salvato/JPG-Steganography1 python encrypt.py <immagine.jpg> testo Tu hai scaricato tutto l'ambiente di sviluppo e stai eseguendo codice nell'ambiente, che è più complicato. In alternativa, usa hidensend.exe che ti ho mandato. L'ho testato personalmente e funziona bene.
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] Ultima modifica di Blue_screen_of_death : 27-03-2020 alle 16:04. |
27-03-2020, 20:18 | #32 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
GRAZIE. GRAZIE. GRAZIE.
intanto grazie x il messaggio! se non lo dicevi non lo avrei visto! e funziona bene...! ma come hai fatto?? ora è perfetto! x python hai ragione, più semplice il cmd, anche se il problema non è questo. comunque con i tuoi consigli ho risolto quasi tutto! encrypt ok, funziona perfettamente. ora ho un problema con il decrypt: anche qui alla riga 1 ho sostituito come hai detto sopra il nome del mio jpg encrypted, lo eseguo, però poi alla fine mi chiede un size che non so dare... ho provato con 4 che è la dimensione del mio txt in kb ma non funziona ovviamente... e qui sono di nuovo fermo.... Ultima modifica di swan_x : 28-03-2020 alle 09:02. |
30-03-2020, 11:00 | #33 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
Blue_screen dove sei finito???
qui siamo in stand-by in attesa di tua risposta..... |
31-03-2020, 01:23 | #34 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
real size = 8 * il numero di caratteri del testo che hai memorizzato
Che versione di python stai utilizzando? Il codice è scritto per python 3. Assicurati che stai eseguendo la versione 3. Puoi controllare la versione con questi comandi (da dare nel terminale dell'ambiente di sviluppo) import sys print(sys.version) edit. Dagli screenshot che hai condiviso in precedenza vedo che stai usando la versione 3.8.1, quindi è ok.
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] Ultima modifica di Blue_screen_of_death : 31-03-2020 alle 01:25. |
31-03-2020, 09:50 | #35 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
grazie x la risposta. però a me non funziona.
sicuramente sbaglio io ad inserire il valore corretto... innanzi tutto questa cosa è davvero insopportabile: chi ha compilato questo script ha aggiunto questa cosa che davvero poteva evitarla... cmque io apro con np++ il mio txt; vado al fondo e copio il valore lenght (che è lo stesso valore se seleziono tutto il mio testo, quindi i caratteri totali del txt 3080) e poi lo moltiplico x 8 (24640) ma inserito questo mi compare un messaggio di errore... |
31-03-2020, 10:39 | #36 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
Lo script non lavora con file di testo, ma con stringhe di testo. Quindi nel tuo caso non stai codificando il file note.txt ma stai codificando la stringa di testo note.txt. Quindi la size è 8*8=64
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] |
31-03-2020, 11:10 | #37 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
pazzesco! è proprio un lavoro del cavolo... lo avrei già lasciato da tempo, non fosse ormai una questione di principio...
io pensavo (come molti altri fanno) caricasse tutto il contenuto del mio txt, non il nome del file!! (e sua estensione) quindi io in fase di encrypt come input non dovrei dare il mio note.txt ma tutto il testo che voglio criptare? e se avessi un testo di 500 righe? il mio comando x cmd diventerebbe lunghissimo.... davvero una stupidaggine questo scritp... cmque ora provo come hai detto, grazie x la dritta! PS tu non saresti in grado di modificarlo in modo che carichi il contenuto di un txt, anzichè la stringa di testo?? |
31-03-2020, 11:17 | #38 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
si funziona come dici tu!
ma appunto non funziona con un contenuto del file txt ma appunto come dici, sul testo! quindi si può mettere ben poco. una parola, una frase al max. io pensavo si potesse immettere un file.txt con il suo contenuto, ma dopo varie prove ho capito ora come funziona... non mi stupisce che il tizio abbia abbandonato il progetto, che risale a 4-5 anni fa. x quello che fa era meglio non iniziarlo nemmeno! cmque grazie x il tuo aiuto. Ultima modifica di swan_x : 31-03-2020 alle 14:39. |
31-03-2020, 14:50 | #39 |
Senior Member
Iscritto dal: Jul 2010
Messaggi: 9326
|
Si certo che potrei modificare lo script per fare quello che chiedi, ma non ha senso perché il codice è di bassa qualità e ha molti altri problemi. Per sistemarlo ci vuole più tempo che a riscriverlo da zero.
Ad esempio, il parsing del testo lavora carattere per carattere, a gruppi di 8 bit. Di conseguenza quello script funziona solo per testi codificati in ASCII. Se il testo contiene caratteri Unicode verrà decodificato male. Ci sono molti altri script open source scritti molto meglio. Se vuoi rimanere in ambito python c'è questo, che è anche ben documentato. https://github.com/YoshinoTakigawa/steganography-1 Prende come parametri il file immagine e il file di testo. Fa esattamente quello che ti serve e lo fa molto meglio.
__________________
[CASE Cooler Master Silencio 550]-[MOBO Asrock Z68 Pro3]-[CPU Intel Core i7-2600K]-[RAM 8GB G.Skill]-[HDD 1TB Samsung + 320GB Samsung + 500GB Maxtor]-[VGA Zotac Geforce GTX 560 Ti]-[MASTERIZZATORE Samsung SH-S222AB][S.O. Windows 7 64 bit] |
31-03-2020, 18:03 | #40 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 1194
|
ti ringrazio molto x i tuoi consigli.
e in effetti quello script è davvero terribile. buono il tuo consiglio, però quello salva BMP. io vorrei un file finale jpg, il formato più diffuso e più leggero. a tal proposito trovo molto meglio e più facile hidensend (da te egregiamente riparato! non mi hai detto come...) oppure steghide, anche questo che funziona da cmd. python ora comincio a conoscerlo e non sarebbe un problema, a patto che faccia quello che vorrei! x usare python ed ottenere un BMP allora preferisco i due sopra, in cmd ancora più semplici da usare. comunque grazie per il tuo aiuto! un saluto |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:00.