Come posso crittografare o rimescolare il mio script shell in modo che sia illeggibile ad occhio nudo? Entrambi i metodi sarebbero accettabili, si prega di fornire passaggi specifici.
Come posso crittografare o rimescolare il mio script shell in modo che sia illeggibile ad occhio nudo? Entrambi i metodi sarebbero accettabili, si prega di fornire passaggi specifici.
Risposte:
Puoi provare i passaggi descritti in questo sito Web, intitolato: Come crittografare lo script Bash Shell su Linux usando SHC . Questo articolo discute l'uso di uno strumento chiamato SHC - Shell script Compiler .
Questo è un eseguibile che dovrai compilare usando gcc / g ++.
$ ./shc -f random.sh
Una volta eseguito, lo script della shell random.sh
verrà convertito in questo file:
-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x
No, esiste una buona analisi del metodo utilizzato dallo strumento SHC che mostra che non è eccessivamente forte e può essere aggirato se sai cosa stai facendo. L'articolo è stato pubblicato sul sito Web linuxjournal.com, intitolato: Paranoid Penguin - Limitazioni di shc, un'utilità di crittografia della shell .
NOTA: queste classi di strumenti sono probabilmente meglio descritte come offuscatori.
fg
per portarlo in primo piano e poi ha funzionato bene. Sto ancora cercando alternative.
Se vuoi crittografare uno script di shell, usa GPG . Chiunque voglia eseguire il tuo script dovrà ovviamente decifrarlo prima.
Se vuoi che qualcuno sia in grado di eseguire lo script ma non di leggerlo, questo è un problema completamente diverso che non ha nulla a che fare con la crittografia. Si chiama offuscamento .
Se hai una password o altre informazioni riservate in quello script, nessuna quantità di offuscamento lo nasconderà. Prima o poi lo script utilizzerà la password per fare qualcosa e a quel punto la password apparirà chiaramente a chiunque la cerchi.
Se vuoi nascondere come funziona la tua sceneggiatura perché temi che qualcuno la copi, dimenticala. A nessuno importa.
Se vuoi nascondere la tua sceneggiatura perché ti vergogni della sua qualità, correggila.
Se vuoi nascondere come funziona la tua sceneggiatura perché vuoi nascondere ciò che fa, non è fattibile. Qualcuno può guardare la tua sceneggiatura mentre viene eseguita e guardare cosa sta facendo.
Se hai letto così lontano e vuoi ancora "crittografare" la tua sceneggiatura, stai fraintendendo qualcosa di importante. Non inviare lo script a nessuno o inviarlo in testo semplice.
Ho capito mentre cercavo Internet, per gentile concessione di Claudio P.
Scrivi il tuo script (script-base.sh)
#!/bin/sh
echo "Hello World"
Crittografa il tuo script (inserisci una password):
openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc
Scrivi de Wrapper (script-final.sh):
#!/bin/sh
openssl enc -d -aes-256-cbc -a -in script-enc | sh -
Esegui "script-final.sh", inserisci la password e lo script verrà eseguito senza scrivere lo script in chiaro sul disco.
Fondamentalmente puoi offuscare ma non compilare la tua sceneggiatura. La semplice ragione è che gli script di shell sono interpretati come singoli comandi che devono essere eseguiti uno ad uno dal sistema e che questi comandi possono essere visualizzati uno dopo l'altro dal sistema con il sh -x
flag (e forse anche -v bandiera)
Per la maggior parte dei programmatori sarà sufficiente capire cosa sta succedendo.
È possibile offuscare le variabili e il flusso generale se lo si desidera, ma non è possibile offuscare i singoli comandi eseguiti dal programma, che per gli script di shell di solito sono tutti .
La soluzione più semplice è probabilmente riscrivere lo script della shell in un linguaggio compilato come C.
prova a inviare il tuo script a questo sito se desideri nasconderlo dalla vista pubblica.
mentre molti potrebbero non essere d'accordo con l'idea di crittografare o offuscare il codice sorgente di uno script scritto in un linguaggio interpretato, capisco perché la gente vuole farlo.
come qualcuno a cui è stato rubato il lavoro molte volte, semplicemente non mi interessa se "offuscamento" o "crittografia" è un tabù. fintanto che il mio script è protetto e funziona come prima della crittografia, sono abbastanza contento. mai più permetterò a qualcun altro di prendere le mie idee e correre con essa. e no, scrivere la mia sceneggiatura in un linguaggio compilato non è un'opzione. non so come.
comunque, se non si desidera utilizzare il sito di cui sopra, provare l'ultima versione di shc. Credo che lo abbiano aggiornato in github per affrontare le molte preoccupazioni di sicurezza che altri hanno menzionato. digita quanto segue in " shc github " di Google e vedrai una serie di opzioni disponibili che puoi provare.
in bocca al lupo!