Gabarito D
Ofuscação de Código
Nome dado à tentativa deliberada de fazer um código de programação tornar-se difícil de entender por pessoas não-autorizadas. É também chamada de Ofuscamento de Código.
Motivos para ofuscação de código
A ofuscação de código pode ser realizada por diversos motivos:
ocultar a finalidade do código (por exemplo, códigos maliciosos);
impedir possíveis alterações (segurança pela obscuridade);
impedir a violação de direitos reservados através da alteração e cópia;
dificultar Engenharia Reversa;
ou mesmo como um meio de diversão e desafio para oferecer a quem lê o código-fonte.
Um exemplo de uso típico é a ofuscação do código JavaScript: como os scripts da linguagem rodam no lado cliente, o usuário tem acesso ao código-fonte a ser executado. Desta forma, para evitar a cópia, o desenvolvedor opta por tentar "esconder" parte do código.
A principal desvantagem da ofuscação de código é que ele não torna seu código completamente protegido, já que não há técnica impossível de ser quebrada com uma análise mais detalhada.
Além disto, a ofuscação de um código, se não bem realizada, pode tornar a compilação ou execução de um programa mais demorada do que em um código simples, além de aumentar consideravelmente o seu tamanho. Além disto, software anti-vírus pode alertar sobre um determinado programa que utiliza código ofuscado.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
a) A questão fez referência a uma técnica chamada de Confusing Disassemblers – CD.
b) A técnica de Code Obfuscation and Encryption – COE, se propõe a modificar o layout do programa, a lógica e os dados de forma que reorganize o código, tornando-o menos legível, mas mantendo a funcionalidade para o usuário final e assim a criptografia é aplicada após a compilação. Não se pode afirmar que é uma técnica pouco aplicada.
c) A técnica de Eliminação de Informação Simbólica (Eliminating Symbolic Information – ESI) não elimina links simbólicos do software. Ela atua em: nome de classes, nome de membro de classes e a tabela de objetos instanciados. Estas informações podem ser extremamente úteis para quem disassemblar o código pois com base nelas é possível localizar pontos-chave do código.
d) Correto.
e) Não realizam uma proteção completa de código e geralmente as técnicas de ofuscação devem ser associadas a outras para uma melhor proteção na tentativa de se enquadrar em uma proteção completa. Adicionalmente é importante citar que a criptografia de chaves elípticas é de chave assimétrica e no caso da técnica essa é relizada por meio de criptografia de chaves simétricas, pois, os códigos necessários para a decriptação ficam presente no próprio executável.
Fonte: http://www.sawp.com.br/blog/?p=131