Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

1. Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

shoujo
shoujo

(usa Slackware)

Enviado em 08/06/2016 - 16:59h

Olá, passei uns dias programando e aprendendo mais coisas no python..
Meu software já está quase pronto, mas e agora? O que fazer.. Python como todos sabem é uma linguagem 100% interpretada e aberta, e a forma com que meu software foi feita, deixa tudo exposto :( tudo editável, até a interface gráfica..
Estou sem idéias do que fazer..
Se eu fico com o software só pra mim mesma... Bom eu queria passar ele pra alguns amigos, mas com o código exposto assim eu não acho seguro.


  


2. Re: Estou terminando de criar meu software, é agora o que fazer?

M.
XProtoman

(usa Fedora)

Enviado em 08/06/2016 - 21:43h

Boa noite a todos,

Aguardar mais respostas.

Infelizmente não tenho grande experiência com distribuição, uma ideia é compilá-lo e ainda ativar otimizações.

Provavelmente ele irá gerar os .pyo, no caso você precisaria apenas distribuí-los.

Não sei se a otimização pode afetar compatibilidade, em qualquer circunstância você pode também optar por não ativar as otimizações e distribuir o .pyc que é gerado.

Infelizmente não tenho os comandos, parece que entre as soluções existe um módulo dentro do Python3 chamado "compileall" que é responsável por isso.

Eu tentaria compilar com otimização por segurança.


3. Re: Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

shoujo
shoujo

(usa Slackware)

Enviado em 11/06/2016 - 06:11h

Uma coisa eu não entendo.. No windows inventaram o tal py2exe e cxfreeze e tals.. Mas python no windows é muito bugado..
Já no linux que o python é bom, não existe uma ferramenta pra compilar? Porque isso?
Tudo bem fazer software livre, mas um programa precisa ser mesmo um arquivo de texto editavel facilmente desse jeito? O.O
Não vejo liberdade nenhuma acontecendo ai, quer dizer que eu me esforço, crio um programa legal, ai depois uma pessoa qualquer que nem sabe programar, vai lá edita o nome do programa e diz que é dela, só pq o programa eram arquivos de texto e o próprio codigo fonte era o executavel? Triste isso não?


4. Re: Estou terminando de criar meu software, é agora o que fazer?

Pedro
pehecoro

(usa Arch Linux)

Enviado em 11/06/2016 - 09:42h

Sem dúvidas é triste =/ Apesar de brincar com python há um tempinho, nem cheguei a me preocupar com isso.
E pelo pouco que li, parece que a linguagem tem um propósito que não se preocupa neste ponto, por isso deve-se ficar atento a vários aspectos do software, que quer desenvolver, antes de escolher a linguagem que vai trabalhar.
Encontrei este link: http://wiki.python.org.br/OcultandoCodigoPython
Lá tem o comando para gerar o bytecode.
Infelizmente, há engenharia reversa para "tudo" (se não tem, sempre há um ninja que lê até binários haha), porém entendo que se fosse um pouco difícil já seria de grande utilidade.
Uma outra solução, porém humorística, seria você fazer um código bem ruim(o que o python força a não fazer na própria sintaxe), que ninguém conseguiria ler para modificar, e no máximo só traria mais bugs. haha, brincadeiras a parte, mas boa sorte! Quem sabe uma migração de linguagem não seja a triste solução?


5. Re: Estou terminando de criar meu software, é agora o que fazer?

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/06/2016 - 10:50h

shoujo escreveu:

[...]
Tudo bem fazer software livre, mas um programa precisa ser mesmo um arquivo de texto editavel facilmente desse jeito? O.O
Não vejo liberdade nenhuma acontecendo ai, quer dizer que eu me esforço, crio um programa legal, ai depois uma pessoa qualquer que nem sabe programar, vai lá edita o nome do programa e diz que é dela, só pq o programa eram arquivos de texto e o próprio codigo fonte era o executavel? Triste isso não?


E qual a diferença em pegar um programa compilado, renomeá-lo e dizer que é meu? Indo mais além: eu posso usar um disassembler para modificar um software fechado.

E não só o software; músicas, fotografias, documentos, tudo é "modificável", a partir do ponto que você manda para a rede, toda e qualquer modificação torna-se possível.

Em relação ao código fonte, você pode optar por uma linguagem de programação que não seja de script, como C/C++, C# ou Java, ou achar uma forma de "compilar" o script para esconder o fonte, para que outras pessoas não vejam o seu trabalho.

* Em Shell Script existe o shc
* Em Python, temos o módulo py_compile

Em python:
python -m py_compile <arquivo_fonte.py> 


Vai ser gerado na mesma pasta o arquivo compilado .pyc, que pode ser executado pelo próprio python.

--
Linux User: #596371


6. Re: Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

shoujo
shoujo

(usa Slackware)

Enviado em 13/06/2016 - 23:17h

ru4n escreveu:

shoujo escreveu:

[...]
Tudo bem fazer software livre, mas um programa precisa ser mesmo um arquivo de texto editavel facilmente desse jeito? O.O
Não vejo liberdade nenhuma acontecendo ai, quer dizer que eu me esforço, crio um programa legal, ai depois uma pessoa qualquer que nem sabe programar, vai lá edita o nome do programa e diz que é dela, só pq o programa eram arquivos de texto e o próprio codigo fonte era o executavel? Triste isso não?


E qual a diferença em pegar um programa compilado, renomeá-lo e dizer que é meu? Indo mais além: eu posso usar um disassembler para modificar um software fechado.

E não só o software; músicas, fotografias, documentos, tudo é "modificável", a partir do ponto que você manda para a rede, toda e qualquer modificação torna-se possível.

Em relação ao código fonte, você pode optar por uma linguagem de programação que não seja de script, como C/C++, C# ou Java, ou achar uma forma de "compilar" o script para esconder o fonte, para que outras pessoas não vejam o seu trabalho.

* Em Shell Script existe o shc
* Em Python, temos o módulo py_compile

Em python:
python -m py_compile <arquivo_fonte.py> 


Vai ser gerado na mesma pasta o arquivo compilado .pyc, que pode ser executado pelo próprio python.

--
Linux User: #596371


Infelizmente, ou felizmente, python é uma linguagem que além de eu gostar muito, foi a unica linguagem pra linux que me atendeu.
Eu so sabia programar em java, e tinha uma pequena noção de python, mas java não funcionou a função que eu precisava. C e C++ são linguagens muito avançadas pra mim..
Eu consegui compilar os .pyc, ainda assim a interface gráfica fica exposta, pois uso arquivos .ui, uso qt como interface, vou continuar procurando uma forma de juntar eles.


7. Re: Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/06/2016 - 00:51h

100% de segurança não existe.
O que você pode fazer é transformar o programa em bytecodes e depois revirar a internet em busca de disassemblers.

Geralmente disassemblers não guardam nomes específicos de função.
Eles dão uma parametrização bruta tipo função23() ou variavel04.

Dai para o cara entender o que acontece e renomear tudo estaria fazendo um enorme esforço e trabalho.
Poeticamente talvez até merecesse o que deseja obter depois de tudo.
Apenas digo, tente disassembler. Se o resultado for diretamente legível, então sem jeito.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden[/quote]


8. Re: Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

shoujo
shoujo

(usa Slackware)

Enviado em 14/06/2016 - 01:20h

Infelizmente eu tenho muito azar com programação. Sempre que tento só consigo aprender linguagens interpretadas: Python, java, c# só aprendi linguagens interpretadas. Pelo que eu vi falar todas são faceis de disassembler no binário, e Python nem tem binário.
Para Linux, tirando o c e c++ que é obvio que são os mais usados, o que resta? Python e perl? Ou tem outras? Descartando tb java e mono/c#


9. Re: Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/06/2016 - 01:27h

shoujo escreveu:

Infelizmente eu tenho muito azar com programação. Sempre que tento só consigo aprender linguagens interpretadas: Python, java, c# só aprendi linguagens interpretadas. Pelo que eu vi falar todas são faceis de disassembler no binário, e Python nem tem binário.
Para Linux, tirando o c e c++ que é obvio que são os mais usados, o que resta? Python e perl? Ou tem outras? Descartando tb java e mono/c#


Python permite transformar o código de script em bytecode.
Eu só não sei se o interpretador de bytecode possui estrutura de VM como o Java possui.
Até Perl permite bytecode, se não me engano.

Sobre outras linguagens interpretadas, por exemplo, TCL com a interface dada pelo TK.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden[/quote]


10. Re: Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

shoujo
shoujo

(usa Slackware)

Enviado em 14/06/2016 - 01:32h

alem de c e c++ quais outras linguagens compiladas no Linux?


11. Re: Estou terminando de criar meu software, é agora o que fazer?

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/06/2016 - 01:41h

shoujo escreveu:

alem de c e c++ quais outras linguagens compiladas no Linux?


- D.
- Fortran
- Pascal
- COBOL
- Algumas outras como Haskell e Eiffel mas não sei se são compiladas.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden[/quote]


12. Re: Estou terminando de criar meu software, é agora o que fazer? [RESOLVIDO]

Brian Chalega da Silva
brian_ch

(usa Arch Linux)

Enviado em 14/06/2016 - 12:28h

ru4n escreveu:

shoujo escreveu:

[...]
Tudo bem fazer software livre, mas um programa precisa ser mesmo um arquivo de texto editavel facilmente desse jeito? O.O
Não vejo liberdade nenhuma acontecendo ai, quer dizer que eu me esforço, crio um programa legal, ai depois uma pessoa qualquer que nem sabe programar, vai lá edita o nome do programa e diz que é dela, só pq o programa eram arquivos de texto e o próprio codigo fonte era o executavel? Triste isso não?


E qual a diferença em pegar um programa compilado, renomeá-lo e dizer que é meu? Indo mais além: eu posso usar um disassembler para modificar um software fechado.

E não só o software; músicas, fotografias, documentos, tudo é "modificável", a partir do ponto que você manda para a rede, toda e qualquer modificação torna-se possível.


Exatamente! O que você pode fazer é colocar uma licença que só permita os usos que você queira permitir (p. ex. impedindo que as pessoas modifiquem o programa e/ou que estudem o código)*.

Fazendo uma analogia, não há maneira viável de garantir que você não vá ser assaltada, mas caso for, há leis para punir quem infringiu os seus direitos.

Sugiro que pesquise um template para software de código fechado, e de qualquer modo, caso você realmente goste de programação, não deixe que isso te desanime e mantenha o foco nos estudos.

Mas enfim, como dizem alguns personagens dos gibis do Tex: "Não enfaixe a cabeça antes que ela quebre." :)


*Nota: Nos EUA e acredito que aqui também, tecnicamente mesmo sem licença já há copyright, a pessoa não pode sair fazendo o que quer só porque o autor não colocou uma licença, mas é muito mais seguro especificar alguma.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts