terça-feira, 25 de janeiro de 2011

Recuperando e organizando os arquivos pelos tipos

Com o propósito de recuperar todos os arquivos, alocados e não alocados, de um computador, a coleção The Sleuth Kit (TSK) traz em seu repertório forense a ferramenta denominada sorter.

O sorter é um script em Perl que analisa um sistema de arquivos para organizar os arquivos alocados e não alocados pelos seus tipos. Este script classifica os arquivos de uma imagem ou dispositivo de armazenamento em categorias, executando o comando "file" em cada arquivo e organizando os arquivos de acordo com regras pré-estabelecidas.

A ferramenta sorter trabalha utilizando outras ferramentas do TSK. Basicamente, o script executa a ferramenta "fls" para identificar os arquivos, cada arquivo identificado é visualizado com a ferramenta "icat", e a seguir, o comando "file" é executado para identificar o tipo do arquivo, baseado nas informações do cabeçalho. O sorter utiliza as regras definidas em seu arquivo de configuração, para classificar os arquivos, e também compara a extensão de cada arquivo, se houver, com a regra para seu tipo identificado.

Após toda esta varredura os arquivos são copiados, se a linha de comando conter o argumento -s, para um diretório no computador forense, fornecido com o argumento -d. Dentro deste diretório são criados subdiretórios nomeados de acordo com as categorias. Cada arquivo é renomeado usando o nome do sistema de arquivos, seguido do endereço e da extensão original.

Pode-se também gerar um índice em HTML, com o argumento -h, e os arquivos não identificados podem ser ignorados utilizando o argumento -U.

O sorter trabalha com imagens ou acessando diretamente o dispositivo de armazenamento. Existem outros argumentos para sua linha de comando, conforme sua página manual, mas uma linha de comando básica é exemplificada a seguir:

$ sorter -i raw -f fat32 -o 63 -d ~/data-sorter -s -h imagem.dd

Ou, acessando diretamente o dispositivo (geralmente necessita estar como superusuário):

# sorter -i raw -f fat32 -o 63 -d ~/data-sorter -s -h /dev/sdb

O argumento -i especifica o tipo onde o sistema de arquivos está localizado. O argumento -f especifica o tipo do sistema de arquivos. O argumento -o especifica o setor onde inicia o sistema de arquivos. O argumento -d, como já descrito, especifica para onde irão os arquivos e o argumento -s salva os arquivos no diretório.

Para os arquivos não alocados, o sorter recupera o que ainda estiver disponível, o que ainda não foi sobreposto. Se o arquivo foi sobreposto parcialmente, o sorter consegue recuperar parte do arquivo, resultando em um arquivo incompleto.

O resultado da ferramenta sorter pode ocupar bastante espaço em disco, às vezes mais do que o tamanho da unidade de armazenamento. Já vi um disco rígido de 40 GB retornar 60 GB de dados. Portanto, certifique-se de possuir espaço suficiente.

Esta ferramenta é muito utilizada na computação forense nos casos que necessitam uma recuperação de todos os arquivos, incluindo imagens, vídeos e documentos.

terça-feira, 18 de janeiro de 2011

Retirando os intervalos comerciais de uma gravação

Quem possui um dispositivo de captura de vídeo no computador, pode gravar um programa de televisão direto para seu disco rígido (http://dan-scientia.blogspot.com/2009/05/capturando-transmissao-da-tv-com-o.html). Em uma operação normal, antes de iniciar o programa ativa-se a gravação e só desliga após o término, sem se preocupar em pular os intervalos comerciais.

É muito chato ficar controlando o intervalo enquanto assistimos e gravamos o programa, também é difícil prever com exatidão o momento que termina uma parte ou que inicia a próxima. Felizmente, esta edição simultânea é desnecessária pois podemos fazer isto depois.

Com a ferramenta MEncoder, distribuído juntamente com o MPlayer, é possível copiar trechos de um arquivo de vídeo e gravá-los gerando outros arquivos. Assim, escolhemos somente o programa, deixando de fora os intervalos comerciais.

Antes de extrair é preciso anotar os tempos de cada parte do programa, a hora do início e do fim, e calcular a duração de cada parte. Reproduzindo o vídeo, da gravação na íntegra, por exemplo com o MPlayer, podemos pressionar a tecla "o" para alterar o estado do OSD até aparecer na tela o relógio da reprodução.

Se, por exemplo, anotarmos que a primeira parte vai do tempo 00h00m27s até 00h13m12s, podemos calcular que esta parte termina em 13 x 60 + 12 = 792 segundos e que a duração desta parte tem 792 - 27 = 765 segundos. Então, a linha de comando para o MEncoder copiar somente este trecho, para um outro arquivo, é:

$ mencoder gravacao.mpg -o parte1.mpg -oac copy -ovc copy -ss 00:00:27 -endpos 765

Este procedimento se repete para as outras partes que existirem. Quando tivermos todas as partes separadas em arquivos, podemos juntá-las gerando agora um novo arquivo com todo o programa, sem os intervalos comerciais. Um exemplo de linha de comando para juntar as partes é:

$ mencoder -oac copy -ovc copy -o editado.mpg parte1.mpg parte2.mpg parte3.mpg parte4.mpg

Consulte a página manual do MEncoder para informações detalhadas sobre sua linha de comando. Esta ferramenta é bastante versátil.

sábado, 15 de janeiro de 2011

Produtos curiosos da matemática

Os números na matemática podem fazer muitas curiosidades. Eu encontrei estas combinações fascinantes de números em operações de multiplicação (algumas com complemento da soma). Veja o que os números podem apresentar:


1 x 7 + 3 = 10
14 x 7 + 2 = 100
142 x 7 + 6 = 1000
1428 x 7 + 4 = 10000
14285 x 7 + 5 = 100000
142857 x 7 + 1 = 1000000
1428571 x 7 + 3 = 10000000
14285714 x 7 + 2 = 100000000
142857142 x 7 + 6 = 1000000000
1428571428 x 7 + 4 = 10000000000
14285714285 x 7 + 5 = 100000000000
142857142857 x 7 + 1 = 1000000000000
...


1 x 8 + 1 = 9
12 x 8 + 2 = 98
123 x 8 + 3 = 987
1234 x 8 + 4 = 9876
12345 x 8 + 5 = 98765
123456 x 8 + 6 = 987654
1234567 x 8 + 7 = 9876543
12345678 x 8 + 8 = 98765432
123456789 x 8 + 9 = 987654321


1 x 9 + 2 = 11
12 x 9 + 3 = 111
123 x 9 + 4 = 1111
1234 x 9 + 5 = 11111
12345 x 9 + 6 = 111111
123456 x 9 + 7 = 1111111
1234567 x 9 + 8 = 11111111
12345678 x 9 + 9 = 111111111
123456789 x 9 + 10 = 1111111111


9 x 9 + 7 = 88
98 x 9 + 6 = 888
987 x 9 + 5 = 8888
9876 x 9 + 4 = 88888
98765 x 9 + 3 = 888888
987654 x 9 + 2 = 8888888
9876543 x 9 + 1 = 88888888
98765432 x 9 + 0 = 888888888


1 x 1 = 1
11 x 11 = 121
111 x 111 = 12321
1111 x 1111 = 1234321
11111 x 11111 = 123454321
111111 x 111111 = 12345654321
1111111 x 1111111 = 1234567654321
11111111 x 11111111 = 123456787654321
111111111 x 111111111 = 12345678987654321
1111111111 x 1111111111 = 1234567900987654321
11111111111 x 11111111111 = 123456790120987654321
...


11 x 11 = 121
112211 x 11 = 1234321
1122332211 x 11 = 12345654321
11223344332211 x 11 =  123456787654321
112233445544332211 x 11  = 1234567900987654321
...


11 x 11 = 121
121 x 11 = 1331
12321 x 11 = 135531
1234321 x 11 = 13577531
123454321 x 11 = 1357997531


111 x 11 = 1221
121 x 11 = 1331
131 x 11 = 1441
141 x 11 = 1551
151 x 11 = 1661
161 x 11 = 1771
171 x 11 = 1881
181 x 11 = 1991


4 x 4 = 16
34 x 34 = 1156
334 x 334 = 111556
3334 x 3334 = 11115556
33334 x 33334 = 1111155556
333334 x 333334 = 111111555556
...


7 x 7 = 49
67 x 67 = 4489
667 x 667 = 444889
6667 x 6667 = 44448889
66667 x 66667 = 4444488889
666667 x 666667 = 444444888889
6666667 x 6666667 = 44444448888889
...


9 x 9 = 81
99 x 99 = 9801
999 x 999 = 998001
9999 x 9999 = 99980001
99999 x 99999 = 9999800001
999999 x 999999 = 999998000001
9999999 x 9999999 = 99999980000001
...


7 x 9 = 63
77 x 99 = 7623
777 x 999 = 776223
7777 x 9999 = 77762223
77777 x 99999 = 7777622223
777777 x 999999 = 777776222223
...


3 x 37 = 111
33 x 3367 = 111111
333 x 333667 = 111111111
3333 x 33336667 = 111111111111
33333 x 3333366667 = 111111111111111
333333 x 333333666667 = 111111111111111111
3333333 x 33333336666667 = 111111111111111111111
33333333 x 3333333366666667 = 111111111111111111111111
333333333 x 333333333666666667 = 111111111111111111111111111
3333333333 x 33333333336666666667 = 111111111111111111111111111111
...


7 x 15873 = 111111
14 x 15873 = 222222
21 x 15873 = 333333
28 x 15873 = 444444
35 x 15873 = 555555
42 x 15873 = 666666
49 x 15873 = 777777
56 x 15873 = 888888
63 x 15873 = 999999


3 x 37 = 111 e 1 + 1 + 1 = 3
6 x 37 = 222 e 2 + 2 + 2 = 6
9 x 37 = 333 e 3 + 3 + 3 = 9
12 x 37 = 444 e 4 + 4 + 4 = 12
15 x 37 = 555 e 5 + 5 + 5 = 15
18 x 37 = 666 e 6 + 6 + 6 = 18
21 x 37 = 777 e 7 + 7 + 7 = 21
24 x 37 = 888 e 8 + 8 + 8 = 24
27 x 37 = 999 e 9 + 9 + 9 = 27


1 x 9 = 09 e 0 + 9 = 9
2 x 9 = 18 e 1 + 8 = 9
3 x 9 = 27 e 2 + 7 = 9
4 x 9 = 36 e 3 + 6 = 9
5 x 9 = 45 e 4 + 5 = 9
6 x 9 = 54 e 5 + 4 = 9
7 x 9 = 63 e 6 + 3 = 9
8 x 9 = 72 e 7 + 2 = 9
10 x 9 = 90 e 9 + 0 = 9

Ferramentas de linha de comando do The Sleuth Kit

O The Sleuth Kit (TSK) é uma coleção de ferramentas de linha de comando para Unix que permite investigar um computador, isto é, trata-se de uma coleção de ferramentas forenses. O objetivo destas ferramentas é o acesso aos arquivos e aos sistemas de arquivos. O TSK suporta os sistemas de arquivos FAT, Ext2/3, NTFS, UFS, e ISO 9660.

Ao todo são 27 ferramentas que fornecem informações ou conteúdo de arquivos, unidades de dados, volumes, partições, sistemas de arquivos e metadados como Mac times e inode. Veja abaixo uma lista das ferramentas com uma breve descrição da respectiva funcionalidade:

blkcalc - Converte entre números de unidades não alocadas no disco e números de unidades regulares no disco.
blkcat - Mostra o conteúdo da unidade de dados do sistema de arquivos (blocos) em uma imagem de disco.
blkls - Lista as unidades de dados do sistema de arquivos (blocos).
blkstat - Mostra os detalhes de uma unidade de dados do sistema de arquivos (bloco ou setor).
ffind - Encontra o nome de um arquivo ou diretório pelo inode.
fls - Lista os nomes dos arquivos e diretórios de uma imagem de disco.
fsstat - Mostra os detalhes gerais de um sistema de arquivo.
hfind - Consulta um valor de Hash em uma base de dados de Hash.
icat - Retorna o conteúdo de um arquivo baseado no seu número inode.
ifind - Encontra a estrutura de metadados que foi alocada para uma unidade de disco ou nome de arquivo.
ils - Lista a informação do inode.
img_cat - Retorna o conteúdo de um arquivo imagem.
img_stat - Mostra os detalhes de um arquivo imagem.
istat - Mostra os detalhes de uma estrutura de metadados, isto é, inode.
jcat - Mostra o conteúdo de um bloco journal em um sistema de arquivos com journal.
jls - Lista o conteúdo de um sistema de arquivos com journal
mactime - Cria uma linha do tempo ASCII das atividades dos arquivos.
mmcat - Retorna o conteúdo de uma partição para a saída padrão.
mmls - Mostra o esboço da partição de um volume do sistema (tabela de partição).
mmstat - Mostra os detalhes sobre volumes do sistema (tabela de partição).
sigfind - Encontra a assinatura binária em um arquivo.
sorter - Classifica os arquivos de uma imagem em categorias baseadas nos tipos de arquivo.
srch_strings - Mostra os caracteres imprimíveis das strings de um arquivo.
tsk_comparedir - Compara o conteúdo de um diretório com o conteúdo de uma imagem ou dispositivo local.
tsk_gettimes - Coleta os MAC times de uma imagem de disco para um arquivo.
tsk_loaddb - Popula um banco de dados SQLite com os metadados de uma imagem de disco.
tsk_recover - Exporta os arquivos de uma imagem para um diretório local.

Com estas ferramentas podemos recuperar arquivos deletados, montar uma linha do tempo do uso dos arquivos, procurar por determinada string, entre outras coisas, tarefas corriqueiras na computação forense.

As ferramentas funcionam acessando o conteúdo tanto na forma de imagem como diretamente ao dispositivo. Mas lembre-se, é sempre recomendável criar a imagem da unidade de armazenamento para preservar a integridade da prova.

O TSK pode ser obtido pelo endereço www.sleuthkit.org. Algumas distribuições Linux fornecem seu pacote pelos repositórios oficiais de software.

Existe o Autopsy que é a interface gráfica para esta coleção (http://dan-scientia.blogspot.com/2010/10/computacao-forense-com-o-sleuth-kit-e.html), entretanto, é possível com apenas poucos comandos realizar algumas tarefas do Autopsy, e em alguns casos, até de forma mais agilizada. Mas isto fica para uma outra postagem.

terça-feira, 11 de janeiro de 2011

Problema de Lógica: Número de caramelos na taça

Num concurso de televisão três concorrentes procuram acertar o número de caramelos contidos numa taça de cristal. José diz que há 260, Maria crê que há 274 e Carlota propõe que sejam 234. Sabe-se que um deles se enganou em 9 caramelos, outro em 17 e outro em 31. Qual o número de caramelos na taça?





RESPOSTA





Como não sabemos precisamente qual foi o engano de cada um, vamos montar uma tabela com todos os enganos, tanto para mais como para menos, para cada palpite dado, e assim, calcular os possíveis valores:

     260  274  234
------------------
+9   269  283  243
-9   251  265  225
+17  277  291  251
-17  243  257  217
+31  291  305  265
-31  229  243  203

O número correto será aquele que repetir três vezes, estando em colunas (palpites) diferentes e linhas (enganos) diferentes. Este número é o 243. José com seu palpite de 260, errou em 17 unidades, Maria com seu palpite de 274, errou em 31 unidades, e Carlota com seu palpite de 234, errou em 9 unidades. Portanto na taça há 243 caramelos.

segunda-feira, 10 de janeiro de 2011

O que é o Universo?

O Universo é toda a existência, todo o espaço e tempo e toda a matéria e energia contida nele. O Universo é desconhecidamente vasto e desde que foi formado, tem estado em expansão, arrastando as regiões distantes na velocidade da luz. O Universo engloba tudo, do menor átomo até o maior aglomerado de galáxias, e ainda com tudo aparentemente governado pelas mesmas leis básicas.

Tudo no Universo é parte de algo maior. A escala da Terra e da Lua pode ser relativamente fácil para a mente humana compreender, mas a estrela mais próxima é inimaginavelmente remota e a mais distante galáxia está a bilhões de vezes mais distante.

Os cosmologistas nunca determinaram exatamente o quão grande é o Universo. Pode ser até infinito e alternativamente, pode ter um espaço finito. Entretanto, mesmo um Universo finito pode não ter um centro ou fronteira e pode curvar-se em si mesmo. Assim, paradoxalmente, um objeto viajando em uma direção pode eventualmente reaparecer na direção oposta. O que é certo é que o Universo está se expandindo e tem sido assim desde sua origem no Big Bang, há 13,7 bilhões de anos. Pelo estudo dos padrões de radiação deixados desde o Big Bang, os cosmologistas podem estimar o tamanho mínimo do Universo, como se fosse finito. Algumas partes podem estar separadas por pelo menos dez bilhões de anos-luz. Como um ano-luz é a distância que a luz viaja em um ano, o Universo é imensamente grande.

Embora o Universo não possua margens e talvez seja infinito, a parte a qual os cientistas possuem conhecimento é restrita e finita. O denominado Universo observável é uma região esférica, ao redor da Terra, onde a luz teve tempo de chegar até nós desde o início do Universo. A fronteira que separa esta região do resto do Universo é denominada horizonte cósmico da luz. Uma luz alcançando a Terra de um objeto próximo a este horizonte deve ter viajado por um tempo próximo a idade do Universo. Esta luz deve ter viajado a distância de aproximadamente 13,7 bilhões de anos-luz para alcançar a Terra. Distância esta que é medida por um tempo que já passou, desta forma, a verdadeira distância pode ser bem maior atualmente, porque enquanto a luz estava viajando em direção à Terra, o objeto estava sendo arrastado para longe com a expansão do Universo.

O Universo consiste em energia, espaço e matéria. Uma porção desta matéria é levada pelo espaço como simples átomos ou simples moléculas de gás. Outras matérias acumulam massificando-se desde grãos até estrelas gigantes, ou implodem para formar buracos negros. A gravidade amarra todos estes objetos dentro de grandes nuvens e discos de matéria conhecidos como galáxias. A gravidade é a força de atração que existe entre quaisquer objetos no Universo, a força que segura estrelas e galáxias juntas. A gravidade é a mais fraca dentre as forças fundamentais da natureza, mas por agir em grandes distâncias e entre todos os objetos que possuem massa, é a força que dá forma ao Universo.

A luz do Universo vem principalmente das estrelas, bolas quentes de gás que geram energia através da fusão nuclear em seus núcleos. As estrelas se formam pela condensação das massas de gás e poeira nas nebulosas e em algumas vezes ocorrem aos pares ou aglomerados. Dependendo da massa inicial as estrelas variam em cor, temperatura na superfície, brilho e tempo de vida.

O Sistema Solar, com nossa própria estrela, o Sol, e tudo que o orbita, é acreditado que foi formado a partir de poeira e gás condensados em um disco giratório, chamado de disco protoplanetário. A matéria central tornou-se o Sol, enquanto que a matéria externa formou os planetas e outros pequenos e frios objetos. Um planeta é uma esfera orbitando uma estrela e não produz fusão nuclear.

O Sistema Solar ocupa uma pequeníssima parte de uma enorme estrutura em forma de disco com estrelas, gás e poeira denominada a galáxia Via Láctea. Por volta de cem anos atrás pensava-se que nossa galáxia englobava todo o Universo, algumas pessoas imaginavam que nada mais existia fora da Via Láctea. Hoje, nós sabemos que somente a parte observável do nosso Universo contém mais de cem bilhões de galáxias. As galáxias variam em tamanho, desde galáxias anãs, de poucas centenas de anos-luz de largura e com alguns milhões de estrelas, até gigantes, de muitas centenas de milhares de anos-luz de dimensão e contendo muitos trilhões de estrelas. As galáxias contém nuvens de gás, poeira e matéria escura, segurado juntos pela gravidade. Elas existem em cinco formados: espiral, espiral barrada, elíptica, lenticular e irregular. As galáxias são identificadas por números em um dos diversos bancos de dados para objetos celestes.

Um buraco negro é uma região do espaço contendo em seu centro uma quantidade de matéria comprimida em um ponto de densidade infinita, denominado singularidade. No interior de uma região esférica, que rodeia esta singularidade, a força gravitacional é tão grande que nada consegue escapar, nem mesmo a luz. A fronteira desta região é chamada de Horizonte de Eventos. Um buraco negro pode ser detectado de fora somente pelo comportamento da matéria que o rodeia. Há dois tipos principais de buracos negros, o supermassivo e o estelar. Um buraco negro supermassivo possui massa equivalente a bilhões de vezes a massa do Sol e existe no centro da maioria das galáxias, incluindo a nossa. Um buraco negro estelar forma-se a partir de restos de um colapso de uma estrela supergigante que explodiu e são bastante comuns em todas as galáxias.

As galáxias são confinadas pela gravidade para formarem aglomerados com desde vinte até milhares de galáxias. Alguns aglomerados possuem um núcleo central concentrado e uma estrutura esférica bem definida, outros aglomerados são irregulares no formato e na estrutura. O aglomerado de galáxias que contém nossa própria galáxia é denominado Grupo Local. Correntes de uma dúzia ou mais de aglomerados de galáxias são unidas livremente pela gravidade e formam os superaglomerados de galáxias, os quais podem ter mais de duzentos milhões de anos-luz em extensão. Estes superaglomerados são arranjados em largos planos e filamentos, separados pelo vácuo de cem milhões de anos-luz. Estes planos e vácuos formam a rede que permeia todo o Universo observável.

Existe muito mais matéria no Universo que a contida nas estrelas e outros objetos visíveis. A massa invisível, denominada matéria escura, possui sua composição desconhecida. Evidências para a matéria escura incluem o movimento das galáxias nos aglomerados. As galáxias se movimentam mais rápido do que é possível explicar pela gravidade da matéria visível, provavelmente deve existir mais massa além do observado. E mesmo incluindo toda a matéria escura deduzida nas observações, a densidade do Universo não é suficiente para satisfazer as teorias de sua evolução. Para encontrar a solução, os cosmologistas propõem a existência da energia escura, uma força que cancela a gravidade e ocasiona a rápida expansão do Universo. A exata natureza da energia escura é ainda especulada.

Nossa moderna percepção do ambiente cósmico é grandiosa. Os astrônomos estão agora ambientando a Terra em um contexto cósmico. O entendimento de como o Universo se formou possui uma intrigada complexidade. Este artigo apenas superficializou o que sabemos do Universo, em relação ao espaço e tempo e toda a matéria e energia contida nele.

sábado, 8 de janeiro de 2011

Momento retrô com o kit Poliopticon

Durante minha infância e pré-adolescência, no início dos anos 80, fui privilegiado em poder realizar experiências ópticas com o Poliopticon.

O Poliopticon foi uma coleção de partes ópticas e estruturais, que combinavam entre si de diversos modos, a qual permitia compor vários tipos de instrumentos ópticos. O Poliopticon proporcionava a montagem de lupas, telelupas, lunetas, microscópios, periscópios e um binóculo, tudo para uso imediato.

A montagem dos instrumentos não exigia conhecimentos especializados, nem a utilização de quaisquer ferramentas. As partes se enroscavam ou se adaptavam umas as outras, compondo rapidamente o instrumento desejado.

As muitas possibilidades de tipos de instrumentos ópticos foi fantástica para o curioso de óptica, para o astrônomo amador mirim e cientista mirim, pois é claro, tratava-se de um brinquedo. As lentes fornecidas com o Poliopticon eram pequenas e de baixa capacidade de aumento, mas suficientes para divertir qualquer criança.

O Poliopticon foi manufaturado no Brasil pela D.F. Vasconcellos S.A. entre os anos 60 e 80. O conjunto que eu tive, provavelmente o último a ser lançado, possuía 31 peças e podia montar mais de 40 instrumentos. Foi realmente muito interessante.

sexta-feira, 7 de janeiro de 2011

Um modo rápido de somar uma sequência de números

Para somar uma sequência de números basta multiplicar o número que está exatamente no meio da sequência pela quantidade de números desta sequência, por exemplo:

23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 = 243

O número que está no meio é o 27 e a sequência possui 9 números, então:

27 x 9 = 243

Se a sequência possui uma quantidade par de números, o número do meio é definido pela média dos dois números que estão no meio, por exemplo:

23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 = 275

Os dois números que estão no meio são 27 e 28, a sequência possui 10 números, então:

(27 + 28)/2 x 10 = 275

Este modo rápido de somar nada mais é do que a aplicação da fórmula da média aritmética, da estatística, tendo como incógnita o somatório. Pois neste tipo de sequência, de números consecutivos, o número do meio é a média do conjunto, veja um exemplo para nossa primeira sequência:

M = Σ/n

27 = Σ/9

Σ = 27 x 9