AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1483199
Accepted
J Rui Pinto
J Rui Pinto
Asked: 2019-09-17 08:46:14 +0800 CST2019-09-17 08:46:14 +0800 CST 2019-09-17 08:46:14 +0800 CST

Quais são os bytes finais do formato de arquivo *.docx

  • 772

Eu tenho um disco rígido que foi formatado e reinstalei seu sistema operacional.

O problema é que não estava inicializando antes da formatação e o backup de dados que fiz antes da formatação, por algum motivo, não tem todos os arquivos.
Faltam arquivos *.docx do Microsoft Word.

Agora estou tentando recuperar os arquivos com o Puran File Recovery , mas ele não tem uma entrada de verificação de extensão *.docx pré-incorporada.
O Puran File Recovery tem uma opção para criar entradas personalizadas e encontrei em filesignatures.net a assinatura de bytes iniciais, então agora consegui encontrar muitos cabeçalhos *.docx no disco rígido.

Meu problema agora é que não consigo encontrar em nenhum lugar quais são os bytes finais dos arquivos *.docx para que eu possa recuperar alguns arquivos.

hard-drive microsoft-word
  • 2 2 respostas
  • 7658 Views

2 respostas

  • Voted
  1. Best Answer
    Deltik
    2019-09-17T09:14:59+08:002019-09-17T09:14:59+08:00

    Um .docxarquivo é apenas um .ziparquivo. É assim que um arquivo Zip é estruturado:

    Estrutura de um arquivo Zip

    O final de um arquivo Zip é indicado pelo final do registro do diretório central ( EOCD ) . O comprimento do EOCD é variável porque pode conter um comentário de até 65535 bytes. Veja a parte em negrito do layout EOCD abaixo:

    +--------+--------+------------------------------ --------------------------------------+
    | Deslocamento | bytes | Descrição |
    +--------+--------+------------------------------ --------------------------------------+
    | 0 | 4 | Fim da assinatura do diretório central = 0x06054b50 |
    | 4 | 2 | Número deste disco |
    | 6 | 2 | Disco onde o diretório central começa |
    | 8 | 2 | Número de registros do diretório central neste disco |
    | 10 | 2 | Número total de registos do directório central |
    | 12 | 4 | Tamanho do diretório central (bytes) |
    | 16 | 4 | Deslocamento do início do diretório central, relativo ao início do arquivo |
    | 20 | 2 | Comprimento do comentário (n) |
    | 22 | n | Comentário |
    +--------+--------+------------------------------ --------------------------------------+
    

    Tabela da Wikipédia » Zip (formato de arquivo) » Fim do registro do diretório central (EOCD)

    Você pode obter o final de um arquivo Zip procurando por 0x06054b50(o início do EOCD) e contando 16 bytes depois disso. Defina os próximos dois bytes como 0x0000para ignorar o comentário e agora você deve ter o final de um arquivo Zip válido.


    Observação: isso não leva em consideração a fragmentação do sistema de arquivos. Sua abordagem de recuperação não funcionará se o arquivo .docx/ estiver .zipfragmentado no disco porque as assinaturas encontradas serão quebradas. Você precisaria de algumas informações do sistema de arquivos para juntar os arquivos fragmentados; as assinaturas iniciais e finais não possuem essa informação.

    PhotoRec é um software que já usei antes que tem alguns truques para descobrir como juntar arquivos fragmentados. Crucialmente para você, o PhotoRec possui suporte integrado para arquivos Zip , então você pode tentar o TestDisk/PhotoRec se sua estratégia atual de pesquisa de assinaturas não estiver funcionando para você.

    • 72
  2. Nick Matteo
    2019-09-18T08:52:42+08:002019-09-18T08:52:42+08:00

    A resposta de Deltik está correta. Algumas informações potencialmente úteis:

    A sequência de bytes para o cabeçalho End-Of-Central-Directory aparecerá como 504b0506 (ordem inversa), conforme visualizado por um editor hexadecimal, como xxd, ou em uma sequência endereçada por byte.

    Em um arquivo OpenOfficeXML válido, como um arquivo .docx, nunca há um comentário de fim de diretório central (consulte ECMA-376 , Parte 2 , página 76: "comentário de arquivo ZIP" não deve ser produzido. No entanto, os consumidores devem suportar a leitura de um arquivo contendo tal comentário de qualquer maneira.)

    Além disso, os arquivos de vários discos não são suportados (consulte a página 75), portanto, o campo "Número deste disco" e o campo "Disco onde o diretório central começa" são sempre 0. Além disso, o "Número de registros do diretório central neste disco " e os campos "Número total de registros do diretório central" devem ser iguais.

    Ao todo, os 22 bytes finais de qualquer arquivo .docx devem sempre ter o formato

     50 4b 05 06 00 00 00 00 ## ## ## ## ## ## ## ## ## ## ## ## 00 00
    | signature |disk |CD-  |num. |num. |size of CD | CD offset |comment
    |           |num. |disk |recs |recs |           |           |length
    
    • 12

relate perguntas

  • Editando um modelo no word para remover espaços feios

  • Microsoft Word - Como reduzir o tamanho do texto em todos os estilos

  • Devo particionar um SSD secundário (sem sistema operacional) usado para armazenamento? [fechado]

  • A execução do CrystalDiskMark causa BSOD no Windows 10

  • O fenômeno 'Write cliff' só acontece com discos SSD?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve