oicìliS ©| O EXECUTÁVEL - este ilustre desconhecido | |||||||||
O executável utilizado como exemplo é o tutNB03.exe que se encontra para download no pacote tutNB03.zip. O roteiro para não se perder no emaranhado de informações: |
| 6. Diretórios de Dados | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Imediatamente após o cabeçalho do opcional vêm os diretórios de dados. É um array de IMAGE_NUMBEROF_DIRECTORY_ENTRIES (16) IMAGE_DATA_DIRECTORY. Cada um destes diretórios descrevem a localização (um RVA de 32 bits denominado 'VirtualAddress') e o tamanho (também de 32 bits, chamado 'Size') de uma peça de informação que está localizada em uma das seções que seguem as entradas de diretório. Por exemplo, o diretório de segurança (security directory) se encontra no RVA e tem o tamanho indicados no índice 4. Os índices definidos para os diretórios são:
Como exemplo, se encontrarmos 2 words longos no índice 7, cujos valores sejam 12000 e 33, e o endereço de carregamento for 10000, sabemos que os dados de copyright estão no endereço 10000 + 12000 (independentemente da seção em que possam estar) e que o comentário de copyright tem 33 bytes de comprimento. Se algum diretório de um tipo em particular não for usado no binário, o tamanho (Size) e o endereço virtual (VirtualAddress) são zero.
No nosso exemplo, no array de 12 elementos destacados em amarelo e laranja, apenas os diretórios de índice 1 e 2 possuem referências. O diretório de índice 1 refere-se aos símbolos importados: seu RVA é 0000 2040 e seu tamanho é 0000 003C. Portanto, os dados referentes aos símbolos importados estarão deslocados em 8256 bytes (2040h = 8256d) e ocupam 60 bytes (3Ch = 60d). O diretório de índice 2 refere-se aos recursos: seu RVA é 0000 4000 e seu tamanho é 0000 0960. Portanto, os dados referentes aos recursos estarão deslocados 16384 bytes (4000h = 16384d) e ocupam 2400 bytes (0960h = 2400d). |
Para este módulo, tente o seguinte:
|
Voltar | Próximo segmento do formato PE: Cabeçalhos das seções |