conteúdo parcial

This commit is contained in:
Blau Araujo 2025-05-22 14:42:10 -03:00
parent c77e27cf90
commit 1cd49c8508

View file

@ -1,91 +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)
- 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
- 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
- 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)
- 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
- 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