Jump to content

Segurança de Python em Exe


ScoutDavid
 Share

Recommended Posts

Boas noites a todos, estive a ler alguns artigos sobre py2exe.

Descobri que é muito fácil (não para o Homo Sapiens mas sim para o Homo Hackiens) de arranjar a source code de um ficheiro Python bundled em Exe.

Ao contrário de C, em que só há um ficheiro .c e um ficheiro .exe (usando DevC++ por exemplo), em Python e especialmente quando é usado o wxPython, são criados uns 10 DLLs e vários ficheiros, pelo menos 2 exes que, quando nas mãos de um Python Master são portas abertas ao nosso código.

Por isso recomendo que tenham cuidado com programas em Exe, se calhar deviam pô-los todos dentro de um setup.exe para ser ainda mais difícil.

Bom trabalho colegas!

Link to comment
Share on other sites

Gostei desta parte 👍 :

(não para o Homo Sapiens mas sim para o Homo Hackiens)

Agora sobre o assunto em si, Python é uma linguagem interpretada, pelo que é suposto o código ser "avaliado" para ser executado logo de seguida, ao contrário de C, que é uma linguagem compilada, em que o código é "avaliado" e convertido para "linguagem máquina" para depois poder ser executado. Ora, se a o código é para ser executado logo (isto é, assim que é analisado), não faz grande sentido ser compilado, e como tal, o máximo que se faz é converter o código que está escrito para algo mais rápido e fácil de executar do que o código original: bytecode. O código apesar de estar simplificado, continua a ser "fácil" de compreender e seguir, e consegues converte-lo para código "normal". Podes até perder nomes de variáveis, mas acabas por ter código equivalente ao original. Pôr .exe's dentro de .exe's não protege mais o código, apenas torna mais trabalhoso chegar até ele. Se o objectivo é manter o código seguro, Python não é a linguagem a escolher, o máximo que podes fazer é ofuscar o código (dar nomes completamente random a variáveis e funções, eliminar whitespace não necessário, remover comentários, etc).

Em relação a um programa em C dar apenas um .exe, isso depende de como as bibliotecas são linkadas...

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Gostei desta parte 👍 :

Agora sobre o assunto em si, Python é uma linguagem interpretada, pelo que é suposto o código ser "avaliado" para ser executado logo de seguida, ao contrário de C, que é uma linguagem compilada, em que o código é "avaliado" e convertido para "linguagem máquina" para depois poder ser executado. Ora, se a o código é para ser executado logo (isto é, assim que é analisado), não faz grande sentido ser compilado, e como tal, o máximo que se faz é converter o código que está escrito para algo mais rápido e fácil de executar do que o código original: bytecode. O código apesar de estar simplificado, continua a ser "fácil" de compreender e seguir, e consegues converte-lo para código "normal". Podes até perder nomes de variáveis, mas acabas por ter código equivalente ao original. Pôr .exe's dentro de .exe's não protege mais o código, apenas torna mais trabalhoso chegar até ele. Se o objectivo é manter o código seguro, Python não é a linguagem a escolher, o máximo que podes fazer é ofuscar o código (dar nomes completamente random a variáveis e funções, eliminar whitespace não necessário, remover comentários, etc).

Em relação a um programa em C dar apenas um .exe, isso depende de como as bibliotecas são linkadas...

Claro, se for a usar Headers e numero de ficheiros>1 não e a mesma coisa que 1 ficheiro apenas.

Sim, torna mais trabalhoso mas isso ja e mt bom.

Sim, deixar whitepsaces trocar a ordem do codigo e nomes random a variaveis e funcoes e optimo (obrigado!) mas sem nunca 'desoptimizar' o codigo!

Link to comment
Share on other sites

Claro, se for a usar Headers e numero de ficheiros>1 não e a mesma coisa que 1 ficheiro apenas.

Podes perfeitamente usar n bibliotecas e teres n ficheiros .c e ficar apenas com um executável.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.