You are on page 1of 88

3.1 Tcnicas e ferramentas de decompilao de programas.

3.2 Debuggers.

Perito Polcia Federal 2013


Lcio Camilo luciocamilo@gmail.com
Lcio Camilo

Bibliografia

Engenharia Reversa para iniciantes:

http://docs.google.com/Present?
docid=ddd3j862_29grq4sx&fs=true
http://1bit.com.br/
http://www.caloni.com.br/blog
http://www.sawp.com.br/
Reversing: Secrets of Reverse Engineering,
Eldad Eilam

Lcio Camilo

Contextualizao
Decompilao ou Descompilao =
produzir a partir de um executvel um programa fonte em
linguagem de alto-nvel que, quando compilado, tem a mesma
funcionalidade que o executvel original.
"realizar a operao inversa de um compilador, transformando
cdigo objeto em cdigo fonte"
Engenharia Reversa = consiste em a partir de uma soluo
pronta, extrair todos os conceitos empregados para sua
construo

Lcio Camilo

O que Engenharia Reversa?

Processo de extrair conhecimento a partir de alguma coisa j


criada.

Similar pesquisas cientifcas, porm na engenharia reversa


trabalha-se com produtos fabricados pelos humanos e na
pesquisa cientfica so fenmenos naturais.

Utilizada para obter conhecimento perdido ou inexistente.

"Dissecar" produtos e descobrir os segredos por trs destes.

Lcio Camilo

Engenharia Reversa no Contexto de Software?

Ao contrrio dos demais processos de Engenharia Reversa,


neste caso contamos apenas com a mente humana e uma
CPU.

Processo puramente virtual.

Requer uma combinao de conhecimentos tais como


programao, anlise lgica, instrues de hardware entre
outras.

Lcio Camilo

Engenharia Reversa - Categorias


1.

2.

Lcio Camilo

Segurana
a. Softwares Maliciosos
Utilizam engenharia reversa tanto para encontrar
vulnerabilidades quanto para corrigir problemas
(Empresas Antivirus).
b. Reverso de Algoritmos Criptogrficos
c. Direitos Autorais
d. Auditoria de Cdigo Binrio
Objetivam descobrir se o software apresenta algum
risco de utilizao
Desenvolvimento de Software
a. Adquirir interoperabilidade com Software Proprietrio
b. Desenvolvendo Softwares Competitivos
c. Avaliar qualidade e robustez de softwares

Mtodos de Anlise

Anlise Offline Este tipo de anlise no leva em considerao a execuo do cdigo.


Muito utilizado para descobrir pedaos especficos do cdigo, por
exemplo locais aonde feito a checagem de existncia de licena ou
de chave de registro.
Observa-se apenas o cdigo, e no o fluxo de dados do programa.

Anlise Online Alguns casos quando o cdigo sofre um tratamento para no ser
visvel atravs de engenharia reversa, a anlise offline no produz
resultados, sendo necessrio a observao do cdigo em execuo.
Atravs desta anlise possvel descobrir o comportamento do
programa e o fluxo de controle e dados existentes.
Lcio Camilo

Ferramentas - Disassemblers

Disassemblers Ferramentas mais importantes na anlise


OFFLINE de cdigo;
Decodificam o cdigo binrio em cdigo
assembly (de acordo com a plataforma);
No assembly cada comando equivale a uma
instruo de computador;
Montador o programa responsvel por
converter o assembly em cdigo de mquina.
Disassembler faz o trabalho inverso do
montador.

Lcio Camilo

No Confundir !!!

Assembly = Linguagem de Programao


Assembler = Compilador de Programas Assembly

Assembly no uma linguagem apenas, um conjunto de


linguagens, aonde cada plataforma possui um conjunto especfico de
instrues Assembly que um pouco diferente dos demais.

Lcio Camilo

Ferramentas

Disassemblers
IDA-PRO
ILDasm
Debuggers (Depuradores)
User-Mode
OllyDbg
WinDbg
IDA PRO
PEBrowse Professional Interative
Kernel Mode
WinDbg
Numega SoftIce
Syser Debugger

Ferramenta - Interative Disassembler - IDA PRO

Principal ferramenta utilizada para engenharia


reversa;

Compe uma srie de ferramentas e sua interface


se assemelha a uma IDE;

Suporta

uma

variedade

de

arquitetura

de

processadores (IA-32, IA-64, Itanium, AMD64);

Implementa todo o fluxograma de execuo


baseado nas condies de desvio;

Lcio Camilo

Ferramenta - Interative Disassembler - IDA PRO

Ferramenta paga, com suporte a uma variedade


de arquivos executveis.

Produz grficos que mostram quais funces


chamam API`s ou funes internas

Lcio Camilo

Ferramenta - ILDasm

Disassembler

para

Microsoft

Intermediate

Language, que a linguagem de baixo nvel


utilizada em linguagens como .NET;

Fundamental para reverter aplicaes .NET;

Lcio Camilo

Ferramentas - Debuggers

Debuggers Ferramentas utilizada para localizar e corrigir


erros do programa em tempo de execuo;
Possibilita verificar comportamento do
programa em tempo de execuo, tais como
dados na memria, registradores e pilha de
execuo;
Utilizada na anlise ONLINE.
Podem ser divididos em USER-MODE ou
KERNEL-MODE.

Lcio Camilo

Funcionalidades - Debuggers

1.

Poderosa Ferramenta Disassembler

2.

Breakpoints de Software e Hardware

3.

Visualizao de Registro e Memria

4.

Informaes sobre processos

Lcio Camilo

Modo de Operao - Debuggers

User-Mode Operam com restrio dentro do Sistema


Operacional;

Lcio Camilo

S podem analisar um processo por vez;


No executam e no acessam
componentes do sistema operacional,
tarefas administrativas ou dispositivos que
utilizam drivers.
Vantagem: Fcil configurao e utilizao

Ferramentas - OllyDbg

Debugger mais conhecido no mercado (usermode);

Permite reescrever o cdigo Assembly de um


programa e remont-lo com um nico clique;

Permite identificar blocos de instrues, loops,


desvios, jumps e estruturas de cdigos;

Gratuito e atua em modo usurio;

Funciona como Debugger e Disassembler.

Lcio Camilo

Ferramenta - WinDbg

Debugger distribudo pela Microsoft;

Utilizado por usurios de Windows (grande


integrao);

Opera tanto em User-Mode quanto em Kernel


Mode, porm para ser executado em Kernel Mode
precisa ser em um sistema operacional separado
remotamente.

No permite alterao Online do cdigo.

Lcio Camilo

Ferramenta - PEBrowse Professional Interative

Oferece vrias vises contendo informaes


sobre o processo;

Possue funcionalidades para programas .NET

Lcio Camilo

Modo de Operao - Debuggers

Kernel-Mode Utilizado em programas que possuem


chamadas ao sistema operacional ou
bibliotecas dinmicas ou dispositivos de
hardware;
Permitem controle ilimitado sobre o binrio
analisado, permitindo um controle sobre todo o
comportamento do sistema operacional;
Utilizado principalmente por desenvolvedores e
programadores de sistemas operacionais, de
drivers ou componentes de SO;
Risco de desestabilizar o SO.
Alguns podem oferecer funcionalidade usermode.

Lcio Camilo

Ferramenta - SoftICE

Debugger que atua em Kernel Mode;


Recomendado para desenvolvedores de Drivers
Windows;
Diferente das outras ferramentas que atuam em
modo kernel, possibilita fazer inspeo no SO
local.

Lcio Camilo

Curiosidade: SoftICE -> ICE = In Circuit Emulator

Ferramenta - Syser Debbuger

Debugger que atua em Kernel Mode e baseado


no SoftIce.
Recomendado para desenvolvedores de Drivers;

Lcio Camilo

Ambiente Virtual

A utilizaco de debuggers de Kernel Mode


possibilita a interrupo do Sistema Operacional de
forma simples.
A utilizao de Ambientes virtuais recomendada a
fim de manter um sistema isolado e dedicado para o
debugger.
Atravs da simulao de hardwares possvel
testar o programa em diferentes hardwares atravs
dos ambientes virtuais.
Facilita o Backup e a recuperao em caso de
falha.
Lcio Camilo

Decompiladores

Objetivam produzir um cdigo to alto nvel

Lcio Camilo

quanto o cdigo fonte original;


Processo de compilao sempre remove alguma
informao;
O resultado da decompilao vai depender da
tecnologia e da arquitetura utilizadas;
Diferena entre Decompilador e Disassembler?

Decompiladores

IA-32 (Intel Architecture 32 bits)

Lcio Camilo

Boomerang
Andromeda
DCC
Java
JAD

Bnus
Ferramentas de Monitorao de Sistemas
Tcnicas Anti Engenharia Reversa

Ferramentas de Monitorao de Sistemas

Observam os canais de I/O que existem entre a

Lcio Camilo

aplicao e o Sistema Operacional;


Muitas vezes a engenharia reversa possvel
apenas atravs destas ferramentas;
Diferentes tipos de ferramentas para
monitorao de acordo com a necessidade.

Ferramentas de Monitorao de Sistemas

FileMon
Monitora todo o trfego de filesystem entre
aplicao e sistema operacional, e pode
verificar todo o I/O de arquivos gerado pelos
processos;
Com esta ferramenta podemos ver cada
arquivo ou diretrio que aberto, bem como
cada operao de read, write e execute de
qualquer processo do sistema.

Lcio Camilo

Ferramentas de Monitorao de Sistemas

TCPView
Monitora todas as conexes TCP ou UDP
ativas em cada processo;
No mostra o trfego atual, apenas uma
listagem com quais conexes esto abertas,
por quais processos, o tipo de conexo (TCP
ou UDP), o nmero da porta e o endereo do
sistema no outro ponto.

Lcio Camilo

Ferramentas de Monitorao de Sistemas

TDIMon (Traffic Device Interface)


Similar ao TCPView, porm pode monitorar
as conexes TCP em diferentes nveis;
Prov informao sobre qualquer operao a
nvel de socket, incluindo envio e
recebimento de pacotes.

Lcio Camilo

Ferramentas de Monitorao de Sistemas

RegMon
Monitora o acesso de qualquer processo ou
programa as informaes do Registro.
Muito til para localizar chaves de Registro
mantidas por programas.

Lcio Camilo

Ferramentas de Monitorao de Sistemas

PortMon
Monitor de portas fsicas que age sobre
qualquer trfego I/O serial ou paralelo no
sistema.

Lcio Camilo

Ferramentas de Monitorao de Sistemas

WinObj
Apresenta uma viso hierrquica do
namespace utilizado pelo programa.
Utilizado para identificar sincronizao de
objetos e verificar objetos globais, tais como
dispositivos fsicos.

Lcio Camilo

Ferramentas de Monitorao de Sistemas

Process Explorer
Pode monitorar processos, DLL`s carregadas
e seus espaos de endereos, CPU,
memria, entre outras informaes sobre os
processos.

Lcio Camilo

Tcnicas Anti Engenharia Reversa

1. Eliminar Informao Simblica

Eliminar qualquer informao textual que possa trazer algum


significado como nome de classes ou de variveis.

2. Ofuscar o Programa

Nome genrico para um conjunto de tcnicas que visam


reduzir as chances de coletar informaes em anlises
estticas mantendo as funcionalidades originais. Ao
contrrio da Eliminao Simblica, esta altera a estrutura do
programa (aps a compilao).

3. Embutir Cdigo AntiDebugger

Lcio Camilo

Voltado para dificultar anlise online, de forma que o


reversor no descubra informaes sobre o comportamento
interno. Envolve terminar o programa em caso de tentativa
de debugger.

Tcnicas Anti Engenharia Reversa

4. Confundir Disassemblers

Insere informaes incorretas no incio da instruo para


que o disassembler se perca no processo.

5. Transformaes no Controle de Fluxo

Consiste em alterar a ordem e o fluxo de um programa para


reduzir a legibilidade ao gerar o Assembly. Remove o fluxo
de informao e adiciona outra declarao de controle.

6. Transformaes de Dados

Lcio Camilo

Encriptam tanto os dados quanto a estrutura do programa.


Trata de um processo importante, pois geralmente identificar
uma estrutura de dados um dos passos fundamentais para
entender o funcionamento do programa.

Patching Tools

Lcio Camilo

o processo de alterar o cdigo de forma a modificar seu


comportamento.
Est relacionado engenharia reversa pois geralmente ocorre
aps uma reverso de cdigo, de forma a descobrir a posio de
cdigo que deve ser alterada.
Ferramenta:
Hex Workshop
i. Permite correo em arquivos e at mesmo em discos
inteiros.
ii. No permite o disassembler e o assembler do cdigo.

Questes Comentadas

Questo 01 - CESPE - 2004 - Polcia Federal - Perito Criminal Federal Informtica

No processo de engenharia reversa de arquivos, a


normalizao tem por funo reagrupar informaes de
forma a eliminar redundncias de dados e permitir a
obteno de um modelo ER.
Certo

Lcio Camilo

Errado

Questo 01 - CESPE - 2004 - Polcia Federal - Perito Criminal Federal Informtica

No processo de engenharia reversa de arquivos, a


normalizao tem por funo reagrupar informaes de
forma a eliminar redundncias de dados e permitir a
obteno de um modelo ER.
Certo

Errado

Normalizao consiste justamente em eliminar as


redundncias de um esquema.

Lcio Camilo

Questo 02 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica


Um dos usos da engenharia reversa de software auditar um programa
para avaliar sua segurana, bem como as vulnerabilidades do mesmo. Com
relao aos descompiladores e desmontadores, assinale a alternativa
correta.
a) Uma das diferenas entre descompiladores e desmontadores que
os primeiros geram fontes em linguagem de mais alto nvel.
b) Desmontadores so categorizados como ferramentas de anlise
dinmica de cdigo; sendo assim, so usados durante a execuo dos
programas.
c) A anlise dinmica uma abordagem mais complicada que a
esttica, j que no se consegue determinar como os dados fluem pelo
sistema.
d) Os descompiladores esto entre as ferramentas usadas tanto para a
anlise dinmica como para a anlise esttica de cdigo.
e) Cdigo produzido por desmontadores mais fcil de ser entendido
por humanos que cdigo produzido por descompiladores.
Lcio Camilo

Questo 02 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica


Um dos usos da engenharia reversa de software auditar um programa
para avaliar sua segurana, bem como as vulnerabilidades do mesmo. Com
relao aos descompiladores e desmontadores, assinale a alternativa
correta.
a) Uma das diferenas entre descompiladores e desmontadores
que os primeiros geram fontes em linguagem de mais alto nvel.
b) Desmontadores so categorizados como ferramentas de anlise
dinmica esttica de cdigo; sendo assim, so usados durante a execuo
dos programas.
c) A anlise dinmica uma abordagem mais complicada que a
esttica, j que no se consegue determinar como os dados fluem pelo
sistema.
d) Os descompiladores esto entre as ferramentas usadas tanto para a
anlise dinmica como para a anlise esttica de cdigo.
e) Cdigo produzido por desmontadores mais fcil de ser entendido
por humanos que cdigo produzido por descompiladores.
Lcio Camilo

Questo 02 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica

Um desmontador ou disassembler um programa de computador que


converte cdigo de mquina em uma representao textual.
A diferena entre um desmontador e um descompilador que este ltimo
reverte a compilao em uma linguagem de alto nvel, enquanto o primeiro
reverte em uma linguagem de montagem (Assembly).
O cdigo fonte em linguagem de montagem geralmente contm constantes
simblicas, comentrios e rtulos de endereamento que so normalmente
removidos do cdigo de mquina gerado.
Assim, o desmontador consegue reverter apenas parcialmente o processo
de montagem, pois o cdigo fonte produzido no ir conter essas constantes
e comentrios. Por causa disso, o cdigo produzido por um desmontador
mais difcil de entender (para um humano) que o cdigo fonte original, com
suas anotaes.

Lcio Camilo

Questo 03 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica


Com relao s ferramentas utilizadas em engenharia reversa de sistemas,
assinale a alternativa correta.
a) A ferramenta OllyDbg pode ser usada para fazer correes ou
patching em executveis.
b) Uma das deficincias do PEview est no fato de que o programa
mostra apenas os dados brutos no formato hexadecimal e no os valores
correspondentes no formato texto.
c) O Process Explorer uma ferramenta para disassembler esttico e
dinmico, e tambm cria patches.
d) Entre as ferramentas que suportam leitura e escrita em baixo nvel de
arquivos, mas no suportam trabalhar com parties de discos rgidos, est
o Hex Workshop.
e) OllyDbg, WinDbg, IDA e OctEditor conseguem tambm monitorar o
boot do sistema operacional.

Lcio Camilo

Questo 03 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica


Com relao s ferramentas utilizadas em engenharia reversa de sistemas,
assinale a alternativa correta.
a) A ferramenta OllyDbg pode ser usada para fazer correes ou
patching em executveis.
b) Uma das deficincias do PEview est no fato de que o programa
mostra apenas os dados brutos no formato hexadecimal e no os valores
correspondentes no formato texto.
c) O Process Explorer uma ferramenta para disassembler esttico e
dinmico, e tambm cria patches. ferramenta para monitorao de
processos
d) Entre as ferramentas que suportam leitura e escrita em baixo nvel de
arquivos, mas no suportam trabalhar com parties de discos rgidos, est
o Hex Workshop. trabalha com dados nativos inclusive
e) OllyDbg, WinDbg, IDA e OctEditor conseguem tambm monitorar o
boot do sistema operacional. OllyDbg user-mode.
Lcio Camilo

Questo 03 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica

Diferena entre debugger e disassembler:


Debuggers so programas que analisam, depuram e testam aplicaes. Sua principal
utilidade na identificao e tratamento de erros. possvel rodar linha por linha do
cdigo e analisar a mudana das variveis e do comportamento do cdigo. Os
debuggers para binrios precisam ter um disassembler embutido para decodificar as
instrues. Ou seja, transformar o cdigo-objeto em linguagem assembly.
Disassembler um programa que consegue transformar linguagem de mquina para
a linguagem assembly, transcrevendo as instrues enviadas ao processador para os
seus mnemnicos em assembly (asm).
O OllyDbg um dos mais poderosos debuggers (incluindo um disassembler)
disponveis no mercado, alm de ser gratuito, e opera em User-Mode apenas.

Lcio Camilo

Questo 04 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica


Em muitos casos, desejvel criar softwares com proteo contra reverso
de cdigo, ou seja, desenvolver programas que apliquem tcnicas
antiengenharia-reversa. Assinale a alternativa que apresenta somente
exemplos dessas tcnicas.
a) transformaes de dados, confuso de registradores, tcnicas ativas
de antidebugging.
b) ofuscao de cdigo, eliminao de informao simblica, uso de
rvores transversais.
c) transformaes no controle de fluxo, transformaes de dados,
ofuscao e encriptao de cdigo.
d) encriptao de cdigo, bloqueio de acesso memria, confuso de
disassemblers.
e) varredura linear recursiva, tcnicas ativas de antidebugging,
transformaes no controle de fluxo.

Lcio Camilo

Questo 04 - FUNIVERSA - 2012 - PC-DF - Perito Criminal - Informtica


Em muitos casos, desejvel criar softwares com proteo contra reverso
de cdigo, ou seja, desenvolver programas que apliquem tcnicas
antiengenharia-reversa. Assinale a alternativa que apresenta somente
exemplos dessas tcnicas.
a) transformaes de dados, confuso de registradores, tcnicas ativas
de antidebugging.
b) ofuscao de cdigo, eliminao de informao simblica, uso de
rvores transversais.
c) transformaes no controle de fluxo, transformaes de dados,
ofuscao e encriptao de cdigo.
d) encriptao de cdigo, bloqueio de acesso memria, confuso de
disassemblers.
e) varredura linear recursiva, tcnicas ativas de antidebugging,
transformaes no controle de fluxo.

Lcio Camilo

Questo 05 - FEPESE - 2010 - SEFAZ-SC - Auditor Fiscal da Receita Estadual Parte III - Tecnologia da Informao
Identifique as alternativas corretas a respeito de engenharia reversa.
1. Descompiladores so usados para obter o cdigo fonte de um software a
partir de seu cdigo binrio.
2. Ofuscadores de cdigo efetuam a cifragem de cdigos binrios de
programas com o intuito de impedir a sua descompilao.
3. Atravs de tcnicas de engenharia reversa, possvel obter diagramas
UML de um programa a partir de seu cdigo fonte.
4. Descompilao de cdigo e esteganografia so duas tcnicas
frequentemente usadas para realizar a engenharia reversa de sistemas
computacionais.
Assinale a alternativa que indica todas as afirmativas corretas.
a) So corretas apenas as afirmativas 1 e 3.
b) So corretas apenas as afirmativas 1 e 4.
c) So corretas apenas as afirmativas 2 e 3.
d) So corretas apenas as afirmativas 1, 2 e 4.
e) So corretas apenas as afirmativas 2, 3 e 4.
Lcio Camilo

Questo 05 - FEPESE - 2010 - SEFAZ-SC - Auditor Fiscal da Receita Estadual Parte III - Tecnologia da Informao
Identifique as alternativas corretas a respeito de engenharia reversa.
1. Descompiladores so usados para obter o cdigo fonte de um software a
partir de seu cdigo binrio.
2. Ofuscadores de cdigo efetuam a cifragem de cdigos binrios de
programas com o intuito de impedir a sua descompilao.
3. Atravs de tcnicas de engenharia reversa, possvel obter diagramas
UML de um programa a partir de seu cdigo fonte.
4. Descompilao de cdigo e esteganografia so duas tcnicas
frequentemente usadas para realizar a engenharia reversa de sistemas
computacionais.
Assinale a alternativa que indica todas as afirmativas corretas.
a) So corretas apenas as afirmativas 1 e 3.
b) So corretas apenas as afirmativas 1 e 4.
c) So corretas apenas as afirmativas 2 e 3.
d) So corretas apenas as afirmativas 1, 2 e 4.
e) So corretas apenas as afirmativas 2, 3 e 4.
Lcio Camilo

Questo 05 - FEPESE - 2010 - SEFAZ-SC - Auditor Fiscal da Receita Estadual Parte III - Tecnologia da Informao

1 - OK
2 - Os ofuscadores cifram o cdigo fonte
3 - OK. o que fazem programas como o Together, Power Architect, etc.
4 - Esteganografia (do grego "escrita escondida") o estudo e uso das
tcnicas para ocultar a existncia de uma mensagem dentro de outra. Em
outras palavras, esteganografia o ramo particular da criptologiaque
consiste em fazer com que uma forma escrita seja camuflada em outra a fim
de mascarar o seu verdadeiro sentido.
importante frisar a diferena entre criptografia e esteganografia. Enquanto
a primeira oculta o significado da mensagem, a segunda oculta a existncia
da mensagem.

Lcio Camilo

Gabarito
1. CERTO
2. A
3. A
4. C
5. A

Questes para Estudo

Questo 01

A engenharia reversa pode ser feita atravs de vrias


metodologias de anlises, entre elas a anlise estatstica
e probabilstica.
Certo

Lcio Camilo

Errado

Questo 01

A engenharia reversa pode ser feita atravs de vrias


metodologias de anlises, entre elas a anlise estatstica
e probabilstica.
Certo

Errado

A engenharia reversa pode ser feita atravs das anlises OffLine ou anlise
OnLine, tambm podem ser chamadas respectivamente de esttica e
dinmica.

Lcio Camilo

Questo 02

Debuggers so ferramentas utilizadas na anlise


dinmica, enquanto disassemblers so utilizados na
anlise esttica.
Certo

Lcio Camilo

Errado

Questo 02

Debuggers so ferramentas utilizadas na anlise


dinmica, enquanto disassemblers so utilizados na
anlise esttica.
Certo

Errado

Debuggers = anlise dinmica ou Online - avaliam o comportamento


Disassemblers = anlise esttica ou Offline - avaliam o cdigo.

Lcio Camilo

Questo 03

Ferramentas disassembler convertem o cdigo binrio


em uma representao em assembler.
Certo

Lcio Camilo

Errado

Questo 03

Ferramentas disassemblers convertem o cdigo binrio


em uma representao textual em assembler.
Certo

Errado

Assembler o compilador da linguagem Assembly

Lcio Camilo

Questo 04

ACPU l o cdigo de mquina, que nada mais do que


seqncias de bits que contm uma lista de instrues
para a CPU executar. Linguagem Assembly
simplesmente uma representao textual destes bits, que
so nominados apenas para que sejam legveis.
Certo

Lcio Camilo

Errado

Questo 04

A CPU l o cdigo de mquina, que nada mais do que


seqncias de bits que contm uma lista de instrues
para a CPU executar. Linguagem Assembly
simplesmente uma representao textual destes bits, que
so nominados apenas para que sejam legveis.
Certo

Errado

Cdigo de mquina e a linguagem Assembly so duas formas de


representar a mesma informao. Em vez de nmeros hexadecimais
enigmticos podemos olhar a instruo textual sendo nomes como MOV
(Move), XCHG (Exchange), e assim por diante.

Lcio Camilo

Questo 05

Alguns disassemblers funcionam tanto em user-mode


quanto em kernel-mode.
Certo

Lcio Camilo

Errado

Questo 05

Alguns disassemblers funcionam tanto em user-mode


quanto em kernel-mode.
Certo

Errado

Disassemblers so ferramentas de anlise esttica. Debuggers que avaliam


o fluxo de informao de um sistema so as ferramentas que podem operar
tanto em user-mode (com restries de execuo) quanto em kernel-mode
(com acesso ilimitado ao sistema operacional)

Lcio Camilo

Questo 06

essencial que as ferramentas debuggers incluam a


funcionalidade principal de um disassembler, que de
reverter o cdigo binrio para um cdigo em linguagem
de montagem.

Certo

Lcio Camilo

Errado

Questo 06

essencial que as ferramentas debuggers incluam a


funcionalidade principal de um disassembler, que de
reverter o cdigo binrio para um cdigo em linguagem
de montagem.

Certo

Errado

Algumas das principais funcionalidades de debuggers:


1.

Poderosa Ferramenta Disassembler

2.

Breakpoints de Software e Hardware

3.

Visualizao de Registro e Memria

4.

Informaes sobre processos

Lcio Camilo

Questo 07

Algumas ferramentas realizadas para anlise esttica na


engenharia reversa so IDA-PRO e ILDasm

Certo

Lcio Camilo

Errado

Questo 07

Algumas ferramentas realizadas para anlise esttica na


engenharia reversa so IDA-PRO e ILDasm

Certo

Lcio Camilo

Errado

Questo 08

A Linguagem Assembly
possui um conjunto de
instrues comuns para todas as arquiteturas de
computadores.

Certo

Lcio Camilo

Errado

Questo 08

A Linguagem Assembly
possui um conjunto de
instrues comuns para todas as arquiteturas de
computadores.

Certo
Errado
As instrues Assembly so especficas para cada
arquitetura de processador, ex IA-32, Sparc, etc.

Lcio Camilo

Questo 09

Enquanto debuggers que funcionam em Kernel mode


possuem acesso ilimitado inclusive ao sistema
operacional, debuggers user- mode possuem algumas
restries em suas execues.

Certo

Lcio Camilo

Errado

Questo 09

Enquanto debuggers que funcionam em Kernel mode


possuem acesso ilimitado inclusive ao sistema
operacional, debuggers user-mode possuem algumas
restries em suas execues.

Certo

Lcio Camilo

Errado

Questo 10

Ollydbg, Windbg, Ida Pro, SoftIce e Hex Workshop so


exemplos de ferramentas quem possuem a principal
finalidade serem do tipo debugger

Certo

Lcio Camilo

Errado

Questo 10

Ollydbg, Windbg, Ida Pro, SoftIce e Hex Workshop so


exemplos de ferramentas quem possuem a principal
finalidade serem do tipo debugger

Certo
Errado
A principal finalidade do Hex ser uma ferramenta para
patching.

Lcio Camilo

Questo 11

A utilizao de mquinas virtuais para depurar aplicaes


no recomendada j que esta no ir representar o
ambiente de hardware e software necessrios.

Certo

Lcio Camilo

Errado

Questo 11

A utilizao de mquinas virtuais para depurar aplicaes


no recomendada j que esta no ir representar o
ambiente de hardware e software necessrios.

Certo
Errado
Mquinas virtuais podem simular inclusive outras
arquiteturas, e so recomendadas a fim de que o
ambiente original no seja afetado por testes.

Lcio Camilo

Questo 12

Disassemblers so ferramentas utilizadas no mercado


para realizar engenharia reversa atravs da anlise
esttica e podem ser chamadas tambm de
decompiladores.

Certo

Lcio Camilo

Errado

Questo 12

Disassemblers so ferramentas utilizadas no mercado


para realizar engenharia reversa atravs da anlise
esttica e podem ser chamadas tambm de
decompiladores.

Certo
Errado
Decompilador diferente de disassembler.

Lcio Camilo

Questo 13

Decompiladores diferem de disassemblers pelo fato do


primeiro tentar reverter o cdigo para uma linguagem de
mais alto nvel do que a linguagem revertida pelos
disassemblers.

Certo

Lcio Camilo

Errado

Questo 13

Decompiladores diferem de disassemblers pelo fato do


primeiro tentar reverter o cdigo para uma linguagem de
mais alto nvel do que a linguagem revertida pelos
disassemblers.

Certo

Lcio Camilo

Errado

Questo 14

Algumas ferramentas decompiladoras existentes no


mercado so JAD, DCC, Winobj e Andromeda.

Certo

Lcio Camilo

Errado

Questo 14

Algumas ferramentas decompiladoras existentes no


mercado so JAD, DCC, Winobj e Andromeda.

Certo
Errado
WinObj ferramenta de monitorao do sistema.

Lcio Camilo

Questo 15

O conjunto de tcnicas que visam eliminar informaes


simblicas para que estas deixem de fazer sentido no
caso de uma engenharia reversa so chamadas de
Ofuscao de Cdigo.

Certo

Lcio Camilo

Errado

Questo 15

O conjunto de tcnicas que visam eliminar informaes


simblicas para que estas deixem de fazer sentido no
caso de uma engenharia reversa so chamadas de
Ofuscao de Cdigo.

Certo

Errado

Ofuscao de cdigo o conjunto de tcnicas que altera a estrutura do


cdigo, ocorre aps a compilao. A tcnica que elimina informao textual
(antes da compilao) chamada de Eliminao de Informao Simblica.

Lcio Camilo

Gabarito
1- ERRADO

6- CERTO

11- ERRADO

2- CERTO

7- CERTO

12- ERRADO

3- ERRADO

8- ERRADO

13- CERTO

4- CERTO

9- CERTO

14- ERRADO

5- ERRADO

10- ERRADO

15- ERRADO

You might also like