• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

djthyrax

[Discussão] Ofuscadores - Será que vale a pena usar?

92 mensagens neste tópico

No seguimento ali do tópico do Nazgulled que foi bloqueado:

Em que situações acham que vale a pena usar um ofuscador?

Se acham que nunca vale a pena, porquê acham tal coisa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho este tópico completamente desnecessário por uma simples razão. Vais ter respostas dos mesmos que responderam no meu tópico a quererem impingir o seu pensamento sobre o assunto sem se quer terem a decência de tentar entender os diferente pontos de vistas diferentes... Eu nem se quer começo por me repetir mais uma vez, é que não vale a pena.

Só vou dizer uma cena que nem me tinha passado pela cabeça ate ler certas coisas que vi no link acima e que acho que basta para se querer usar um ofuscador, claro que tudo depende do fim. Resumidamente, segurança. Sim, o código ofuscado não é impossível de fazer reverse engineering mas o processo irá certamente ser mais difícil. Imaginem que fazem um programa qualquer muito importante e sem querer, deixaram lá ficar um bug que quebra de tal maneira a segurança que se torna um bug critico. Um Zé qualquer que nem percebe muito de programação poderia olhar para o código e facilmente ver o erro e depois brincar com ele fazendo danos graves, se o código estiver ofuscado, já não o vai ver assim tão facilmente e provavelmente nunca o verá a não ser que o seu objectivo seja mesmo esse, procura falhas de segurança, mas se não for, pode-se muito bem prevenir que certas falhas de segurança sejam encontradas por acaso por alguém que queira tirar partido delas para danificar o sistema. É uma questão de prevenção apenas e não de esconder o código aos olhos de todos...

Esta é uma das razões das várias que existem...

Cada caso é um caso e há casos em que é preferível ter o código ofuscado para dificultar o seu entendimento a certas pessoas e não de o esconder totalmente para todos. Aprendam a perceber as diferenças e as finalidades do código e a quem se destina antes de terem a mania que só o que vocês acham do assunto está certo.

@djthyrax

Para mim, o tópico foi fechado porque esta discussão não vai dar a lado nenhum porque há certos utilizadores que enfim... Uma coisa é opinar e ter as suas ideias e aceitar as opiniões dos outros tendo uma discussão saudável, outra coisa é ter a mania que só eles é que tão certos e as opiniões dos outros erradas que foi o que aconteceu no outro tópico.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho este tópico completamente desnecessário por uma simples razão. Vais ter respostas dos mesmos que responderam no meu tópico a quererem impingir o seu pensamento sobre o assunto sem se quer terem a decência de tentar entender os diferente pontos de vistas diferentes... Eu nem se quer começo por me repetir mais uma vez, é que não vale a pena.

O objectivo deste tópico é continuar aquela discussão que estava a acontecer no teu tópico sem o sujar mais com off-topic. Afinal de contas, foi essa a razão de ser fechado o teu tópico. :)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Á parte do outro tópico que foi ofuscado (eh eh é so uma piada não levem a mal) por opiniões e contraopiniões que nunca mais vão acabar. Vale sempre a pena usar um ofuscador e o motivo é aquele mais basico de todos: o que é meu é meu e eu so dou se quizer. ninguem tem o direito de simplesmente pegar. mas já que vão pegar ao menos que tenham alguma dificuldade em entender.

fiquem bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que por vezes pode ser útil, em especial se se fornece um serviço grátis, e de boa qualidade.. é uma boa maneira evitar rip's, sendo esse software grátias era um bocado mau..

Exemplo, devido ao facto de esta versão (SMF 1.1.4) fornecer o código que gere a SMFCookie, é que é tão fácil fazer cookie injection nestes mesmo SMF

é um abs+crc32, juntamente com  mod de 1000, de dois dado acessíveis de qualquer utilizador, major .. major falha de segurança, que ainda não me dei ao trabalho de reportar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que por vezes pode ser útil, em especial se se fornece um serviço grátis, e de boa qualidade.. é uma boa maneira evitar rip's, sendo esse software grátias era um bocado mau..

Se não implementasses os algoritmos à mão (ou seja, se usasses apenas alias), a segurança era =. Não é através da obscuridade que o sistema se torna mais seguro. :(
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu também não especifiquei os métodos de utilização, mas pode contudo ajudar a segurança se bem implementado  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Apetece-me usar um ofuscador para no dia seguinte a uma noite bem bebida e programada ao acordar tentar saber como fiz... nao posso?

Cada um sabe o que quer fazer do código... até pode pintar as bolinhas cor de rosa... nem sei porque martelam tanto na questao de esconder o codigo ou nao...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Cada um sabe o que quer fazer do código... até pode pintar as bolinhas cor de rosa... nem sei porque martelam tanto na questao de esconder o codigo ou nao...

Imagina que fazes um site para um cliente, mas não queres que outro gajo qq vá lá e roube o teu trabalho de manutenção. Uma forma de dificultar essa situação é ofuscar o código.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Outra forma é ter uma continha de revenda num servidor qualquer, dares acesso só a parte admin do site e 'oferecer o hosting' pela manutenção...

Isso dos ofuscadores tem muito que se lhe diga... devem ser usados para ter sempre uma segurança... mas quem quer descubrir o código descobre e pronto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Duas perguntas.

1- Porque é que isto está na secção de PHP? Acho que fazia mais lógica na discussão geral, já que esta questão serve para qualquer linguagem e não só PHP.

2- Qual é o problema de se usar ofuscadores? A aplicação fica mais lenta? A performance da mesma cai?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que não devia estar na secção geral por várias razões. Primeiro isto começou num tópico de PHP e se fores a ver bem, quem costuma criticar a ofuscação é mesmo a linguagens como PHP que tem o código à mostra.

Por exemplo, C#, compilas o código para um executável que ao distribuires esse ficheiro não distribuis o código. Sim, tem a framework por trás e podes "descompilar" mas não nunca será a mesma coisa do que teres o código original (acho que já te vi a responderes posts de C# portanto acho que sabes do que falo). No caso de C ou C++, não tem nenhuma framework e ao compilares, compilas para um executável que não te permite ter acesso ao código original, mas vais ter código assembly o que não é a mesma coisa. E com PHP não é assim, distribuis a aplicação, tens distribuir obrigatoriamente o código.

O que quero dizer é que é um bocado diferente discutir ofuscação em código compilado de interpretado como no caso do PHP (nem todos os casos são iguais).

Isto para mim não deixam de ser manias, se desde que o PHP existe o código fosse ofuscado por natureza e não fosse interpretado, quantos desses que criticam a ofuscação em PHP se iriam lembrar de dizer que o código não devia ser ofuscado e apresentar argumentos válidos para tal acontecer e defenderem isso com todos os dentes que têm? Provavelmente nenhum... O que me faz dizer que este assunto não tem interesse nenhum ser discutido com pessoas dessas, que têm a mania serem donos da razão e que só o que eles dizem é que esta certo, quando os argumentos contrários também o estão e eles negam isso.

Quanto a pergunta 2, eu acho que não há problema nenhum e acho que não fica mais lenta nem afecta a performance, vai dar ao mesmo, isto no caso do PHP, no caso dos "packers" que existem pa JavaScript a coisa já é diferente, mas no PHP penso que não faz diferença significativa.

A verdadeira diferença nesta discussão, para mim, é a seguinte:

- Aqueles que defendem que não há problema nenhum na ofuscação de aplicações PHP conseguem argumentar o porquê disso e conseguem ver que há situações em que será útil tal ofuscação. Mas ao mesmo tempo entendem os pontos de vista contrários e também os aceitam.

- Aqueles que defendem que a ofuscação é muito mau só conseguem argumentar que é mau e que é isto e aquilo e não entendem (ou não querem entender) os pontos de vista dos que dizem o contrário. E são vidrados para o que pensam negando sempre os argumentos contrários, achando-se sempre os donos da razão.

Conclusão, isto não vai a lado nenhum...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso uma das coisas que me irrita um pouco é este tipo de peruntas levar sempre com a mesma resposta.

Um gajo pergunta: "como é que protejo o meu código?"

Leva logo com uma resposta: "proteger o código para quê?"

E de seguida com esta: "ah e tal o código é sempre acessível, basca fazer um decompile"

Eu acho que as afirmações anteriores não fazem grande sentido.

Considerar que olhar para código assembly gerado por uma máquina é tão inteligivel como código C ou Java, ou mesmo partir do principio que codigo obtido por decompile é facil de entender e é o mesmo que aceder ao código original, são opiniões com as quais discordo plenamente.

E isto digo eu que até tenho um certo fascinio por reverse engineering e outros hacks relacionados.

Mas vou tentar lançar um argumento que pode ser que possa ser entendido:

Não será válido um programador tentar DIFICULTAR o acesso ao código?

Quero dizer: pode não ser crítico o escrutíneo do código, mas ainda assim pode ser inconveninete.

Não sei qual é o mal disso.

Um código que não convem ser lido por muita gente não é a mesma coisa que um código altamente secreto.

Ou por exemplo, eu posso escrever uma aplicação e querer que apenas programadores que sejam capazes de tornar o código legivel lhe peguem. Sei lá, há tantas razões.

só a minha opinião.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

[offtopic]

Acho que as pessoas deveriam respeitar mais a liberdade de expressão, politica e de pensamento dos outros.

São livres de escolher as vossas opiniões e de as exprimir, mas não promovam o silênciamento das opiniões dos outros quando essas opiniões não apelam à violência e ao desrespeito de outros direitos humanos.

[/offtopic]

Há aqui várias coisas a dizer em relação a este tema, vou por isso sistematizar os sub-tópicos:

* mercado, propriedade e ética;

* segurança;

* benefícios de performance;

Começando pelo fim, ou seja, pelos benefícios de performance.

Se falarem de "obfuscação" de código através da sua compilação, para obter benefícios de performance, eu diria que de forma geral é perda de tempo. As linguagens de scripting modernas já tratam disso. Por exemplo o Python e o Perl compilam módulos quando são utilizados pela primeira vez e voltam a compilar automáticamente quando o seu código fonte é alterado e os modulso voltam a ser carregados/utilizados, provávelmente o PHP e Ruby também fazem isso (estou a fazer uma suposição, pois não tenho a certeza).

Existem compiladores por exemplo para PHP, no entanto eles impõem limitações ao nível do código, que podem acabar por forçar a limitar as arquitecturas dos softwares, e os benefícios de performance podem variar muito com as circunstâncias, bem como os seus custos (e não tou a falar apenas de dinheiro).

Os obfuscadores que são mesmo obfuscadores e não compiladores, nem sempre garantem melhorias de performance.

Não exito por tanto a classificar este benefício como marginal, insignificante, ou mesmo inexistente.

Indo agora para a questão da segurança.

A História já se encarregou de demonstrar que esconder o código e distribuir binários, ou código obfuscado não cria segurança. Há milhões de falhas de segurança ao longo da História a demonstrar isso.

A sensação de segurança de esconder o código é falsa!

Se queremos que um sistema seja seguro temos que nos certificar disso utilizando analisando préviamente a questão, criando uma arquitectura forte que não se baseie na confiança entre as várias componentes do sistema, temos que usar técnicas e tecnologias de segurança na implementação, temos que testar, temos que manter activamente, temos que a implementar em sistemas com segurança multi-nível, temos de manter os adminitradores informados sobre as ameças existentes e temos que educar os utilizadores.

Se queremos que uma aplicação seja segura temos que a criar, manter, suportar e utilizar de forma a ser segura. E esconder o código já demonstrou que não aumenta essa segurança, nem faz com que haja menos vontade  de atacar esse código (os softwares com mais falhas de segurança conhecidos até são em muitos casos proprietários e distribuídos sob a forma de binários). Não há aqui um factor de dissuasão minimamente eficaz.

Vamos agora à questão do mercado, propriedade e ética:

O código de direito de autor e direitos conexos não confere propriedade igual à propriedade de um objecto físico!

O código de direito de autor e direitos conecos confere ALGUNS direitos exclusivos e o direito de controlar ALGUNS outros direitos morais e patrimoniais, por um periodo de tempo limitado. Isto não é propriedade, mas por ser suficientemente parecido há quem chame aos sistemas de licenciamento de direito de autor que conferem menos liberdade proprietários, o que é reforçado o princípio filosófico e de mercado de quem licencia dessa forma ser baseado em achar que se tem um direito de propriedade sobre a obra.

O Código de Direito de Autor e Direitos Conexos dá ferramentas legais que qualquer autor pode utilizar para proteger um monopólio sobre a obra que criou. E estas ferramentas legais são muito mais poderosas que qualquer obfuscador de código, ou medida técnica.

Tenho sérias dúvidas que utilizar um obfuscador de código seja legal à luz da lei 50/2004, que alterou o código de direito de autor e direitos conexos, pois utiliza vários algoritmos e eventualmente outras medidas que não podém legalmente, ser utilizadas para atingir o fim de "proteger" a obra. No entanto admito que seja preciso mais análise a respeito deste aspecto em especifico.

Quando não queremos autorizar, que outros utilizem o que nós criamos de formas que nós não gostamos, então não lhes devemos distribuir o que criamos.

Obfuscar código com o objectivo de dificultar a vida ao cliente na mudança de prestador de serviços, é no minimo algo que categorizo como nojento. E algo que na minha opinião é perigosamente parecido aos crimes de sequestro e de extorção. É por tanto éticamente errado, não profissional e deturpador do mercado livre (que deve ter por base mérito técnico e comercial e não comportamentos de abuso).

No caso de C ou C++, não tem nenhuma framework e ao compilares, compilas para um executável que não te permite ter acesso ao código original

Pois, mas existem coisas chamadas Software Livre e Software de Código Aberto.

Isto para mim não deixam de ser manias, se desde que o PHP existe o código fosse ofuscado por natureza e não fosse interpretado, quantos desses que criticam a ofuscação em PHP se iriam lembrar de dizer que o código não devia ser ofuscado e apresentar argumentos válidos para tal acontecer e defenderem isso com todos os dentes que têm? Provavelmente nenhum...

Estás redondamento enganado!

Todos os defensores do Software Livre e Open Source Software o fariam. Porque os defensores destes tipos licenciamento defendem que o código fonte das aplicações deve estar disponíveis para todos os seus utilizadores, independentemente das caracteristicas técnicas do software e mesmo quando é escrito em linguagens cujos programas são compilados na totalidade estas pessoas defendem que o código fonte deve ser disponibilizado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que não devia estar na secção geral por várias razões. Primeiro isto começou num tópico de PHP e se fores a ver bem, quem costuma criticar a ofuscação é mesmo a linguagens como PHP que tem o código à mostra.

Por exemplo, C#, compilas o código para um executável que ao distribuires esse ficheiro não distribuis o código. Sim, tem a framework por trás e podes "descompilar" mas não nunca será a mesma coisa do que teres o código original (acho que já te vi a responderes posts de C# portanto acho que sabes do que falo). No caso de C ou C++, não tem nenhuma framework e ao compilares, compilas para um executável que não te permite ter acesso ao código original, mas vais ter código assembly o que não é a mesma coisa. E com PHP não é assim, distribuis a aplicação, tens distribuir obrigatoriamente o código.

Sim, mas PHP não é a única linguagem que é interpretada. Esta questão também se coloca a todas as outras linguagens que usam interpretadores.

Falco apesar de pela 1ª vez concordar contigo. Acho que na venda de um pedaço de software deve ir sempre acompanhado pelo código fonte e devidamente documentado. Mas vou tomar um pouco o lugar do diabo.

Acho que é bastante viável e não vejo em que parte não seja ético uma pessoa não fornecer o código fonte juntamente com a aplicação adquirida, se tal não tiver sido especificado no contrato. O cliente só adquire a aplicação se quiser, ninguém o obriga a tal. O fornecedor que desenvolve a aplicação pode se bem quiser (ou seja, se tal estiver especificado no contrato) fornecer apenas binários e não enviar o código fonte. Ou seja, no caso do PHP passar por um ofuscador. O cliente assim o permitiu. Provavelmente obtendo um preço mais reduzido da aplicação, visto o fornecedor ir calcular o lucro a pensar nas implementações que o cliente irá pedir no futuro, visto que sendo o fornecedor o único que possui o código fonte, vai ser ele a ficar com esse projectos.

Vejo esta situação comparável com a compra de uma casa. Normalmente quando compramos uma casa, adquirimos praticamente todo o direito sobre a mesma, uma pessoa pode pegar e pintar as paredes, fazer obras, etc. Mas existem casos que uma pessoa ou comprar uma casa, na altura da aquisição da mesma, tem de assinar um contrato a dizer que irá respeitar certas regras. Isto normalmente só costuma acontecer nas moradias germinadas ou em condomínios privados. Mas impede que uma pessoa possa fazer o que quiser com a casa, é obrigada a ter um jardim dentro de certos conformes, não pode pintar as paredes, etc. Até pode chegar ao extremo de se quiser fazer um obra na casa ter que ter o acordo dos restantes vizinhos. É muitos impedimentos, apesar de a casa ser nossa, mas é a tal questão, a gente só a compra se quiser, ninguém a tal obrigou. O mesmo se passa com o software. O cliente só compra uma aplicação (sem acesso ao código fonte) se quiser, ninguém a tal o obriga. E não vejo falta de ética nisso, é apenas um modelo de negócio.

Modelo de negócio de que não sou grande adepto, acho que uma empresa oferecer o código fonte, só demonstra confiança do seu trabalho ao cliente. Demonstra que sabe fazer bom trabalho e que não precisa de rodeios para ter mais trabalho com esse cliente.

Mas são modelos de negócios e nenhum é mais ético que outro. É um aspecto que eticamente é neutro...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso uma das coisas que me irrita um pouco é este tipo de peruntas levar sempre com a mesma resposta.

Um gajo pergunta: "como é que protejo o meu código?"

Leva logo com uma resposta: "proteger o código para quê?"

E de seguida com esta: "ah e tal o código é sempre acessível, basca fazer um decompile"

Não sei isso era direccionado a mim ou não mas eu nunca falei em tal coisa. Apenas dei o exemplo do que acontece numa linguagem como C que para "descompilares" ficas com assembly e que no caso do PHP que é interpretado o código não está escondido. Só isso, só dei o exemplo para dizer que não concordava com o facto de esta discussão ser geral para todas as linguagens como foi indicado. Nunca quis dizer que o código era sempre acessível, porque sei bem que assembly não tem nada a ver... Só para que não haja mal entendidos.

@Betovsky

Eu sei que não é a única linguagem interpretada, mas tu no inicio não falaste das mesmas, mas sim de uma forma geral para todas as linguagens e eu discordo que esta discussão seja para todas elas porque não faz muito sentido. Pa todas do género do PHP, tudo bem...

@falco

Sem comentários, contigo já não perco o meu latim, simplesmente não vale a pena...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que é bastante viável e não vejo em que parte não seja ético uma pessoa não fornecer o código fonte juntamente com a aplicação adquirida, se tal não tiver sido especificado no contrato.

Acho que mesmo que as partes tenham consciência, não é o mais correcto. Acho que há formas de minimizar os efeitos negativos, no entanto não acho que seja o que está certo. E coloca o cliente numa situação de dependência que considero injusta, para além de achar negativo para um mercado baseado no mérito.

contrato. O cliente só adquire a aplicação se quiser, ninguém o obriga a tal.

Não é bem assim... Os efeitos de rede da utilização generalizada, ou em alguns ambientes não controlados pelo utilizador, de formatos, protocolos e APIs proprietárias, e a obrigatoriedade de utilizar tecnologias para não ficar para trás, cria uma obrigação de facto de utilizar alguns softwares. Não é assim com todos os casos, mas é com alguns.

Vejo esta situação comparável com a compra de uma casa.

Os objectos físicos são diferentes do software, por natureza.

Aqui a questão é diferente, porque nesse teu exemplo da casa, o contrato não te força a que uma empresa controle quem tem pode fazer alterações na casa, quem te pode fazer manutenção da casa, etc... É fundamentalmente diferente.

Mas são modelos de negócios e nenhum é mais ético que outro. É um aspecto que eticamente é neutro...

Discordo!

Eu acho que não é ético porque cria um desiquilibrio injusto.

Concordo que nesse caso especifico, existe muita gente com opiniões diferentes, e é um uma das razões pelas quais apesár de achar que é incorrecto acho que não deve ser ilegal. Tenho por tanto, alguma tolerância quanto à situação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só uma coisa, já que falaste ali mais acima do pessoal de open-source e não sei quê que eles defendem que deve ser tudo livre e mais bla bla, quero só dizer uma coisa... E com isto que eu vou dizer, em parte, dá para perceber porquê que eu acho que ofuscar o código não tem nada de mau.

Não sei se vou ferir alguém aqui no fórum com o que vou dizer, mas também não quero saber, porque é o que eu penso e se há coisa que mais me mete nojo nas pessoas é a hipocrisia, coisa que eu não sou.

Isto nem é para todos, mas sim para aqueles verdadeiros puristas do open-source que defendem que todo o software devia ser livre e fazem-no com todos os dentes que têm e criticam todo o software closed-source. Bem, eu acho esses gajos uns verdadeiros otarios com atitudes extremamente estúpidas. Não tenho nada contra o open-source, nada mesmo e por acaso até tenciono tornar algumas das minhas aplicações em open-source ou pelo menos distribuir o código segundo a GPL, se fosse o contra, não o faria de certeza. Mas, uma coisa é defender o open-source e as suas ideologias, outra coisa é defender isso e ao mesmo tempo dizer que tudo o que vai contra isso está errado e é mau. E é isso que eu critico.

O open-source existe? Tudo bem, quem quer adoptar essa ideologia força, quem não quer, que não adopte, tão simples quanto isto. E tentar impingir isso alguém, é simplesmente estúpido. Não faz qualquer sentido. É a mesma coisa que eu gostar de preto e vocês de branco e eu criticar-vos por isso e tentar mostrar que branco não e preto sim, a toda a força. Não tem lógica, são ideologias e cada um faz as coisas como acha. Se eu quiser fazer um programa qualquer em que queira partilhar o binário mas não o código para ninguém saber o segredo (imaginemos um programa muita bom), porque raio haveria de ser obrigado a fazê-lo? É meu, fui que eu inventei, só dou ao mundo se quiser e ninguém tem nada a ver com isso. Mas quem é que eles pensam que são, para dizer que todo o software devia ser livre? Isto é estúpido.

E isto pode ser facilmente comparável a receitas de cerveja ou molhos especiais por exemplo, porque raio haveria de partilhar o meu segredo? Como eu disse, só adopta a ideologia quem quer, se eu quiser partilhar o segredo partilho, se não quiser, não partilho. E ninguém tem o direito de dizer se o devo ou não fazer e muito menos criticar se não o fizer.

Isto tudo só para responder a isto:

Todos os defensores do Software Livre e Open Source Software o fariam. Porque os defensores destes tipos licenciamento defendem que o código fonte das aplicações deve estar disponíveis para todos os seus utilizadores, independentemente das caracteristicas técnicas do software e mesmo quando é escrito em linguagens cujos programas são compilados na totalidade estas pessoas defendem que o código fonte deve ser disponibilizado.

Que é um pouco a fugir ao assunto, mas de certa forma relacionado... Para pessoas que pensam tal e qual como está dito na citação, façam-me um favor, morram longe, porque vocês não são ninguém para me dizer o que eu devo ou não fazer com o meu código. Se eu quiser, partilho, se não quiser, não o faço. O código é meu e a escolha é minha e vocês não têm o direito de a criticar.

E só mais uma coisa...

E algo que na minha opinião é perigosamente parecido aos crimes de sequestro e de extorção.

Tu deves ter um parafuso a menos (nada pessoal) para comparares ofuscação de código com crimes de sequestro e extorsão, é que enfim, nem tem comentário (decente) possível... No dia em que ofuscar código for punido da mesma forma que um sequestro o é, eu suicido-me.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sou um defensor do Software Livre e não acho que todo o software deva ser livre. O que eu acho é que deve haver um ambiente tal que permita a cada um de nós poder utilizar apenas software livre caso queira e que o estado deve utilizar preferêncialmente Software Livre (salvo excepções devidamente justificadas, limitadas e controladas). E não é isso que acontece agora.

Apesár de achar que é mau a existência do software proprietário porque cria monopólios e dá um controlo exessivo ao autor sobre o computador e as escolhas de gestão das tecnologias por parte do utilizador. Não acho que deva ser proibido, apesár de achar que deva haver alguma regulamentação com o objectivo de proteger contra os efeitos negativos de protocolos, formatos e APIs proprietárias. Também vou alertar os outros para estas questões, mas cabe a eles decidirem por si próprios, mas não os obrigo a nada.

Ou seja, o quadro é bastante diferente do que tu pintas! Em que quem defende o Software Livre é um "terrorista", que quer obrigar os outros a fazer o mesmo que ele faz. Mas é típico esse exagerar para fazer com que os outros pareçam mal, bem como dizer o que os outros pensam sem que eles alguma vez vos tenham dito.

Que é um pouco a fugir ao assunto, mas de certa forma relacionado...

Não é não! Eu acho que é precisamente esta a principal questão. Só depois desta questão é que eu considero questões técnicas.

Para pessoas que pensam tal e qual como está dito na citação, façam-me um favor, morram longe, porque vocês não são ninguém para me dizer o que eu devo ou não fazer com o meu código.

Em primeiro lugar, ninguém te está a mandar fazer nada. No máximo poderiam estar a recomendar.

Em segundo lugar todos temos direito a ter opinião e a exprimir essa opinião!

Em terceiro lugar a ideia de o software ser tua propriedade quando o distribuis aos outros é errada! O código de direito de autor apenas concede alguns direitos ao autor, direitos esses que são até limitados no âmbito e no tempo, não lhe concede propriedade equivalente à propriedade de um objecto físico. E muito menos o faz quando o distribuis a outros.

Que direito tens tu de mandar no computador dos outros?

Esconder o código fonte e/ou tornar o software proprietário faz com que os utilizadores percam controlo sobre o seu computador.

Tu deves ter um parafuso a menos (nada pessoal) para comparares ofuscação de código com crimes de sequestro e extorsão, é que enfim, nem tem comentário (decente) possível... No dia em que ofuscar código for punido da mesma forma que um sequestro o é, eu suicido-me.

Tendo em conta o contexto desta thread e da anterior, de isso ser utilizado para garantir um negócio, então há alguma semelhança. Mas o facto é que dá uma posição de dominância ao autor, que pode ser utilizada para "sequestrar" a capacidade operacional de uma empresa e para impor negócios não desejados (o que tem alguma semelhança à extorção). Há carradas de  casos em que aconteceu isso:  forçados, contratos de manutenção não desejados, migrações para outro produto do mesmo autor, software a fazer coisas sem permissão dos donos dos computadores, etc...

Eu não disse que era igual, ou que deveria ser punido, quanto mais punido da mesma forma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Sou um defensor do Software Livre e não acho que todo o software deva ser livre. O que eu acho é que deve haver um ambiente tal que permita a cada um de nós poder utilizar apenas software livre caso queira e que o estado deve utilizar preferêncialmente Software Livre (salvo excepções devidamente justificadas, limitadas e controladas). E não é isso que acontece agora.

Apesár de achar que é mau a existência do software proprietário porque cria monopólios e dá um controlo exessivo ao autor sobre o computador e as escolhas de gestão das tecnologias por parte do utilizador. Não acho que deva ser proibido, apesár de achar que deva haver alguma regulamentação com o objectivo de proteger contra os efeitos negativos de protocolos, formatos e APIs proprietárias. Também vou alertar os outros para estas questões, mas cabe a eles decidirem por si próprios, mas não os obrigo a nada.

Ou seja, o quadro é bastante diferente do que tu pintas! Em que quem defende o Software Livre é um "terrorista", que quer obrigar os outros a fazer o mesmo que ele faz. Mas é típico esse exagerar para fazer com que os outros pareçam mal, bem como dizer o que os outros pensam sem que eles alguma vez vos tenham dito.

Desculpa lá mas não concordo contigo. Hoje em dia fala-se de monopólio ser mau por causa das práticas que as empresas detentoras desse monopólio praticam. Se vivêssemos num mundo perfeito onde houvesse respeito de toda a gente por toda a gente, os monopólios não eram considerados maus. Porque poderia haver o código proprietário que se quisesse, mas sem limitar o utilizador a usar o software, no entanto, não seriam precisas certas práticas existentes hoje que fazem com que se critique tanto a Microsoft, por exemplo. O mundo em que vivemos é que faz com que seja preciso existir grupos como a Free Software Foundation. Eu não tenho culpa do mundo ser assim e não acho que é por causa disso que as grupos open-source têm mais razão no que dizem. Não tenho culpa nenhuma dos monopólios criados.

Em primeiro lugar, ninguém te está a mandar fazer nada. No máximo poderiam estar a recomendar.

Em segundo lugar todos temos direito a ter opinião e a exprimir essa opinião!

Em terceiro lugar a ideia de o software ser tua propriedade quando o distribuis aos outros é errada! O código de direito de autor apenas concede alguns direitos ao autor, direitos esses que são até limitados no âmbito e no tempo, não lhe concede propriedade equivalente à propriedade de um objecto físico. E muito menos o faz quando o distribuis a outros.

Eu nem se quer estava a falar directamente para alguém aqui neste tópico, mas sim de uma forma geral... E esses grupos podem ter a opinião que quiserem, mas não me podem obrigar a concordar com ela e achar que eles têm razão. E mais, pela tua ordem de ideias um assassino mata alguém, tem as suas razões, as suas opiniões para o ter feito e nós podemos estar contra? Tenha ele a opinião que tiver, vai estar errado sobre o assunto. Isto não é como discutir se gostas mais de laranjas que maças, são questões totalmente diferentes. Por mais são que seja o assassino, por mais justificações que ele dê para o que fez, no fundo, vai estar errado e incorrecto, não à volta a dar. E no caso da cena open-source eu vejo a mesma coisa. Porque eles não são ninguém para dizer o que eu devo ou não fazer ao meu código, são uma fundação de open-source, têm as suas ideias, não me importo com isso. Quem quer, que as adopte e viva a sua vida, quem não quer, que não o faça e errado ser criticado por grupos destes por fazer isso. E questões de monopólio, como já discutimos, são diferentes. E nós estamos aqui a discutir ofuscação de trabalhos próprios e não sobre a ofuscação de um hiper-mega trabalho da nossa super e poderosa empresa no mercado, pelo que monopólios nem deveria estar na discussão.

Que direito tens tu de mandar no computador dos outros?

Esconder o código fonte e/ou tornar o software proprietário faz com que os utilizadores percam controlo sobre o seu computador.

Mas eu alguma vez disse que queria mandar no computador dos outros? E discordo totalmente desta tua afirmação... Tu que falas tanto em ética, basta seres um programador ético e construires o teu programa de tal forma em que não tires o controlo do seu computador aos indivíduos que o usam. Se o fizeres, não vejo o problema em ter o software proprietário. Não estás a fazer mal a ninguém, não estás a estragar o computador de ninguém e o utilizador continua a utilizar o seu computador como sempre o fez sem limitações. E quanto ao programa que fizeste para ele, ele faz exactamente o que quer com ele sem limitações, porque tu foste ético na construção do mesmo. É assim que eu vejo as coisas. Se eu lanço software X que tem funcionalidade Y e faz-la bem e é exactamente isso que o utilizador quer. Não vejo onde é que eu ao fazer isto estou a mandar no computador de alguém e lhe estou a tirar controlo.

Já alguma vez perdeste uns minutos no meu site? Se tiveres tempo, dá uma vista de olhos ao nzFotolg (script PHP para fotologs), FireNotes (aplicação simples de notas para Win) e Network Switcher (descontinuado, mas para gerir, de forma simples, as redes do Win) e diz-me, onde é que eu estou a limitar o controlo do computador de alguém (ou da página web de alguém), é que eu gostava de perceber o teu ponto de vista, mas não sei se consigo, porque isto não faz sentido nenhum e os meus programas não limitam nada a ninguém. E isto supondo que eles são proprietários, porque o nzFotolog é PHP e o código está a mostra segundo licença CC (eu sei que não é própria para código) e o Network Switcher está sob a GPL porque eu descontinuei-o. Apenas o FireNotes é que ninguém tem o código, diz-me onde é que esse pequeno programa "manda" no computador dos outros ou onde lhes tira controlo, porque eu não consigo ver nada...

Tendo em conta o contexto desta thread e da anterior, de isso ser utilizado para garantir um negócio, então há alguma semelhança. Mas o facto é que dá uma posição de dominância ao autor, que pode ser utilizada para "sequestrar" a capacidade operacional de uma empresa e para impor negócios não desejados (o que tem alguma semelhança à extorção). Há carradas de  casos em que aconteceu isso:  forçados, contratos de manutenção não desejados, migrações para outro produto do mesmo autor, software a fazer coisas sem permissão dos donos dos computadores, etc...

desculpa lá mas não consigo concordar, estás a exagerar de mais mesmo!!! Por esta ordem de ideias vou acusar o meu prof de POO de sequestro a minha capacidade operacional e de estudo de Java porque ele nós quer impingir o uso do BlueJ como IDE e eu não quero. Desculpa mas não concordo com a comparação do sequestro a ofuscar código, é ridículo.

Eu não disse que era igual, ou que deveria ser punido, quanto mais punido da mesma forma.

Tu não disseste nada praticamente, apenas comparaste as duas coisas como se estivessem ao mesmo nível. Não me podes acusar por ter interpretado mal se tu não explicas o que queres dizer. Mas acho que já respondi melhor a isto na citação anterior.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou grato por ver que adiscussão não dscambou e continua em torno do tema inicial.

Eu tenho um pé em cada lado da barricada neste caso.

Tambem sou defensor de software livre e por acaso concordo plenamente com o seu incentivo por parte por exemplo do governo etc.

Tambem sou contra o possessismo que actualmente é aceite em toda a propriedade intelectual, tipo, um gajo faz um risco num papel, tem que dar créditos ao gajo que invetou o papel, ao que patenteu o tamanho da folha, ao gajo que inventou o lapis, o carvão, ao autor do aspecto do risco, ao gajo que tem o copiright de riscos de 0.5 milimetros de largura... enfim, esta situação é ficticia, mas por exemplo no mercado musical não andamos muito longe disso.

Mas em relação ao software proprietário não o vejo como mau, se bem que concorde que é um caminho tendencialmente antiquado. Há de facto demasiado software pago, mais do que é necessário existir, e a sua comercialização é imposta em certa medida ao consumidor duma forma consentida pelos governos mas que não é favorável, na minha opinião, à população em geral. Ou por outras palavras, o governo priviligia o lucro de alguns detentores de capital em prejuízo sa população.

Mas os usos do software proprietário ainda são muitos e vão existir sempre situações onde soluções de código aberto não se adaptam. O caso de sites bancários ou de pagamentos por exemplo. O caso de pequenas empresas que desenvolvem poucos produtos mas são todos para plataformas abertas, etc.

A título de exemplo fica o meu site de maior popularidade, o shareminer. O conceito era novo (ainda que simples) e o site rapidamente se tornou popular, passados uns meses os clones ascenderam quase à centena e encontrei em inúmeros locais pessoas a perguntar onde podiam sacar o script.

Obviamente que eu não o abri ao domínio publico. Pus tempo nele e como tal tenho todo o direito ao retorno económico que a sua não-abertura representa. Agora que há muitas implementações do mesmo conceito, ou pelo menos de um conceito semelhante, e que eu já tenho quase pronto um novo produto com muito mais potencial e melhor qualidade em todos os aspectos, estou a considerar abrir o código do shareminer e oferece-lo ao domínio publico.

Agora, neste caso a aplicação corre no meu servidor ninguem tem acesso ao código, logo não há discussão sobre a ética da sua natureza proprietéria. Mas se falarmos de uma aplicação distribuida...

Não será razoável aceitar que o autor da aplicação procure de certa forma proteger o acesso ao código para obter algum benefício monetário?

Para ser sincero penso que é mais vantajosa esta aproximação, em que se prevê um retorno relativamente justo para o programador. Entre outras coisas desincentiva o uso de modelos mais possessivos como patentes, etc.

O que será pior, um 'pequeno' programador libertar o código de uma aplicação para domínio público mas registar a patente do conceito usado, ou vender uma aplicação de um conceito seu, mas deixar o conceito aberto?

A ofuscação pode ser uma forma de se usar a primeira aproximação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sou contra a ofuscação de código porque:

O torna dificil de ler.(Se não for esse o objectivo)

Sou contra quem compila C# (web) pois em caso de necessidade extrema de manutenção não se pode fazer com o "notepad" ou gedit.

Estas imposições apenas se aplicam se trabalharmos em equipa e tiverem a certeza que todo o código está seguro e em servidores dedicados.

Se fizer um site po "Ti Manel da Esquina" que tenha um login, e que va alojar na "ISP do canto da esquina" claro que o código vai ofuscado e so n meto a bd ofuscada porque infelizmente n sei como o fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Kimico, atenção, são casos diferentes...

Quanto ao ti manel da esquina, não era por ele, mas sim pela Isp do canto da esquina que eu encriptava ao menos para dar trabalho "aos putos que abriram uma SP" a roubar o código...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou só dar um exemplo: existe um pequeno jogo MMORPG chamado RuneScape na Internet que é desenvolvido em Java e distribuido como uma applet. Isto torna possível fazer download do client do jogo e "descompilar" o código para analisar como funciona o cliente e fazer cheats. Obviamente que o código foi totalmente ofuscado, mas mesmo de uma maneira brutal! :thumbsup:

Mesmo assim, há quem consiga dar a volta, mas torna muito mas mesmo muito mais difícil perceber o código, e se não fosse a ofuscação seria muito fácil contornar certas coisas.

Em que situação é que esta ofuscação não é ética? Será que o código do cliente devia ser distribuido facilitando assim o desenvolvimento de bots para o jogo e prejudicando todos os jogadores, só porque não é ético executar código ofuscado e não livre?

Think about it.

@Nazgulled: Em C# ou Python faz sempre sentido ofuscar o código. Quem já tentou "descompilar" código sabe que o código obtido é muito parecido ao original e mesmo que não seja, dá sempre para encontrar pormenores técnicos mais facilmente sem a ofuscação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora