Como posso criptografar ou tornar meu script de shell ilegível?

8

Como posso criptografar ou embaralhar meu script de shell para que fique ilegível a olho nu? Qualquer um dos métodos seria aceitável, forneça etapas específicas.

    
por Ram 11.09.2013 / 06:37

5 respostas

11

SHC

Você pode tentar as etapas descritas neste site, intituladas: Como criptografar sua concha de concha Script no Linux usando SHC . Este artigo discute o uso de uma ferramenta chamada SHC - Shell Script Compiler .

Recursos de URL

Este é um executável que você terá que construir usando o gcc / g ++.

Uso

$ ./shc -f random.sh

Depois de executar seu script de shell, random.sh será convertido nesse arquivo:

-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x

Isso é infalível?

Não há uma boa análise do método usado pela ferramenta SHC, que mostra que ela não é muito strong e pode ser contornada se você souber o que está fazendo. O artigo foi postado no site linuxjournal.com, intitulado: Paranoid Penguin - Limitações do shc, um utilitário de criptografia da Shell .

OBSERVAÇÃO: Essas classes de ferramentas provavelmente são melhor descritas como ofuscadores.

    
por 11.09.2013 / 06:59
23

Se você quiser criptografar um script de shell, use GPG . Quem quiser executar o seu script, naturalmente, terá que descriptografá-lo primeiro.

Se você quiser que alguém possa executar o script, mas não o leia, esse é um problema completamente diferente, que não tem nada a ver com criptografia. É chamado de ofuscação .

Se você tem uma senha ou outras informações confidenciais nesse script, nenhuma quantidade de ofuscação vai escondê-lo. Mais cedo ou mais tarde, o script usará a senha para fazer algo e, nesse momento, a senha aparecerá com clareza para quem a procurar.

Se você quer esconder como o seu script funciona porque você tem medo de alguém copiar, esqueça. Ninguém se importa.

Se você quiser ocultar seu roteiro porque tem vergonha de sua qualidade, corrija-o.

Se você quer esconder como o seu script funciona porque você quer esconder o que ele faz, não é possível. Alguém pode ver seu script enquanto ele é executado e observar o que está fazendo.

Se você leu até aqui e ainda quer "criptografar" seu script, está interpretando mal algo importante. Não envie seu script para ninguém ou envie-o em texto simples.

    
por 12.09.2013 / 00:33
8

Entendi isso enquanto procurava na internet, cortesia de Claudio P.

  1. Escreva seu script (script-base.sh)

    #!/bin/sh 
    echo "Hello World" 
    
  2. Criptografe seu script (forneça uma senha):

    openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc 
    
  3. Escreva de Wrapper (script-final.sh):

    #!/bin/sh 
    openssl enc -d -aes-256-cbc -a -in script-enc | sh - 
    
  4. Execute "script-final.sh", insira a senha e o script será executado sem gravar o script de texto sem formatação no disco.

por 09.01.2015 / 11:50
0

Basicamente você pode ofuscar mas não compilar seu script. A simples razão é que scripts de shell são interpretados como comandos individuais que precisam ser executados um por um pelo sistema, e que você pode ver esses comandos conforme são executados um por um pelo sistema com o% sinalizadorsh -x (e talvez também o sinalizador -v)

Para a maioria dos programadores, isso será suficiente para entender o que está acontecendo.

Você pode ofuscar suas variáveis e fluxo geral se você quiser, mas você não pode ofuscar os comandos indvidual executados pelo seu programa - que para scripts de shell geralmente são todos deles.

A solução mais simples é provavelmente reescrever o script de shell em uma linguagem compilada como C.

    
por 12.09.2013 / 00:35
-1

tente enviar seu script para este site se desejar ocultá-lo da exibição pública.

enquanto muitos podem discordar da idéia de criptografar ou ofuscar o código fonte de um script escrito em uma linguagem interpretada, eu entendo porque as pessoas querem fazer isso.

como alguém que teve seu trabalho roubado muitas vezes, eu simplesmente não me importo se "obfuscação" ou "criptografia" é um tabu. contanto que meu script esteja protegido e funcione como antes da criptografia, estou bastante satisfeito. nunca mais vou permitir que alguém tire minhas idéias e corra com elas. e não, escrever meu script em uma linguagem compilada não é uma opção. Eu não sei como.

de qualquer forma, se você não quiser usar o site mencionado acima, tente a versão mais recente do shc. Eu acredito que eles o atualizaram no github para abordar as muitas preocupações de segurança que outros mencionaram. digite o seguinte no google " shc github " e você verá uma série de opções disponíveis que você pode experimentar.

boa sorte!

    
por 11.04.2017 / 15:55