Imprimir post Imprimir post
 

Imagens de HD com dd: cópia bit a bit?

Bem, resolvi fazer aqui um comentário simples mas que poderá ser útil para alguém (nem que seja academicamente). Acabo de ler em um blog a seguinte frase:

[...] capturar uma imagem forense, [...] comando dd. Esse comando realiza a cópia exata (bit a bit) da origem para o destino. (sic)

Ocorre que, como um comando, o dd está sob um sistema operacional. Todo sistema operacional, para acessar um disco ou mídia (HD, CD, DVD, pendrive) precisa solicitar ao hardware que disponibilize os dados. A controladora de um disco só consegue acessar setores. Cada setor de HD possui 512 bytes hoje em dia (há um esforço para que isso mude, em breve, para 4096 bytes, o que possibilitaria a construção de discos maiores que 2 TB). Já o filesystem, depois de acessar os setores, disponibiliza os blocos (ou clusters, como a M$ os chama). Assim, não existe a possibilidade de cópia bit a bit. A cópia do dd é feita setor a setor e é por isso que o valor default do parâmetro bs é 512. Caso você queira ler o primeiro bit do HD, o sistema operacional carregará o primeiro setor, lerá o primeiro bit e descartará o restante das informações. Para ler o segundo bit, ocorrerá uma ação similar. Em outras palavras, uma cópia bit a bit seria algo extremamente desgastante e demorado. Para testar isso, insira um pendrive pequeno e utilize os seguintes comandos (considerando o pendrive como sendo /dev/sdb):

# time dd if=/dev/sdb of=/tmp/pen.dd
# time dd if=/dev/sdb of=/tmp/pen.dd bs=1

No primeiro caso, fizemos uma cópia setor a setor. Isso é o normal. No segundo, fizemos byte a byte. Ou seja: lemos todo o setor, pegamos 1 byte e, depois, descartamos o resto. Veja a diferença de tempo. No meu caso, com um pendrive de 64 MB, a primeira opção demorou 9 segundos. A segunda opção demorou 4 minutos e 13 segundos. Imagine se fosse bit a bit...

Esse erro é muito comum, pois constantemente ouvimos pessoas falando em cópia bit a bit ou byte a byte. Realmente, no dd, há uma opção de ler x bytes por bloco. Mas, mesmo assim, setores inteiros deverão ser carregados a partir do HD para que, depois, sejam extraídos x bytes.

Apenas para lembrar, este blog é reservado para assuntos técnicos de informática. Para assuntos casuais, possuo outro blog cujo endereço é http://www.eriberto.pro.br/blog2.

Tags:, , , , , , ,

20 Comments

Sérgio Berlotto
maio 11, 2009 at 1:53 pm

Muito interessante, estes são detalhes que muitas vezes passamos por cima sem ao menos ter conhecimento.
Valeu pela explicação....


 
Jader
maio 13, 2009 at 8:52 pm

O interessante Eriberto é que sempre vejo isso relacionado ao dd, cópia bit a bit, acho q por pura abstração, acho(minha opnião) que isso é relacionado devido ao fato de copiar blocos defeituosos, slack space...etc. O que vc acha??

Abs


 
Eriberto
maio 14, 2009 at 11:49 am

Jader, na verdade, costumo ver as pessoas escrevendo isso em sites ou falando em palestras não como abstração e sim com tom de realidade. Pode ter a certeza de que essas pessoas acreditam que é assim que a coisa acontece.


 
Diego
nov 7, 2010 at 11:43 am

Esse post me ajudou muito, já ia escrever bobagem no meu TCC. 😉

Obrigado pelo post.


 
Eriberto
nov 8, 2010 at 8:17 am

Opa Diego!

Que bom que foi útil para alguém. Boa sorte!


 
macedo
mar 25, 2011 at 5:18 pm

Eriberto, você poderia me indicar onde posso achar material sobre este processo? tudo sobre copia bit a bit e bloco a bloco..algo que fale desde o processo da subida dos dados para a memória até como é feito este processo de cópia?


 
Eriberto
abr 6, 2011 at 1:24 pm

Macedo, tente a minha palestra sobre gerenciamento de memória. http://eriberto.pro.br/palestras.


 
Felipe Farias
nov 16, 2011 at 11:18 pm

Olha, dá pra fazer uma cópia bit a bit de um cd pra outro, pra que fiquem exatamente iguais?

Por exemplo:

Copiar um CD original para uma mídia virgem, fazendo com que a cópia também seja um "orignal".

Tem como fazer isso?

Abraço!


 
Eriberto
nov 18, 2011 at 7:30 am

Felipe, bit a bit não... Leia o post...

Mas você pode usar qualquer programa de copiar CDs para isso. Determine que o programa crie uma imagem ISO do CD original no seu HD. Depois, escolha a opção gravar CD a partir de uma imagem ou similar. Dá para fazer a imagem com dd ou dcfldd também.

Veja este post para saber mais sobre dcfldd: http://eriberto.pro.br/blog/?p=284

[]s


 
Marcio
jan 6, 2012 at 7:10 am

Parabéns pelo breve post, realmente interessante. Eu como aluno de pós em computação forense ouço pelos arredores as pessoas dizendo exatamente dessa forma (inclusive alguns professores) "cópia bit a bit". A realidade é exatamente essa, as cópias comumente são feitas setor por setor, vale ressaltar essa informação.


 
Eriberto
jan 6, 2012 at 7:29 am

Obrigado Marcio. Canso de falar e demonstrar isso para os meus alunos.

[]s!


 
Rafael Fernandes
jan 19, 2013 at 12:57 pm

Já havia visto esse poste antes, mas achei "besteira" me deparando com um problema na areá voltei a pesquisar e pimba, claro como uma luz hehehe era "besteira" pois minhas limitações e exigências não exigiam tais informações, mas agora faz todo sentido do mundo, parabéns pelo post e eficiente.


 
Eriberto
fev 25, 2013 at 3:33 pm

Grato Rafael!


 
Diego Bueno
abr 13, 2013 at 1:10 am

Tudo bem, eu acreditava na tal cópia bit a bit, mais se ela não existe, como é possível recupera dados perdidos do HD clonado? De fato é possível?


 
Eriberto
maio 9, 2013 at 2:57 pm

Diego, acho que você não entendeu direito... A cópia existe. Só não é feita bit a bit e sim setor a setor. E sim, é possível recuperar dados perdidos.

[]s


 
Cristiano
jun 13, 2013 at 4:22 pm

Bom gostaria que me tirassem uma dúvida: em um hd antigo foram deletados varios documentos, videos e fotos, esse hd continuou funcionando por uns 5 meses ai foi clonado pelo programa acronis...pergunta: no hd novo ( que é copia do antigo) é possivel recuperar aqueles dados apagados do hd antigo (fotos, videos etc) ? ou seja, na clonagem feita pelo acronis 10.2 , ele copiou os arquivos "visiveis" somente , ou também pode ter copiado aqueles arquivos excluidos , mas que ficaram "guardados" invisivelmente no hd antigo? obrigado


 
Cristiano
jun 13, 2013 at 4:26 pm

obs o sistema nao é o linux e sim win xp. Valeu


 
Eriberto
jun 22, 2013 at 11:33 am

Cristiano, só conhecendo o programa para saber sobre isso. Se ele copiou os blocos do filesystem, dá para recuperar. Se ele copiou arquivos existentes, já era.

[]s


 
Carla Marcela
maio 16, 2015 at 1:20 pm

Olá Eriberto,

Conforme sua excelente explicação, academicamente falando, como é correto dizer? Copia byte-a-byte ou setor-a-setor?
Onde tem uma referência que explique este processo completo?

Muito obrigada.


 
Eriberto
ago 23, 2015 at 10:58 am

Olá Carla. O correto hoje em dia é setor físico a setor físico.

[]s


 

Reply

*

Copyright © 2018 Eriberto Blog All rights reserved.
desk-mess-mirrored v theme from BuyNowShop.com.