1 / 22

Proteção de Código Fonte

Proteção de Código Fonte. Em plataformas .NET. Agenda. Framework .NET Propriedade intelectual Engenharia reversa Demonstração de engenharia reversa em .NET Técnicas de proteção Demonstração de proteção de código em .NET Conclusão. .Net Framework.

miller
Download Presentation

Proteção de Código Fonte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Proteção de Código Fonte Em plataformas .NET

  2. Agenda • Framework .NET • Propriedade intelectual • Engenharia reversa • Demonstração de engenharia reversa em .NET • Técnicas de proteção • Demonstração de proteção de código em .NET • Conclusão

  3. .Net Framework • Framework de desenvolvimento de aplicações; • Oferece facilidades de desenvolvimento de interfaces, acesso a bancos de dados, criptografia, aplicações Web e comunicação de rede; • Independência de Linguagens: suporta programação em múltiplas linguagens; • Segurança: provê vários níveis de segurança na execução de programas;

  4. .Net Framework Anywhere Anytime Any platform Any device

  5. .Net Framework MSIL Microsoft Intermediate Language CLR Common Language Runtime JIT Compiler Just-in-Time Compilation (Jitters)

  6. .Net Framework - Características • Interoperabilidade: provê meios de acesso a funcionalidades implementadas fora do ambiente .Net; • CLR – Common Language Runtime : programas .Net são compilados na linguagem intermediária CLR; • CTS – Common Type System: garante a integração de tipos de dados entre linguagens

  7. .Net Framework

  8. Propriedade Intelectual • Conceito Jurídico de Software: • Programa de computador é a expressão de um conjunto organizado de instruções em linguagem natural ou codificada, contida em suporte físico de qualquer natureza, de emprego necessário em máquinas automáticas (...), baseados em técnica digital ou análoga, para fazê-los funcionar de modo e para fins determinados. • Lei do Software, Art. 1º

  9. Propriedade Intelectual • Regime de proteção ao software é o concedido às obras literárias; • (...) Direito do autor de reivindicar a paternidade do programa de computador e o direito do autor de opor-se a alterações não-autorizadas (...); • A proteção aos direitos de que trata esta Lei independe de registro;

  10. Propriedade Intelectual • Alternativas: • Licenças de Software Livre (GPL, Apache, Creative Commons)Nem sempre a aplicação de uma licença livre é viável, principalmente no caso de softwares comerciais.

  11. Engenharia Reversa • Tem como objetivo recuperar o código-fonte de um software a partir do artefato final (executável ou biblioteca); • Em alguns países é considerado ilegal, por ser a base do Cracking; • Mesmo com a proteção da lei sobre o código fonte, a engenharia reversa pode fornecer informações importantes sobre a estrutura do software;

  12. Engenharia Reversa • É útil para manutenções em sistemas legados; • É dependente da arquitetura da linguagem fonte; • Geralmente só se obtém o Assembly.

  13. Engenharia reversa em .NET

  14. Engenharia reversa em .NET

  15. Técnicas de Proteção • Ofuscar • Consiste em embaralhar o código fonte, renomeando métodos e variáveis para nomes incomuns e aumentar o caminho entre métodos; • Inverte referencias do tipo GetA() retorna B e GetB() retorna A; • Para a compilação e para a linguaguem de máquina, o efeito é o mesmo, mas para o ser humano o entendimento fica muito dificultado. • Transformação em Binários • Do binário o máximo que se consegue é um Assembly específico de uma máquina.

  16. Ofuscar

  17. Ofuscar

  18. NecroBit • Consiste em retirar o header CLI do .EXE ou .DLL; • Mantém os métodos e as chamadas, mas passa toda a regra para um novo arquivo _nat.(exe|dll); • Esse novo arquivo é um binário puro e não gerenciado pelo Framework .Net;

  19. NecroBit

  20. NecroBit

  21. Conclusão • A CLI apesar de ser um diferencial do .Net, possibilitando várias linguagens pode prejudicar a propriedade intelectual dos desenvolvedores mais ingênuos; • Existem ferramentas muito poderosas para manter o código fonte protegido, o que pode ser uma questão de mercado muito forte. • O custo de uma ferramenta de proteção é minimo diante do prejuizo de um código clonado.

  22. Referências • http://jus2.uol.com.br/doutrina/texto.asp?id=2530&p=1 • http://msdotnetsupport.blogspot.com/2008/02/net-obfuscation-using-dotfuscator-for.html • http://www.macoratti.net/vbn5_pco.htm

More Related