
Python - Proteja Seu Arquivo .exe ou .py e ou Force o Download Direto do GitHub!
Se você tem um programa em Python convertido para .exe e deseja garantir que ele só seja executado quando baixado diretamente de um repositório GitHub, sem permitir que usuários o usem a partir de uma pasta local, temos uma solução simples para você!
O Problema
Às vezes, ao distribuir um arquivo .exe, é possível que o usuário baixe o arquivo e o execute a partir de sua própria pasta local, o que pode gerar problemas de segurança ou controle. Você gostaria de garantir que o arquivo .exe seja sempre executado a partir do seu repositório GitHub, ou de um link confiável, e impedir que ele funcione em locais não autorizados.
A Solução
Neste post, mostramos como implementar um script Python que assegura que o arquivo .exe só pode ser executado se estiver sendo obtido diretamente do GitHub. Caso contrário, o programa será bloqueado e não executado. A ideia é que o script do usuário baixe o arquivo diretamente do seu repositório, garantindo a origem do arquivo.
Como Funciona?
Verificação do Caminho de Execução: O arquivo .exe verifica se ele está sendo executado de um caminho que não seja o GitHub. Se o programa estiver em uma pasta local, ele será imediatamente bloqueado.
Forçar o Download do GitHub: O script Python que acompanha o .exe irá garantir que o arquivo seja baixado diretamente de seu repositório no GitHub, antes de ser executado.
Passo a Passo: Como Usar o Script
1. Verificação do Caminho no Arquivo .exe
No código Python que você compila para .exe, você vai adicionar a seguinte verificação para garantir que ele só funcione quando baixado do GitHub:
import os
import sys
# Caminho da URL do GitHub onde o arquivo deve estar
url_esperada = "https://github.com/usuario/repositorio/programa.exe"
def verificar_execucao():
# Verifica o diretório onde o programa foi executado
caminho_atual = os.path.abspath(sys.argv[0])
# Checa se o caminho contém a URL ou o diretório do GitHub
if "github.com" not in caminho_atual:
print("Este programa só pode ser executado diretamente do GitHub. Execução bloqueada.")
sys.exit(1) # Finaliza o programa
# Chama a função ao iniciar o programa
verificar_execucao()
print("Programa executado com sucesso!")
2. Script Python para Baixar o Arquivo .exe do GitHub
Antes de rodar o arquivo .exe, você pode usar um simples script Python para garantir que o programa seja baixado diretamente do GitHub:
import requests
# URL do GitHub onde o arquivo .exe está armazenado
url_programa = "https://github.com/usuario/repositorio/raw/main/programa.exe"
def baixar_programa():
resposta = requests.get(url_programa)
if resposta.status_code == 200:
with open("programa.exe", "wb") as f:
f.write(resposta.content)
print("Programa baixado com sucesso!")
else:
print("Erro ao baixar o programa.")
# Baixa o arquivo antes de executá-lo
baixar_programa()
# Agora o arquivo 'programa.exe' pode ser executado
import subprocess
subprocess.run(["programa.exe"])
Vantagens
Segurança: Impede que o arquivo seja usado em locais não autorizados (como uma pasta local), garantindo que ele sempre venha de uma fonte confiável.
Controle: Você tem total controle sobre a distribuição do arquivo .exe, já que ele só pode ser baixado e executado do seu repositório GitHub.
Facilidade de Implementação: O código é simples e fácil de adaptar às suas necessidades.
Limitações
Dependência de Conexão à Internet: Como o arquivo precisa ser baixado diretamente do GitHub, é necessário que o usuário tenha acesso à internet.
Segurança: Embora a verificação do caminho ajude a garantir que o arquivo seja executado de locais controlados, ela pode ser contornada por alguém com conhecimento técnico avançado.
Conclusão
Essa solução é uma maneira simples e eficiente de garantir que seu programa .exe seja executado apenas quando baixado diretamente de um repositório GitHub, evitando que ele seja utilizado de maneira indevida a partir de pastas locais. Com esses passos, você pode manter um controle maior sobre o uso do seu software e garantir a integridade do processo de download.
Experimente o código e ajuste conforme necessário para sua aplicação!
Nenhum comentário
Comente só assim vamos crescer juntos!
Observação: somente um membro deste blog pode postar um comentário.