sábado, 15 de outubro de 2011

Problema de Lógica: Qual o mínimo de pessoas parentes?

Contando somente o parentesco que existe entre nós, somos pai, mãe, filho, filha, tio, tia, irmão, irmã, sobrinho, sobrinha e dois primos. Qual é o menor número de pessoas que poderiam ter feito tal afirmação?





RESPOSTA





Quatro pessoas: um irmão, uma irmã e seus filhos, um de cada sexo.

Exibição dos usuários logados em um sistema Linux

Em um sistema operacional Linux, duas ferramentas são bem interessantes para exibição dos usuários logados e dos últimos usuários que logaram no sistema. O comando who, do pacote coreutils, e o comando last, do pacote sysvinit-tools.

O comando who exibe informações de quem está logado atualmente. É uma ferramenta para linha de comando e possui diversas opções, incluindo:

-a     Exibe tudo, o mesmo que -b -d -l -p -r -t -T -u.
-b     Data e hora do último boot do sistema.
-d     Exibe processos mortos.
-l     Exibe os processos de login no sistema.
-p     Exibe os processos ativos criados pelo init.
-r     Exibe o nível de execução corrente.
-t     Exibe as últimas alterações no relógio.
-u     Lista os usuários logados.

A ferramenta who consulta as informações armazenadas no arquivo /var/run/utmp.

Exemplos:

# who -b
# who -u

O comando last consulta o arquivo /var/log/wtmp e exibe uma lista de todos os usuários que logaram e deslogaram no sistema, desde a criação do arquivo. Também é uma ferramenta para linha de comando e possui diversas opções, incluindo:

-n num   Quantidade das últimas linhas que serão exibidas.
-a       Exibe o nome do host na última coluna.
-d       Inclui logins remotos e exibe o nome dos hosts remotos.
-f file  Especifica outro arquivo ao invés de /var/log/wtmp.
-F       Datas e horas em formato completo.
-i       Inclui logins remotos e exibe o IP dos hosts remotos.
-x       Exibe as entradas de shutdown e mudanças nos níveis de execução.
-t YYYYMMDDHHMMSS   Exibe o estado dos logins até a data especificada.

Nomes de usuários e de terminais podem ser dados em sua linha de comando para filtrar a exibição.

Existe no sistema um pseudo usuário, denominado reboot, que é utilizado nos logs quando o sistema reinicia. Desta forma, este usuário mostrará os registros de início do sistema.

Há ainda o comando lastb, semelhante ao comando last, mas que exibe as tentativas frustradas de login. Esta ferramenta consulta o arquivo /var/log/btmp.

O sistema somente armazena as informações se os arquivos wtmp e btmp existirem. Eles podem ser criados com o simples comando touch. Estes arquivos costumam ser segmentados pelo sistema, arquivos com datas bem mais antigas recebem o nome no formato /var/log/wtmp-YYYMMDD. Pode ser útil consultá-los com a opção -f.

Exemplos:

# last -n 10
# last -i
# last fulano

domingo, 2 de outubro de 2011

Quebra de chave na rede sem fio

Pela interface de rede sem fio também é possível capturar pacotes que trafegam. Entretanto, em uma rede sem fio não é necessário estar conectado à rede para ter acesso as informações. Em uma rede sem fio o meio físico é acessível para quem estiver ao alcance pois os sinais são transmitidos pelo "ar".

A única forma de proteção é criptografar toda a transmissão, através do uso dos protocolos de segurança WEP ou WPA. Contudo, existem ferramentas que são capazes de quebrar uma chave de criptografia de rede sem fio. Neste artigo apresentarei algumas delas.

A primeira ferramenta que pode-se usar é o 'iwlist'. O 'iwlist' (pacote wireless-tools) é usado para exibir informações de uma interface de rede sem fio, que não são exibidas pelo 'iwconfig'. Esta ferramenta exibe os valor corrente e todos os valores suportados pela interface para frequência, taxa de bits, txpower, autenticação etc.

Esta ferramenta pode ser usada para descobrirmos quais redes existem por perto. O parâmetro "scan" retorna uma lista das células de pontos de acesso e Ad-Hoc ao alcance. Exibe informações sobre cada ponto de acesso encontrado, incluindo o ESSID, MAC Address, qualidade do link, frequência, autenticação etc. Por exemplo:

# iwlist wlan0 scan

wlan0     Scan completed :
          Cell 01 - Address: 00:36:5A:68:7E:A4
                    ESSID:"Casa"
                    Mode:Managed
                    Frequency:2.427 GHz (Channel 4)
                    Quality:2/5  Signal level:-71 dBm  Noise level:-92 dBm
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 12 Mb/s
                              24 Mb/s; 48 Mb/s
          Cell 02 - Address: 14:1C:6E:B9:82:DC
                    ESSID:"Escritorio"
                    Mode:Managed
                    Frequency:2.437 GHz (Channel 6)
                    Quality:1/5  Signal level:-82 dBm  Noise level:-92 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                       Preauthentication Supported
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
                              48 Mb/s; 54 Mb/s

Uma interface de rede sem fio deve estar no modo de monitoramento para realizar a captura de pacotes. Apresento duas ferramentas que podem fazer isto: 'iwconfig' e 'airmon-ng'.

O 'iwconfig' (pacote wireless-tools) é similar ao 'ifconfig' mas é dedicado as interfaces sem fio. É usado para configurar os parâmetros da interface de rede que são específicas das operações sem fio, como ESSID, frequência, canal, taxa de bits, txpower etc. O 'iwconfig' pode ser usado para exibir tais parâmetros e estatísticas da rede sem fio.

O 'iwconfig' possui diversas opções e as utilizadas para ativar o modo de monitoramento são:

essid NOME
Define o ESSID ou desativa a checagem com off ou any e reativa com on.

mode MODO
Define o modo de operação do dispositivo, dependendo da topologia da rede. Os modos aceitos são: Ad-Hoc, Managed, Master, Repeater, Secondary, Monitor ou Auto.

Exemplo:

# iwconfig wlan1 essid any mode Monitor

O 'aircrack-ng' é um programa de quebra de chave 802.11 WEP e WPA-PSK. Pode recuperar as chaves quando uma quantidade suficiente de pacotes for capturada. Faz parte do pacote de ferramentas 'aircrack-ng', que contém diversas outras ferramentas:

airmon-ng - ativa modo de monitoramento em placas de rede sem fio
airodump-ng - ferramenta de captura de pacotes wireless para o aircrack-ng
aireplay-ng - injeta pacotes em uma rede sem fio gerando tráfego

O 'airmon-ng' é um script para ativar o modo de monitoramento em interfaces de rede. Também pode ser usado para retornar do modo monitor ao modo gerenciado.

As principais opções para linha de comando do 'airmon-ng' são:

start INTERFACE [CANAL]
Ativa o modo de monitoramento na interface (e especifica um canal).

stop INTERFACE
Desativa o modo de monitoramento e retorna ao modo gerenciado.

check
Lista todos os programas que podem interferir na interface de rede sem fio.

Executar o 'airmon-ng' sem opções irá exibir o estado da interface. Com a opção start inicia o modo de monitoramento. Exemplo:

# airmon-ng start wlan1

Em alguns drivers, da interface de rede sem fio, a ferramenta 'airmon-ng' age de uma forma diferente. O 'airmon-ng' cria uma interface virtual denominada "mon0". O mon0 é um apelido para a interface wlan0 em modo de monitoramento. As ferramentas do 'aircrack-ng' devem então usar a interface virtual mon0.

Para confirmar que a interface está no modo monitor, execute o comando 'iwconfig'.

Alguns modelos de placas wireless necessitam de comandos adicionais para desativar e reativar o dispositivo. Principalmente interfaces com chipset Atheros. Não são todos os drivers que suportam o modo de monitoramento.

O 'airodump-ng' é usado para capturar pacotes dos quadros 802.11. Adicionalmente, o 'airodump-ng' exibe detalhes dos pontos de acesso e clientes vistos.

Principais opções do 'airodump-ng':

-w PREFIXO
Prefixo do nome do arquivo usado para gravação. Se não informado, irá somente exibir os dados na tela.

-c CANAL
Especifica um ou mais canais para escuta (entre vírgulas).

-d BSSID
Somente exibirá as redes do BSSID dado.

-r ARQUIVO
Lê os pacotes de um arquivo.

Exemplo de uso:

# airodump-ng --channel 6 -w redewl -d 00:22:33:3D:66:77 mon0

Para interromper utilize as teclas Ctrl+C.

O 'airodump-ng' mostra uma lista dos pontos de acesso detectados e também clientes conectados.

CH  9 ][ Elapsed: 1 min ][ 2007-04-26 17:41 ][ WPA handshake: 00:14:6C:7E:40:80

BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

00:09:5B:1C:AA:1D   11  16       10        0    0  11  54.  OPN              NETGEAR
00:14:6C:7A:41:81   34 100       57       14    1   9  11e  WEP  WEP         bigbear
00:14:6C:7E:40:80   32 100      752       73    2   9  54   WPA  TKIP   PSK  teddy

BSSID              STATION            PWR   Rate   Lost  Packets  Probes

00:14:6C:7A:41:81  00:0F:B5:32:31:31   51   36-24    2       14
(not associated)   00:14:A4:3F:8D:13   19    0-0     0        4    mossy
00:14:6C:7A:41:81  00:0C:41:52:D1:D1   -1   36-36    0        5
00:14:6C:7E:40:80  00:0F:B5:FD:FB:C2   35   54-54    0       99    teddy


Campos exibidos pelo airodump-ng:

A primeira linha mostra o canal utilizado, tempo transcorrido, data atual e opcionalmente se a criptografia foi detectada.

Seção do Ponto de Acesso (AP):

BSSID       Endereço MAC do ponto de acesso, e para o cliente, o ponto de acesso associado.
PWR         Nível do sinal informado pela placa de rede. (-1 se o driver não suportar)
RXQ         Qualidade do recebimento medido em porcentagem dos pacotes recebidos com sucesso.
Beacons     Número de pacotes de anúncio enviados pelo AP.
# Data      Número de pacotes de dados capturados.
#/s         Número de pacotes de dados por segundo.
CH          Número do canal.
MB          Máxima velocidade suportada pelo AP.
ENC         Algoritmo de criptografia em uso. OPN (sem criptografia), WEP, WPA ou WPA2.
CIPHER      Cifra detectada. (CCMP, WRAP, TKIP, WEP, WEP40, ou WEP104).
AUTH        Protocolo de autenticação usado. (MGT, SKA, PSK, ou OPN)
ESSID       Nome da rede sem fio.

Seção do Cliente:

STATION     Endereço MAC de cada cliente associado a um AP.
PWR         Nível do sinal.
Rate        Velocidade (taxa de transferência) do último pacote transmitido.
Lost        Número de pacotes perdidos.
Packets     Número de pacotes enviados pelo cliente.
Probes      ESSIDs sondado pelo cliente, na tentativa de conectar.

Para a ferramenta 'aircrack-ng' ter sucesso na quebra de chave, é necessária uma grande quantidade de pacotes capturados. No entanto algumas redes tem um volume baixo de tráfego, levando muito tempo para que se consiga a quantidade desejada. Há uma ferramenta que pode ajudar a aumentar o tráfego da rede. O 'aireplay-ng' é usado para injetar ou repetir pacotes. Sua função primária é gerar tráfego para o uso do 'aircrack-ng'.

As principais opções do 'aireplay-ng' são:

-3
Requisição repetida do pacote ARP. O AP repete o pacote ARP com um novo vetor de inicialização (IV).

-b BSSID
Endereço MAC do ponto de acesso.

-h SMAC
Define o endereço MAC da fonte (cliente associado).

Exemplo de uso:

# aireplay-ng -3 -b 00:1B:11:54:44:1B -h 00:25:86:EB:4B:BA wlan1

O 'aireplay-ng' age fingindo ser um cliente que já está associado ao ponto de acesso. Por isso a necessidade da opção '-h SMAC'. Escolha um cliente associado ao AP na lista mostrada pela ferramenta 'airodump-ng', os clientes conectados ao ponto de acesso o qual deseja quebrar a chave.

A ferramenta 'aireplay-ng' deve ser executada simultaneamente com a ferramenta 'airodump-ng'. Em terminais separados, uma contribuindo para a outra. Aliás, a próxima ferramenta também pode ser executada simultaneamente, em mais um outro terminal, para dar início ao processo de quebra.

O 'aircrack-ng' é um programa de quebra de chaves 802.11 WEP e WPA/WPA2-PSK. É capaz de recuperar uma chave WEP logo que uma quantidade suficiente de pacotes estejam capturados. Utiliza dois métodos para determinar a chave WEP: aproximação PTW (Pyshkin, Tews, Weinmann) e FMS/KoreK. Adicionalmente o 'aircrack-ng' oferece um método de dicionário para determinar a chave WEP. Para quebrar chaves WPA/WPA2, o 'aircrack-ng' usa uma lista de palavras ou a ferramenta 'airolib-ng', que usa hashes tables.

As principais opções do 'aircrack-ng' são:

-a AMODE     Força o modo de ataque (wep ou wpa).
-c           Procura somente por caracteres alpha-numéricos.
-e ESSID     Seleciona a rede alvo pelo ESSID.
-b BSSID     Seleciona a rede alvo pelo endereço MAC do AP.
-n NBITS     Especifica o tamanho da chave:
             64 para 40-bit WEP, 128 para 104-bit WEP etc.
-w WORDS     Caminho para o arquivo de dicionário para quebra de WPA.
-r DATABASE  Caminho para a base do airolib-ng. Não usado com '-w'.

Exemplo de uso:

# aircrack-ng -n 128 RedeSemFio-02.cap

O sucesso da quebra pode demorar horas, tudo depende do volume capturado e do tamanho da chave. Mas um conselho, não quebre uma rede na qual você não tenha autorização, é crime. E é tão fácil descobrir e provar que um malandro fez isso. Juízo!

quinta-feira, 15 de setembro de 2011

Mais edições imperdíveis da Scientific American Brasil

Complementando o artigo "Edições imperdíveis da Scientific American Brasil" (http://dan-scientia.blogspot.com/2010/11/edicoes-imperdiveis-da-scientific.html), no qual recomendei a leitura de algumas edições especiais da revista Scientific American Brasil, retorno com mais recomendações de leituras.

A edição número 29 (Outubro de 2004), que apesar de ser uma edição regular foi lançada como uma edição especial, do centenário dos artigos que revolucionaram a física e trouxe como tema "Einstein e o Futuro", completamente com artigos da área de física e cosmologia.

Einstein e o Futuro - Edição nº 29

Paralelamente as edições especiais, a Scientific American Brasil lançou as edições denominadas "Gênios da Ciência" e a edição número 6 trouxe como tema "Einstein - O olhar da relatividade", com artigos relacionados as fabulosas colaborações de Albert Einstein para a ciência.

Einstein - O olhar da relatividade - Gênios da Ciência - Edição nº 06

Com base em material da revista Astronomy, a Scientific American Brasil lançou a edição temática "Via Láctea", recheada de artigos relacionados a galáxia que abriga o Sistema Solar.

Via Láctea - Especial Temática - Astronomy - Edição nº 01

Concluindo esta postagem, mais edições especiais da Scientific American Brasil trazem artigos sobre astronomia antropológica, matemática antropológica e cosmologia.

Etnoastronomia - Edição especial nº 14

Etnomatemática, 2ª edição - Edição especial nº 35

A longa história do Universo - Edição especial nº 41

quarta-feira, 14 de setembro de 2011

Tcpdump, cópia do tráfego de uma rede

Computadores em rede compartilham canais de comunicação. Nestes canais compartilhados, computadores podem receber informações enviadas para outros computadores. A ação de capturar informações destinadas para uma outra máquina é chamada "sniffing".

Um "analisador de protocolo de rede", ou "sniffer", é um dispositivo que permite "ouvir" o tráfego de uma rede, isto é, capturar as informações. Um sniffer permite interceptar o tráfego de dados de um segmento de uma rede.

Um computador está em modo promíscuo quando o mesmo captura todos os pacotes, independentemente de serem ou não destinados à ele. Um sniffer coloca a interface de rede em modo promíscuo, com o intuito de capturar todos os pacotes de um determinado segmento.

Conforme o fluxo de dados trafega na rede, o sniffer captura cada pacote, decodifica e analisa o seu conteúdo de acordo com o protocolo. A maioria dos protocolos de Internet faz as informações trafegarem de forma transparente, quer dizer, de maneira não criptografada. Todas as informações enviadas ou recebidas podem ser interceptadas se o conteúdo não estiver criptografado.

Quando os protocolos da camada de aplicação são implementados sobre uma camada suplementar SSL ou TLS, situada entre a camada de aplicação e a camada de transporte, os dados são transmitidos através de uma conexão criptografada. Desta forma, todo o tráfego torna-se ilegível.

Os sniffers mais conhecidos para o sistema Linux são o Tcpdump, Snort, Wireshark e Kismet. O Tcpdump, assim como os outros, exibe a descrição do conteúdo dos pacotes e é capaz de salvar os dados dos pacotes para análise posterior, pela linha de comando. A ferramenta Tcpdump utiliza uma biblioteca específica para a captura de tráfego, a libpcap. As principais ferramentas de análise de tráfego de rede são compatíveis com o formato pcap.

Com o Tcpdump é possível capturar, copiar e exibir detalhes dos pacotes que trafegam em uma rede. Se o comando 'tcpdump' for executado sem opções, serão capturados todos os pacotes trafegados pela primeira interface de rede ativa e exibidos na tela do terminal. Exemplo:

# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:29:48.173109 IP 192.168.1.101.52423 > bs-in-f104.1e100.net.http: Flags [P.], seq 306271009:306271660, ack 1715067849, win 286, options [nop,nop,TS val 10553603 ecr 469407516], length 651
13:29:48.174608 IP 192.168.1.101.45494 > cache-orion.neoviatelecom.com.br.domain: 34718+ PTR? 104.163.233.64.in-addr.arpa. (45)
13:29:48.244368 IP bs-in-f104.1e100.net.http > 192.168.1.101.52423: Flags [.], ack 651, win 193, options [nop,nop,TS val 469428829 ecr 10553603], length 0
13:29:48.389694 IP cache-orion.neoviatelecom.com.br.domain > 192.168.1.101.45494: 34718 1/0/0 PTR bs-in-f104.1e100.net. (79)
13:29:48.390008 IP 192.168.1.101.43215 > cache-orion.neoviatelecom.com.br.domain: 5324+ PTR? 101.1.168.192.in-addr.arpa. (44)

As opções básicas para a linha de comando do Tcpdump são:

-D       Exibe a lista das interfaces de rede disponíveis e suportadas pelo tcpdump
-w       Escreve os pacotes raw em um arquivo, ao invés de analisá-los e exibi-los em tela
-r       Lê os pacotes do arquivo
-i eth0  Escutar a interface de rede especificada
-v       Quando analisar e exibir, produzir uma saída mais detalhada
-l       Armazena a saída padrão em buffer. Útil se desejar ver os dados enquanto captura.
-n       Não converter endereços de hosts para nomes
-c n     Sair após receber n pacotes
-x       Exibe os dados de cada pacote em hexadecimal (-xx c/ endereço físico)
-X       Exibe os dados de cada pacote em hexadecimal e ASCII (-XX c/ endereço físico)

O Tcpdump permite a utilização de filtros para capturar somente aqueles pacotes que estamos buscando dentre os milhares de pacotes que trafegam por uma ou outra interface de rede.

Com Tcpdump podemos usar expressões para filtrar o tráfego que desejamos capturar. Estas expressões são definidas por palavras reservadas (primitivas) e operadores lógicos para selecionar um determinado tráfego de rede. Algumas das palavras reservadas são:

- Tipo: host, net, port e portrange;
- Direção: src, dst, src or dst, src and dst etc.;
- Protocolo: ether, wlan, ip, tcp, udp, arp, rarp etc.;
- Operadores lógicos: and, or, not.

O tipo qualifica o que o nome ou número se refere, por exemplo:

host orion
net 10.42.42.0/24
port 80
portrange 5000-5600

A direção qualifica o sentido da transferência para e/ou saindo, por exemplo:

src net 172.16
dst host 192.168.1.1
src or dst port ftp-data

O protocolo restringe a busca para um protocolo em particular, por exemplo:

ether src orion
arp net 128.3
tcp port 21

Os operadores lógicos servem para criar expressões complexas no filtro, combinando as palavras reservadas:

host orion and not port 21 and not port 20
tcp dst port ftp or ftp-data or domain
tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain

Observação: a página manual do 'pcap-filter' traz toda a sintaxe para o "packet filter".

Exemplos de uso do Tcpdump:

# tcpdump -D

# tcpdump -i eth0 -n -v -c 1000

# tcpdump -i wlan0 -w rede.dump

# tcpdump src or dst host 192.168.1.100 -r rede.dump

# tcpdump -i eth0 src 192.168.110.241 and dst 192.168.110.17 and not port 110

Por padrão, em sua saída, o comando 'tcpdump' exibe uma linha de texto para cada pacote capturado. Esta linha mostra informações do pacote, não é o pacote em si. O pacote fica armazenado apenas no arquivo '.pcap', binário. A saída do Tcpdump depende do protocolo especificado e das opções utilizadas.

Breve descrição dos campos da saída do Tcpdump (pacote TCP):

- timestamp: o horário em que o pacote foi capturado;

- protocolo: ip, ip6, arp, rarp, atalk, aarp, ...;

- origem > destino: endereço e porta da origem e do destino;

- flag: bits de controle ativados no octeto 13 do cabeçalho. Uma combinação de S (SYN), F (FIN), P (PUSH), R (RST), W (ECN CWR), E (ECN-Echo), ou ponto '.' se não há.

Outros campos podem existir dependendo do conteúdo do cabeçalho. Exemplo:

10:09:18.773058 IP 192.168.1.12.44155 > 192.168.1.11.http: Flags [S], cksum 0x10e4 (correct), seq 2019111244, win 5840, options [mss 1460,sackOK,TS val 738741 ecr 0,nop,wscale 6], length 0

Quando o Tcpdump encerra a captura de pacotes, é exibida a contagem de:

- pacotes capturados: número de pacotes recebidos e processados;

- pacotes recebidos pelo filtro: depende do S.O., pode incluir pacotes que não passaram no filtro, ou que passaram mas não foram processados, ou que passaram e foram processados;

- pacotes abandonados pelo kernel: número de pacotes que foram abandonados devido a falta de espaço em buffer.

O sniffer coloca a interface em modo promíscuo, para capturar os pacotes de um determinado segmento de rede. Assim, para o Tcpdump ter permissão de ler os pacotes através de uma interface de rede, o mesmo deve ser executado com privilégios de administrador. Entretanto, ler um arquivo '.pcap', com pacotes salvos, não requer privilégios de administrador.

sábado, 10 de setembro de 2011

Criando uma imagem com sistema de arquivos virtual

Em um sistema operacional Linux é fácil criar um arquivo imagem contendo um sistema de arquivos virtual. Os sistemas de arquivos em arquivos de imagem, no Linux, podem ser facilmente montados e utilizados como qualquer outra unidade de armazenamento.

Para criar um arquivo imagem, que será usado como sistema de arquivos virtual, podemos usar a ferramenta dd, comum em todas as instalações de Linux. O exemplo de uso da ferramenta dd apresentado a seguir cria um arquivo de 500 MB, com conteúdo zerado:

dd if=/dev/zero of=unidadeimagem bs=1M count=500

Após este passo é necessário criar o sistema de arquivos no arquivo imagem gerado pela ferramenta dd, procedimento conhecido como "formatar". Para isto usa-se a ferramenta mke2fs, para criar um sistema de arquivos nativo do Linux. O exemplo apresentado a seguir cria o sistema de arquivos ext4. O parâmetro -F força a ação pois o arquivo imagem não é uma partição em um disco:

mke2fs -t ext4 -F unidadeimagem

Para utilizar esta unidade de armazenamento virtual é necessário montá-la. O exemplo apresentado a seguir monta o arquivo imagem no caminho /mnt/imagem/. Note que o arquivo imagem está sendo montado via dispositivo de loop, requerido neste tipo de operação:

mount -t ext4 -o loop unidadeimagem /mnt/imagem/

Todo este recurso não está restrito apenas aos sistemas de arquivos nativos do Linux, é possível formatar criando sistemas nativos do DOS/Windows (FAT ou NTFS).

Os exemplos a seguir ilustram os comandos para os sistemas de arquivos FAT32 e NTFS. O parâmetro -F na ferramenta mkdosfs especifica o tipo da tabela de alocação (no exemplo 32 bit) e na ferramenta mkntfs tem a mesma função da ferramenta mke2fs, forçar a ação:

mkdosfs -F 32 unidadeimagem
mount -t vfat -o loop unidadeimagem /mnt/imagem/

mkntfs -F unidadeimagem
mount -t ntfs-3g -o loop unidadeimagem /mnt/imagem/

Quando montados, estes arquivos imagem podem ser usados normalmente como qualquer unidade de armazenamento real. As operações de criação e cópia de arquivos são executadas normalmente e seu conteúdo é mantido entre os procedimentos de desmontagem e montagem.

Podemos compará-los aos discos virtuais usados em ferramentas de virtualização, onde são instalados sistemas operacionais para sua execução em um ambiente virtual.

Conceitos semelhantes são utilizados em segurança da informação, ferramentas como o TrueCrypt são capazes de criar arquivos imagens e criptografar todo o conteúdo armazenado.

O uso de arquivo imagem com sistema de arquivos virtual é amplo, atendendo diversas operações no mundo da informática.

sexta-feira, 9 de setembro de 2011

Conversor de texto para código Morse em áudio

Um programinha simples, existente desde 2007 e que ganhou novas versões agora em 2011, tem um propósito bem divertido. O ebook2cw é um programa de linha de comando capaz de converter um arquivo de texto puro (ISO 8859-1 ou UTF-8) para código Morse, em um arquivo de áudio MP3 ou OGG.

O ebook2cw está disponível pelo endereço http://fkurz.net/ham/ebook2cw.html e funciona em diversas plataformas, incluindo Windows, Linux, FreeBSD e Mac OS X.

Para compilar o fonte deste programa são necessárias as bibliotecas de desenvolvimento do Lame e Ogg/Vorbis. Estão disponíveis também os arquivos binários executáveis nas principais plataformas e uma interface gráfica é fornecida à parte.

Em sua execução é possível modificar alguns parâmetros, por exemplo, pela linha de comando os parâmetros -s samplerate e -b bitrate especificam a taxa de amostragem e a taxa de bits. Em sua página na Internet existe um manual de operação.

O resultado é muito bom e o autor do ebook2cw utiliza o programa para converter os livros fornecidos pelo Projeto Gutenberg.