Você pode não querer que seus scripts Python cruciais sejam submetidos a engenharia reversa por atores mal-intencionados. Veja como você pode protegê-lo.

Python é altamente legível e tem uso generalizado. Embora essa legibilidade incentive a colaboração, ela aumenta o risco de acesso não autorizado e uso indevido. Seus concorrentes ou atores mal-intencionados podem replicar seus algoritmos e lógica proprietária sem as devidas proteções. Isso afetará negativamente a integridade de seu software e a confiança de seus usuários.

A implementação de medidas de segurança robustas, como ofuscação e verificação de licença, fortalece seu software contra possíveis ameaças. A proteção de scripts Python não é apenas uma prática; é uma estratégia crítica para garantir a confidencialidade de suas inovações e manter a confiança de seus usuários no cenário digital.

Compreendendo Pyarmor

Pyarmor é uma biblioteca de linha de comando. Ele ajuda a proteger e ofuscar scripts e pacotes Python. Ele transforma o código Python original em uma forma mais difícil de entender, mantendo sua funcionalidade. O processo de ofuscação renomeia variáveis, funções e classes para nomes não descritivos. Ele também remove comentários e reestrutura o código. Isso dificulta a engenharia reversa, adulteração ou cópia do código.

instagram viewer

O Pyarmor pode proteger scripts Python individuais e pacotes inteiros e até adicionar verificação de licença ao seu código.

Instalando a Biblioteca Pyarmor

O Pyarmor está listado no Python Package Index (PyPI). Use o pip para instalá-lo executando o seguinte comando:

pip install pyarmor

Não é obrigatório instalar o Pyarmor no mesmo diretório que hospeda seu projeto. Você pode instalá-lo em qualquer lugar do seu computador e proteger qualquer script Python de qualquer diretório.

No entanto, se você deseja executar os scripts protegidos sem precisar instalar o Pyarmor na máquina de destino, é necessário instalá-lo no mesmo diretório que hospeda seu projeto. Isso ocorre porque os scripts protegidos conterão referências ao tempo de execução do Pyarmor, que precisará estar presente para executar os scripts.

Protegendo Scripts Python Individuais

Proteger scripts individuais usando o Pyarmor é simples. O seguinte script que soma dois números servirá como exemplo.

defadd_numbers(num1, num2):
result = num1 + num2
print("The sum of {} and {} is: {}".format(num1, num2, result))

# Example usage
num1 = float(input("Enter the first number: "))
num2 = float(input("Enter the second number: "))
add_numbers(num1, num2)

Use a linha de comando para navegar para o diretório no qual você instalou o Pyarmor. Em seguida, execute o seguinte comando para criptografar e ofuscar seu script. Substituir main.py com o nome do seu script.

pyarmor gen --output dist main.py

Depois de executar o comando, o Pyarmor cria uma nova pasta chamada dist.. Dentro dele reside seu script protegido.

Abra o script protegido para ver seu conteúdo.

A captura de tela acima mostra a saída após o Pyarmor ofuscar e criptografar o script de adição simples. Agora você não pode dizer o que o script faz apenas olhando para ele.

Para executar o script protegido, abra seu terminal ou prompt de comando e navegue até o local que contém o dist. diretório. Em seguida, use o seguinte comando para executar o script:

python dist/main.py

Substituir main.py com o nome do seu script. O script deve ser executado sem ofuscamento. Teste-o completamente para garantir que todas as funções estejam funcionando conforme o esperado.

Protegendo Pacotes Python Inteiros

Os pacotes podem conter alguns módulos ou centenas de módulos, dependendo de sua finalidade. Proteger cada módulo separadamente pode ser cansativo. Felizmente, o Pyarmor tem a capacidade de proteger um pacote inteiro sem que você precise especificar cada módulo separadamente.

Suponha que você tenha um pacote Python simples chamado sample_package com a seguinte estrutura:

sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py

Você pode crie quantos módulos quiser.

Para criptografar e ofuscar o pacote, abra o terminal ou o prompt de comando e navegue até o diretório no qual seu pacote reside. Em seguida, execute o seguinte comando:

pyarmor gen -O dist -r -i sample_package

Substituir sample_package com o nome do seu pacote. Este comando criptografará e ofuscará seu diretório de pacotes e salvará a saída protegida no dist. diretório. Use o pacote protegido como faria com qualquer outro pacote Python.

Por exemplo. Para usar o pacote de exemplo acima, crie um novo script dentro do dist. diretório:

from my_package import module1, module2

module1.say_hello()
module2.do_something()

Quando você executa o código, o pacote deve funcionar como antes de protegê-lo.

Controlando o acesso ao seu script

Você pode querer limitar o tempo que um usuário executa seu script. Por exemplo, durante o período experimental.

Para limitar a quantidade de tempo que o script é executado, use o seguinte comando ao ofuscar seu script.

pyarmor gen -O dist -e 30 main.py

Substituir 30 com o número de dias que você gostaria que o script estivesse ativo. Você também pode substituí-lo por uma data exata. Depois que os dias acabarem, o script expirará.

Você pode testar essa funcionalidade definindo uma data passada. Isso deve fazer com que a execução do script gere um erro. Use o seguinte comando para ofuscar o script com uma data expirada:

pyarmor gen -O dist -e 2022-01-01 main.py

Em seguida, execute o script protegido.

O erro mostra que a chave de licença expirou, portanto, o script não pode ser executado.

Equilibrando Segurança e Eficiência

Embora o Pyarmor ofereça mecanismos de ofuscação robustos para aumentar a segurança do seu código, é importante equilibrar entre as medidas de segurança e manter a eficiência e o desempenho do seu Programas. Você pode conseguir isso por:

  • Avaliação da necessidade de ofuscação: se o seu software envolve algoritmos proprietários, dados confidenciais ou lógica de negócios exclusiva, a ofuscação é altamente benéfica. No entanto, para scripts de código aberto com preocupações mínimas de propriedade intelectual, a compensação entre segurança e desempenho se inclina mais para a eficiência.
  • Avaliação do impacto no desempenho: a ofuscação apresenta sobrecarga de tempo de execução adicional devido às operações e transformações extras aplicadas ao código. Esse impacto é insignificante para scripts pequenos, mas torna-se mais perceptível para projetos maiores. Você deve avaliar cuidadosamente as implicações de desempenho da ofuscação e realizar testes para garantir que seu software permaneça responsivo e eficiente.
  • Realização de atualizações e manutenções regulares: atualize regularmente seu código ofuscado, licenças e mecanismos de segurança para ficar à frente de possíveis vulnerabilidades. Equilibre isso com a necessidade de minimizar as interrupções para seus usuários.

Alguém pode decifrar o código ofuscado?

O cracking de software refere-se ao ato de remover a proteção contra cópia ou os mecanismos de licenciamento de um aplicativo de software. Para obter acesso não autorizado a todas as suas funcionalidades sem pagar por isso. É importante observar que ofuscar seu software não o protege completamente contra crackers.

Com determinação e recursos suficientes, o código ofuscado pode ser quebrado. Este é o motivo pelo qual você deve realizar atualizações e manutenção regulares para corrigir quaisquer brechas suspeitas.