Não consigo encontrar nenhuma indicação na Web de que um binário do PE deva ser um múltiplo de 256 bytes, e isso parece altamente improvável.
Como contraponto, observei a excel.exeminha máquina atual (do Office 2003) que desmente essa teoria.
Tamanho do
arquivo : 10 095 808 (9,62MiB)
Não divisível por 256 (a divisão resulta em 39436.75).
PE binário? Sim:
Inicia com o identificador MZ , a primeira linha (leitura no bloco de notas!) Contém a This program cannot be run in DOS mode.sequência esperada . Esta seção está aqui para desviar com segurança o DOS (como no próprio DOS, não na linha de comando do Windows) de executar o binário sem travar.
Contém o identificador PE em cerca de byte 295 (novamente, lendo no bloco de notas, desculpe qualquer imprecisão). É aqui que a execução será iniciada em todos os sistemas operacionais compatíveis.
PS: A maioria (todos?) Dos executáveis de 32 bits no Windows moderno está no formato PE.
Tamanho é o número de bytes que o arquivo realmente contém.
Tamanho no disco é o número de bytes que o arquivo precisa usar na sua unidade. Normalmente, isso é maior porque precisa arredondar para um múltiplo do tamanho do cluster (também chamado de unidade de alocação ) dessa partição / disco. Normalmente, isso é um múltiplo do tamanho de setor do seu disco, que normalmente é de 512 bytes para os HDDs magnéticos mais modernos.
O tamanho do cluster é geralmente o 4KiB por padrão - dependendo do sistema operacional, sistema de arquivos e tamanho do disco - mas geralmente é possível definir o tamanho usado ao formatar o disco / partição.
Consulte este artigo da Microsoft KB para obter informações sobre tamanhos padrão na maioria de seus sistemas operacionais.
Isso significa que um arquivo de 1 byte terá que usar o tamanho de 1 cluster inteiro, porque um cluster pode conter apenas um único arquivo, independentemente de esse arquivo ocupar apenas uma pequena parte do cluster.
Quero dizer Tamanho, não Tamanho no Disco. E eu estou falando sobre o PE binário no Windows.
ganho
Que tipo de arquivo você está falando não importa, o que eu disse é válido para todos os arquivos, embora não seja relevante, nesse caso. Eu duvido muito que o formato do arquivo exija um tamanho múltiplo de 256, mas não consigo encontrar uma fonte para me fazer backup no momento.
DMA57361
Após uma rápida pesquisa na web, não consigo encontrar nenhuma indicação de que isso seja uma restrição ao tamanho do arquivo. Como um rápido contra-argumento que acabei de examinar no meu Office 2003 excel.exe, ele tem 10095808 bytes de tamanho - ou 9,62 Mb - e não é divisível de maneira uniforme por 256. Ele tem o MZidentificador como o primeiro dos caracteres e o identificador PEexiste a cerca de byte 295 (estava lendo com o bloco de notas; não é a melhor ferramenta para o trabalho, desculpe a imprecisão), por isso tenho certeza de que é um binário de PE, ficaria surpreso se não.
Respostas:
Não consigo encontrar nenhuma indicação na Web de que um binário do PE deva ser um múltiplo de 256 bytes, e isso parece altamente improvável.
Como contraponto, observei a
excel.exe
minha máquina atual (do Office 2003) que desmente essa teoria.Tamanho do
arquivo : 10 095 808 (9,62MiB)
Não divisível por 256 (a divisão resulta em 39436.75).
PE binário? Sim:
Inicia com o identificador MZ , a primeira linha (leitura no bloco de notas!) Contém a
This program cannot be run in DOS mode.
sequência esperada . Esta seção está aqui para desviar com segurança o DOS (como no próprio DOS, não na linha de comando do Windows) de executar o binário sem travar.Contém o identificador PE em cerca de byte 295 (novamente, lendo no bloco de notas, desculpe qualquer imprecisão). É aqui que a execução será iniciada em todos os sistemas operacionais compatíveis.
PS: A maioria (todos?) Dos executáveis de 32 bits no Windows moderno está no formato PE.
fonte
Tamanho ou tamanho no disco ?
Tamanho é o número de bytes que o arquivo realmente contém.
Tamanho no disco é o número de bytes que o arquivo precisa usar na sua unidade. Normalmente, isso é maior porque precisa arredondar para um múltiplo do tamanho do cluster (também chamado de unidade de alocação ) dessa partição / disco. Normalmente, isso é um múltiplo do tamanho de setor do seu disco, que normalmente é de 512 bytes para os HDDs magnéticos mais modernos.
O tamanho do cluster é geralmente o 4KiB por padrão - dependendo do sistema operacional, sistema de arquivos e tamanho do disco - mas geralmente é possível definir o tamanho usado ao formatar o disco / partição.
Consulte este artigo da Microsoft KB para obter informações sobre tamanhos padrão na maioria de seus sistemas operacionais.
Isso significa que um arquivo de 1 byte terá que usar o tamanho de 1 cluster inteiro, porque um cluster pode conter apenas um único arquivo, independentemente de esse arquivo ocupar apenas uma pequena parte do cluster.
fonte
excel.exe
, ele tem 10095808 bytes de tamanho - ou 9,62 Mb - e não é divisível de maneira uniforme por 256. Ele tem oMZ
identificador como o primeiro dos caracteres e o identificadorPE
existe a cerca de byte 295 (estava lendo com o bloco de notas; não é a melhor ferramenta para o trabalho, desculpe a imprecisão), por isso tenho certeza de que é um binário de PE, ficaria surpreso se não.