Um dos usos da engenharia reversa de software é auditar um ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - "Uma das diferenças entre descompiladores e desmontadores é que os primeiros geram fontes em linguagem de mais alto nível."
A questão aborda o tema da engenharia reversa de software, que é o processo de analisar um sistema de software para extrair o design e a implementação do código-fonte. Isso é feito para estudar como o programa funciona, o que pode ser útil para várias finalidades como auditoria de segurança, recuperação de código perdido, ou simplesmente para entender a lógica de um software.
Para resolver a questão, é necessário conhecer a diferença entre as ferramentas de engenharia reversa, como descompiladores e desmontadores (ou decompilers e disassemblers, em inglês). Os descompiladores são programas que tentam reverter o processo de compilação, convertendo o código de máquina ou bytecode de volta para uma forma de código-fonte em uma linguagem de alto nível, como Java ou C++, que é mais compreensível para os seres humanos. Já os desmontadores são ferramentas que convertem o código de máquina em linguagem assembly, que é uma representação de baixo nível do código, mais próxima da linguagem de máquina, mas que ainda é legível por humanos com conhecimento técnico especializado.
Portanto, a alternativa A está correta porque destaca essa diferença fundamental entre descompiladores e desmontadores. Os descompiladores são capazes de gerar um código-fonte em uma linguagem de programação de alto nível, como mencionado, o que é usualmente mais fácil de entender e trabalhar do que o código de linguagem assembly produzido pelos desmontadores.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gab. A
Descompilador
Programa de computador que realiza a operação inversa de um compilador, transformando código objeto em código fonte.
Gabarito A
Descompilador é um programa de computador que realiza a operação inversa de um compilador, transformando código objeto em código fonte. O termo entretanto é mais utilizado para designar programas de computador que traduzem código de máquina (programas executáveis) em código fonte em uma linguagem de programação de alto nível (mais compreensível) que, quando novamente compilado, produzirá um programa executável de características e comportamento igual ao programa executável original. Em comparação, um desmontador transforma código de máquina em linguagem de montagem (menos compreensível).
O sucesso da descompilação depende da quantidade de informação presente no código e da sofisticação da rotina de análise. As representações intermediárias usadas em máquinas virtuais(como Java e .Net) normalmente incluem bastante metadados e informações de alto nível que facilitam a descompilação. Entretanto, linguagens de máquina possuem muito menos metadados e portanto são bem mais difíceis de serem descompiladas.
Esse programa pode ser útil caso perca-se o código fonte de um programa de computador.
Descompiladores automáticos, que geram códigos fontes a partir de arquivos binários, são a utopia de descompilação e mesmo descompiladores (ou desmontadores) avançados atualmente não são capazes de produzir tais resultados sem que o usuário tenha que tomar várias decisões antes que o código fonte possa ser efetivamente utilizado. Além disso, mesmo em casos em que a descompilação é possível, algumas características originais do código fonte como: comentários, nomes de variáveis e funções podem não ser recuperados; mas para isso analises mais detalhadas do código produzido podem ser boas alternativas.
A maioria dos programas estão protegidos por direitos autorais, e embora esses variem de região para região, as diferentes versões de leis de direitos autorais normalmente garante ao autor o direito exclusivo de fazer copias. Como o processo de descompilação envolve a produção de múltiplas copias do programa alvo, a fim de se produzir um código fonte compatível, ela costuma ser proibida sem que haja a expressa autorização do autor.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo