Proteja seus scripts Python contra engenharia reversa com Pyarmor

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.

MUO VÍDEO DO DIA

ROLE PARA CONTINUAR COM O CONTEÚDO

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.

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 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.

  Como excluir permanentemente sua conta Crunchyroll

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.

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


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 até o diretório no qual você instalou o Pyarmor. Em seguida, execute o seguinte comando para criptografar e ofuscar seu script. Substitua main.py pelo 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 diretório dist. Em seguida, use o seguinte comando para executar o script:

 python dist/main.py 

Substitua main.py pelo 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.

  Como transmitir o tempo da pipoca para a Smart TV

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 criar 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 

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

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

 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 

Substitua 30 pelo número de dias que você gostaria que o script ficasse 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.

  Como obter as melhores impressões de fotos de impressoras de farmácias

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 aprimorar a segurança do seu código, é importante equilibrar as medidas de segurança e manter a eficiência e o desempenho do seu software. Você pode conseguir isso por:

  • Avaliando a 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.
  • Avaliando o 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ção 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.