Compilando Bash: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 7: | Linha 7: | ||
* Ele não é a prova de '''NSA (National Security Agency)'''. Não possui uma criptografia de alto nível mas ajuda bastante na tarefa. | * Ele não é a prova de '''NSA (National Security Agency)'''. Não possui uma criptografia de alto nível mas ajuda bastante na tarefa. | ||
* Não gera '''binários independentes'''. Você continuará dependendo do shell e de todos os programas que ele chama. | * Não gera '''binários independentes'''. Você continuará dependendo do shell e de todos os programas que ele chama. | ||
* O SHC precisa ter no topo do arquivo o '''shebang''', a informação que aponta o shell que | * O '''[https://neurobin.org/projects/softwares/unix/shc/ SHC (Shell Script Compiler)]''' precisa ter no topo do arquivo o '''shebang''', a informação que aponta o shell que será usado, por exemplo: '''#!/usr/bin/bash''' ou '''#!/usr/bin/sh''' | ||
* O '''SHC''' gera um '''código em fonte C do shell script''', que na sequência é compilado. Sim você precisa ter um compilador C para isso. No processo de execução, o programa é desencriptado e '''executado como um bash normal'''; por isso não é um binário independente. | |||
* Você pode colocar um '''prazo de validade do binário''' e uma mensagem para quem executar o programa após vencer a validade. Ex: '''"Programa expirado contacte fulano"'''. | |||
* O binário fica bem maior que o seu arquivo shell script. | |||
* Não pense que a execução do seu novo binário será muito mais rápido que o seu shell, porque como eu disse, o processo é rodado como shell após ser desencriptado. | |||
== Instalação == | |||
Como é de hábito aqui, faremos isso no Debian, nesse caso a versão 11 (Bullseye). Você pode instalar o SHC em qualquer distribuição GNU/Linux de sua preferência, só precisará checar se já existe um pacote para ele ou se vai precisar compilar o fonte e logicamente ter um compilador C também instalado para isso. | |||
apt install shc build-essential | |||
== Utilizando o SHC == |
Edição das 14h07min de 5 de fevereiro de 2023
Introdução
Em algumas situações você pode querer que seu código escrito em shell script seja compilado por diversos motivos como por exemplo: esconder alguma informação sigilosa que está dentro do script, uma credencial de acesso à base de dados, ou porque você não quer que alguém altere o código sem a sua permissão, ou porque você não quer entregar o "ouro" da sua consultoria. Enfim, é uma maneira de esconder o seu código dos olhos alheios. Mas existem algumas coisas que temos que ter em mente quando formos usá-lo:
- Ele não é a prova de NSA (National Security Agency). Não possui uma criptografia de alto nível mas ajuda bastante na tarefa.
- Não gera binários independentes. Você continuará dependendo do shell e de todos os programas que ele chama.
- O SHC (Shell Script Compiler) precisa ter no topo do arquivo o shebang, a informação que aponta o shell que será usado, por exemplo: #!/usr/bin/bash ou #!/usr/bin/sh
- O SHC gera um código em fonte C do shell script, que na sequência é compilado. Sim você precisa ter um compilador C para isso. No processo de execução, o programa é desencriptado e executado como um bash normal; por isso não é um binário independente.
- Você pode colocar um prazo de validade do binário e uma mensagem para quem executar o programa após vencer a validade. Ex: "Programa expirado contacte fulano".
- O binário fica bem maior que o seu arquivo shell script.
- Não pense que a execução do seu novo binário será muito mais rápido que o seu shell, porque como eu disse, o processo é rodado como shell após ser desencriptado.
Instalação
Como é de hábito aqui, faremos isso no Debian, nesse caso a versão 11 (Bullseye). Você pode instalar o SHC em qualquer distribuição GNU/Linux de sua preferência, só precisará checar se já existe um pacote para ele ou se vai precisar compilar o fonte e logicamente ter um compilador C também instalado para isso.
apt install shc build-essential