conteúdo parcial
This commit is contained in:
parent
2991d210da
commit
c77e27cf90
1 changed files with 91 additions and 0 deletions
91
curso/contents.org
Normal file
91
curso/contents.org
Normal file
|
@ -0,0 +1,91 @@
|
|||
* 1 -- Arquitetura de computadores
|
||||
|
||||
** Modelo de von Neumann
|
||||
*** Influência nas arquiteturas modernas
|
||||
*** Gargalo de Von Neumann
|
||||
** Arquiteturas x86
|
||||
*** Características
|
||||
*** Gerações da família x86:
|
||||
*** Comparativo com outras arquiteturas
|
||||
** Componentes de uma CPU x86_64
|
||||
** Principais registradores e seus propósitos (64 bits)
|
||||
*** Relação com outras arquiteturas x86
|
||||
** Primeiro exemplo em Assembly x86_64
|
||||
*** Seção do código executável
|
||||
*** O ponto de entrada
|
||||
*** Chamada de sistema
|
||||
*** Montagem e execução (no terminal)
|
||||
|
||||
* 2 -- Linguagens, montagem e compilação
|
||||
|
||||
** Do código-fonte ao binário
|
||||
*** Arquivos texto e binários
|
||||
*** Formato de binário executável
|
||||
** Programação em código de máquina
|
||||
** Linguagens de baixo e alto nível
|
||||
** Sistemas de tradução de linguagens
|
||||
*** Linguagens interpretadas
|
||||
*** Linguagens compiladas
|
||||
*** Linguagens de montagem
|
||||
** Um programa em Assembly
|
||||
*** Tamanho do binário em bytes
|
||||
*** Informações gerais do arquivo
|
||||
*** Cabeçalho do formato ELF
|
||||
*** Lista de seções do programa
|
||||
*** Despejo do conteúdo (em hexa) da seção .text
|
||||
*** Despejo do conteúdo (em hexa) da seção .rodata
|
||||
** Uma versão equivalente em C
|
||||
*** Tamanho do binário em bytes:
|
||||
*** Informações gerais do arquivo
|
||||
*** Cabeçalho do formato ELF
|
||||
*** Lista de seções do programa
|
||||
*** Despejo do conteúdo (em hexa) da seção .text
|
||||
*** Despejo do conteúdo (em hexa) da seção .rodata
|
||||
** Desmontagem comparativa
|
||||
|
||||
* 3 -- O formato binário ELF
|
||||
|
||||
** O que é o formato ELF
|
||||
*** Principais tipos de arquivos objeto
|
||||
** Formato do arquivo
|
||||
** Seções especiais
|
||||
** Tipos de segmentos
|
||||
** Definindo seções ELF em NASM para Linux 64 bits
|
||||
*** Uma nota sobre alinhamento de dados
|
||||
*** Inspecionando a seção .rodata
|
||||
*** Inspeção da seção .data
|
||||
*** Inspecionando a seção .bss
|
||||
|
||||
* 4 -- Mapeamento de memória
|
||||
|
||||
** Como programas são executados
|
||||
*** O que são processos
|
||||
*** Layout da memória virtual de um processo
|
||||
** Explorando os espaços de endereços de processos
|
||||
** Mapeamento de memória de um programa em C
|
||||
*** Análise com 'pmap'
|
||||
*** Análise com o arquivo /proc/<pid>/maps
|
||||
** Mapeamento de memória de um programa em Assembly
|
||||
*** Análise com o GNU Debugger (GDB)
|
||||
*** Executáveis independentes de posição (PIE)
|
||||
|
||||
* 5 -- Pilha de hardware e pilha de memória
|
||||
|
||||
** Objetivos
|
||||
** O conceito de pilha (stack)
|
||||
*** Implementação da pilha como estrutura de dados
|
||||
*** Aplicações típicas
|
||||
*** Operações associadas às pilhas
|
||||
** Pilha de memória
|
||||
** Pilha de hardware
|
||||
** Registradores e a pilha de memória
|
||||
** Convenções de chamadas de funções (System V AMD64 ABI)
|
||||
*** Ordem dos argumentos
|
||||
*** Valor de retorno
|
||||
*** Registradores preservados e não preservados
|
||||
*** Exemplo em C
|
||||
*** Quadro de pilha (/stack frame/)
|
||||
** Convenções de chamadas de sistema
|
||||
*** Exemplo em Assembly
|
||||
*** Preservação de registradores com a pilha
|
||||
*** Resumo comparativo com chamadas de funções
|
Loading…
Add table
Reference in a new issue