Ir ao conteúdo

Como entender valores hexadecimal


nosptter

Posts recomendados

Postado

Meu interesse (por enquanto) não é aprender tudo. Tô precisando entender isso pra conseguir recuperar meus arquivo de um 7z.

O criador do programa me passou os campos e onde ficam as informações. Os campos eu já achei, meu problema é entender o que as informações significam

Preciso saber como entender valores em INT64

Alguem me da uma ajuda com isso ou passa algum livro ou artigo ou link que ensine isso. Estou só a um passo de trazer meus arquivos de volta rs justamente o passo que eu não sei dar :S

Postado

Desculpa não sei se eu entendi a sua dúvida, se entendo bem você tem arquivos compactados em um formato 7z e por algum motivo você não consegue descompacta-los certo? Então você pegou o arquivo e abriu ele com algum editor hexadecimal e quer tentar ler a informação byte a byte?

Se for isso acho que o que você quer é descobrir como traduzir a informação compactada de volta para o original, sinto dizer mas isso não é tão simples assim, para fazer isso você teria que entender como um método de compactação funciona e pesquisar os algorimos usados para fazer essa compactação. Você poderia ir até o site do 7zip e até mesmo olhar o código fonte do programa para entender como ele faz a descompactação, mas se seu problema é não conseguir descompactar seu arquivo pelo 7zip acho que ocorreu algum erro e seu arquivo foi corrompido e ai eu não sei te dizer como você poderia recuperar seus arquivos. Só garanto que lendo byte a byte tentando achar pedaços de informações não vai resolver seu problema.

Postado

Olá CaioTakano,

Primeiro obrigado por me responder. Graças a Deus meu problema é de ordem menos complexa. Os arquivos estão só armazenados, porém criptografados. Eu fui converter meu hd de fat32 para ntfs e não sei porque motivo só a pasta que eu compartilhava com a rede ficou de fora. Ai fiz uma imagem do hd para um arquivo e por um editor de hexadecimal consegui achar a assinatura do 7z e encontrei alguns padroes no final de todos arquivos (em testes que eu fiz) e usei isso para tentar achar o fim do arquivo, o que eu acredito ter conseguido.

Porém o arquivo tava fragmentado, então eu não tenho todo ele e o programa não abre. Eu preciso descobrir o tamanho do arquivo em bytes para o programa ser capaz de abrir ele e ai eu só perco aquele os blocos que foram modificados.

O criador do programa me passou isso

SignatureHeader

~~~~~~~~~~~~~~~

BYTE kSignature[6] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C};

ArchiveVersion

{

BYTE Major; // now = 0

BYTE Minor; // now = 2

};

UINT32 StartHeaderCRC;

StartHeader

{

REAL_UINT64 NextHeaderOffset

REAL_UINT64 NextHeaderSize

UINT32 NextHeaderCRC

}

Full_7z_archive_Size = NextHeaderOffset + NextHeaderSize + 32.

onde começa os campos no editor hexadecimal eu já achei (ou acredito que achei). Meu problema é ler esses valores. Ele me disse que "nextheaderoffset" aponta pra outra parte do arquivo (que seria a cabeça (não sei se é assim que diz) e somando isso com mais o tamanho da cabeça e 32 eu poderia calcular o tamanho completo do arquivo. Meu problema é ler esses valores e entender o que eles significam.

Eu acredito que não falta muito, umas 4, 5, 6 megas e alguma coisa pra fechar. Estou a um passo só, isso tenho certeza. Já consegui ate descriptografar, mas no fim, como é tudo junto, não achei nenhum programa que consiga recuperar. O Winhex (editor que eu tô usando) ele ate acha alguma coisa, mas termina se perdendo, gera um MONTE de arquivos sem sentido, com as possiveis extensoes.

Uma solução também seria um programa que lesse byte a byte procura assinaturas de arquivos como jpeg, bmp, gif, mp3, wmv e tal, mas tinha que ser byte a byte e não por setores ou cluster. Mas acho que meu chute melhor era entender aquele codigo e ajeitar o tamanho do arquivo e ai como o 7zip vai conseguir abrir, ver o que ele me diz. Como arquivos tinham hash dá pra saber o que foi pro beleleu e o que ficou.

Era mais entender aqueles valores que eu estou procurando.

Postado

Eu não sei se é exatamente isso que você quer, ou se você já achou isso, mas nesse link: http://docs.bugaco.com/7zip/7zFormat.txt

Eu achei isso:

Notes about Notation and encoding

---------------------------------

(...)

REAL_UINT64 means real UINT64.

UINT64 means real UINT64 encoded with the following scheme:

Size of encoding sequence depends from first byte:

First_Byte Extra_Bytes Value

(binary)

0xxxxxxx : ( xxxxxxx )

10xxxxxx BYTE y[1] : ( xxxxxx << (8 * 1)) + y

110xxxxx BYTE y[2] : ( xxxxx << (8 * 2)) + y

...

1111110x BYTE y[6] : ( x << (8 * 6)) + y

11111110 BYTE y[7] : y

11111111 BYTE y[8] : y

Espero que isso te ajude.

Postado

Meu grande problema é entender isso tudo. Minha experiência com programação é zero, mas com certeza isso vai me ser muito útil.

Eu tô indo aqui meio que por uma engenharia reversa, se posso dizer assim. :)

Postado

Topico pode ser fechado resolvi meu problema.

hahahaha chega a ser engraçado. Era 5 mb exatas!! hahahahaha no fim eu usei um script basico pra ir trocando byte por byte (adicionando) e tentando abrir e hahaha 5mb exatas, rolou :D

o meu lado mais burro, foi fazer 1 por 1. Fragmentado ou não, eu devia ter me lembrado que o tamanho do cluster é o limite minimo de tamanho de um arquivo ou de um fragmento no disco. Ai em 4,5mb resolvi mudar para ir adicionando 16384 (16kb) e claro recomecei de um valor que fosse compativel com isso no meu caso (4440064 bytes) hahahaha tiro e queda.

O script ficou mais de um dia, só porque eu foi de byte em byte. Por que não pensei nisso antes? mas enfim, eles voltaram pra mim :)

Agradeço você CaioTakano por ter se interessado pelo meu problema. Valeu mesmo :)

O topico pode ser fechado pela moderação, caso resolvido :)

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!