SóProvas


ID
1952293
Banca
IADES
Órgão
PC-DF
Ano
2016
Provas
Disciplina
Engenharia de Software
Assuntos

Quanto às técnicas de engenharia reversa de software e às respectivas características, assinale a alternativa correta.

Alternativas
Comentários
  • Gabarito E

    A análise estática, também chamada de análise estática de código, é um método de depuração programa de computador  feito através da análise do código sem executar o programa. O processo proporciona uma compreensão da estrutura do código, e pode ajudar a assegurar que o código adere às normas industriais, mundiais e de mercado. Ferramentas automatizadas podem ajudar programadores e desenvolvedores na realização de uma análise estática. O processo de análise de código por inspeção visual (por meio de olhar para a impressão, por exemplo), sem o auxílio de ferramentas automatizadas, é às vezes chamado de entendimento ou compreensão do programa.

    A principal vantagem da análise estática é o fato de que ele pode revelar erros que não se manifestam até que um desastre ocorre semanas, meses ou anos após o lançamento. No entanto, a análise estática é apenas um primeiro passo para um regime abrangente de controle de qualidade de software. Após análise estática tem sido feita, a análise dinâmica é muitas vezes realizado em um esforço para descobrir defeitos sutis ou vulnerabilidades. Na terminologia do computador, meios estáticos fixos, enquanto meios dinâmicos são capazes de várias ações e/ou mudança. A análise dinâmica envolve o teste e avaliação de um programa baseado em execução. A análise estática e dinâmica, considerados em conjunto, são muitas vezes referidos como testes de Gray-box (Glass-box).

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language.

  •  a) A engenharia reversa é uma técnica aplicada quando se deseja realizar a refatoração do software, melhorando as respectivas estruturas internas e facilitando a leitura e a manutenibilidade do código. Errado. Refatoração é um processo relativo a  modificar um sistema de software para melhorar a estrutura interna do código.

     

     b) Ao realizar a engenharia reversa de um arquivo bytecode, pode-se visualizar um código idêntico ao real, mantendo características como o nome e o tipo das variáveis, os comentários presentes nos arquivos originais, as respectivas estruturas de controle e de repetição e o relacionamento entre as classes, entre outros. Errado. Geralmente o resultado após a engenharia reversa é um código diferente do real porém com alguns dados em comum que podem ser úteis na análise da estrutura do código.

     

     c) Caso sinta dificuldade para fazer com que um executável malicioso se execute em um ambiente de análise, um perito pode realizar a análise estática com base na engenharia reversa realizada por um disassembler. Assim, o perito poderá analisar o programa na linguagem utilizada para desenvolver o programa malicioso, sem prejuízo à respectiva estrutura. Errado. A análise não ocorre necessáriamente na linguagem utilizada pra desenvolver o programa malicioso. A questão do prejuízo à respectiva estrutura é questionável também, por isso recomenda-se que os procedimentos sejam realizados em cópias dos artefatos.

     

     d)  A análise dinâmica de um software, também chamada de análise caixa-branca, está relacionada com a análise desse software no respectivo ambiente de execução e possibilita o maior conhecimento de todas as características dessa aplicação. Errado. Caixa-preta – análise dinâmica da aplicação.

     

     e) A análise estática do código gerado pela engenharia reversa, independentemente do tipo de código resultante, pode ser útil para encontrar funções escondidas e comportamentos não esperados de um programa. Porém, nem sempre o código gerado é idêntico ao código original. Correto. independente do tipo de código resultante, que nem sempre é idêntico ao original, pode-se obter: a identificação de strings, comentários, nomes de métodos e chamadas de funções e dlls podem ser úteis para a análise do código e seu comportamento.