Curso Técnicas de Engenharia Reversa de Softwares / Desenvolvimento de Sistemas / Todos
São Paulo Santos

Curso de Técnicas de Engenharia Reversa de Softwares

 

Quero dar aula deste curso na Tecnoponta

Você tem competências que o qualificam a dar uma ótima aula deste assunto? Queremos conversar com você!

Nome: Email:
Endereço: Bairro: Cidade: Estado:
Telefone 1: Telefone 2: Interesse em dar aula em:
Breve descrição de Competências / Experiências:


Observações:


Curso Técnicas de Engenharia Reversa de Softwares

OBJETIVO

O objetivo do Curso de Técnicas de Engenharia Reversa de Softwares em Santos é aprender os conceitos necessários de: Organização de Computadores, Linguagem de Máquina, Linguagem Assembly e técnicas relacionadas a esses tópicos utilizadas para entender e modificar um programa sem ter o seu código fonte original. O curso foi desenvolvido considerando arquitetura x86 de 32 e 64 bits.
Engenharia Reversa de Software é uma área de estudo onde você tem um binário e reverte ele em uma linguagem de programação (geralmente Assembly). Os conhecimentos dessa área são necessários quando você não tem o código fonte de um programa (por exemplo em sistemas legados) e você precisa modificar algo o programa ou ainda compreender o funcionamento (lógica) do mesmo.

PRÉ-REQUISITOS

Lógica de programação, alguma linguagem de programação (preferencialmente linguagem C)

METODOLOGIA

Aulas totalmente práticas, onde cada conceito, após uma breve explanação teórica, é executado / configurado, através de exemplos dirigidos e exercícios práticos, otimizando e reforçando o aprendizado. Curso Presencial em Santos com Apostila em PDF.

Conteúdo Curso de Técnicas de Engenharia Reversa de Softwares

  • Organização de computadores e linguagem de máquina (opcodes)
  • Arquitetura Von Neumann e os processadores x86.
  • Unidade Lógica e Aritmética, Memória, Registradores e a relação deles com o Sistema Operacionais.
  • Opcodes: abordagem binária e hexadecimal.
  • Diferenças entre arquiteturas de 32 e 64 bits (registradores e flags).
  • Exercícios emulando uma arquitetura e entendendo como os opcodes trabalham.
  • Linguagem Assembly - x86 32 and 64 bits
  • Opcodes x Linguagem Assembly.
  • Comandos Aritméticos e Lógicos.
  • Comandos de Acesso a Memória.
  • Escrevendo programas em Assembly (utilizando um montador).
  • Exercícios escrevendo diferentes tipos de programas utilizandos os comandos vistos em aula).
  • Depurando e alterando um binário (tempo real)
  • O que é um depurador e como utilizá lo?
  • Entendendo como um binário funciona e modificando o.
  • Removendo pequenas partes de um binário.
  • Acrescentando novos códigos em um binário.
  • Exercícios utilizando um depurador para compreender o comportamento de um binário; modificar o comportamento de um binário em tempo real.
  • Depurando e alterando um binário (permanentemente)
  • Utilizando um editor hexadecimal para alterar um binário no disco.
  • Estudo de Caso: Removendo propaganda.
  • Estudo de Caso: Removendo alertas indesejados.
  • Exercícios utilizando um editor hexadecimal para fazer alterações permantes em um binário; remover propagandas, verificação de senhas, entre outros itens, de um binário.

Instrutor

Alexandre Ferreira

Possui doutorado em engenharia pela USP e leciona cursos na área de Sistemas Operacionais, Redes de Computadores, Arquitetura de Computadores e Engenharia Reversa desde 2006. Trabalhou como engenheiro de softwares no setor púlbico e privado por quase 15 anos

Tecnoponta no Google+ Perfil Tecnoponta no Facebook Tecnoponta no Twitter Canal Tecnoponta no Youtube

Contato Direto

Fotos

Curso de Eng. Reversa



Vídeos

VÍDEO