quarta-feira, 29 de agosto de 2012

Aplicativos Google para sistema Android

O Android (http://www.android.com/) é um sistema operacional completo com base no kernel Linux, para dispositivos móveis incluindo celulares e tablets. Este sistema ganhou força quando o Google comprou a empresa recém-criada Android Inc no ano de 2005, pois estava interessado em desenvolver uma plataforma para telefonia móvel. Atualmente, o Android é desenvolvido por uma aliança de dezenas de empresas, denominada Open Handset Alliance (http://www.openhandsetalliance.com), que inclui importantes empresas de telefonia, software e hardware, mas principalmente o Google.

O Google, famoso por seu mecanismo de busca, é uma grande empresa de produção de software, especialmente softwares para computação em nuvem. Além de softwares para a plataforma PC, existe também a linha de aplicativos para telefones móveis. Seus melhores aplicativos do Google Celular (http://www.google.com/mobile/) também estão disponíveis para telefones que usam o sistema operacional Android (http://www.google.com/mobile/android/).

Os telefones equipados com Android costumam vir com boa parte dos aplicativos do Google pré-instalados. Os aplicativos ausentes podem ser instalados pela loja online Google Play (https://play.google.com/store), que fornece os aplicativos do Google e também aplicativos de outras empresas. Muitos são gratuitos.

A seguir uma lista dos melhores aplicativos do Google para Android:

Google Search
O famoso mecanismo de busca para pesquisa no Google e nos contatos e aplicativos do telefone.

Google Goggles
Pesquisa na web usando uma fotografia tirada pelo celular, com a fotoleitura da imagem em análise das cores, contornos e texturas.

Google Earth
Explore o mundo em um globo virtual com imagens, mapas e terrenos via satélite.

Google Maps
Visualização dos mapas de todas as cidades do mundo, com localização por GPS e informações sobre o trânsito.

Google Maps Navigation
Sistema de navegação GPS conectado à Internet e guiado por voz.

Google Latitude
Permite ver a localização atual dos amigos em um mapa e compartilhar sua localização.

Os Meus Percursos (Minhas Trilhas)
Aplicativo que registra no mapa o caminho percorrido, além da velocidade, distância e altitude enquanto anda à pé, de bicicleta ou veículo.

Google SkyMap
Mapa da esfera celeste sincronizado com sua localização no globo terrestre.

Gmail
O cliente de e-mail para contas do Google Mail.

YouTube
Acesso ao imenso repositório de vídeos compartilhados por pessoas de todo o mundo.

Google Talk
Para bater papo na web por voz, vídeo e enviar mensagens instantâneas.

Blogger
Interface para acessar e publicar postagens em blogs.

Google+
Compartilhamento de conteúdos múltiplos entre pessoas na web.

Google Drive
Inclui o Google Docs, a suíte office on-line da Google, e mais armazenamento e compartilhamento de arquivos.

Orkut
Interface de acesso a rede de relacionamento.

Google Buzz
Informa o que está acontecendo na sua região.

Google Tradutor
Tradução online entre idiomas.

Google Currents
Leitor de publicações no formato de revista, com páginas que podem ser viradas com um "swipe".

Google Reader
Leitor de feed de notícias e blogs.


Como visto, são muitos os aplicativos. Alguns deles oferecem uma verdadeira inovação tecnológica, aproveitando dos recursos de hardware existentes nos aparelhos modernos, como GPS e bússola.

Assim por exemplo, o Google Maps com sua funcionalidade de "Street View", a qual permite explorar lugares através de imagens panorâmicas em 360 graus no nível da rua, faz com que o celular exiba a visão da rua de acordo com a direção que está apontando. O mesmo acontece com o SkyMap, que exibe a visão do céu também de acordo com a direção que está apontando.

E igualmente incrível é o Google Goggles, capaz de identificar por exemplo uma pintura, um desenho ou um logotipo e retornar os sites que contenham informações a respeito. Goggle é algo mesmo fantástico.

quarta-feira, 15 de agosto de 2012

Problema de Lógica: Reunião familiar

As seguintes pessoas estavam presentes em uma reunião de família: um avô, uma avó, dois pais, duas mães, quatro filhos, três netos, duas irmãs, um irmão, duas filhas, dois filhos, um sogro, uma sogra e uma nora. Qual é o número de pessoas que devem ter ido à reunião e quem eram essas pessoas?





RESPOSTA





Sete pessoas foram à reunião, são elas:

 avô avó
  |___|
    |
   pai   mãe
    |_____|
      /|\
     / | \
    /  |  \
 filha | filho
     filha

domingo, 12 de agosto de 2012

Aquisição de dados através da rede

Na computação forense, a aquisição de dados é a cópia dos dados armazenados em um dispositivo que está sendo examinado. Esta cópia pode ser física, onde se realiza uma clonagem fiel de toda a unidade de armazenamento, gerando um arquivo imagem, ou pode ser lógica, onde se realiza a cópia arquivo por arquivo de toda a unidade de armazenamento.

Sempre, a cópia é realizada à uma outra unidade de armazenamento para que o examinador possa trabalhar sem prejudicar a evidência. Esta conduta serve para garantir o conteúdo da prova.

Em situações adversas, o examinador poderá encontrar uma máquina onde não se é possível retirar o disco rígido, seja por razões judiciais ou pela tecnologia aplicada no hardware, por exemplo, a tecnologia RAID. Nestes casos, será necessário iniciar esta máquina com algum sistema forense e assim realizar a aquisição dos dados para uma unidade de armazenamento externa. A distribuição DEFT Linux LiveCD (http://www.deftlinux.net/) pode ser usada para isso.

Se o examinador possui um dispositivo de armazenamento externo, poderá copiar os dados pela própria máquina suspeita. Se possui um computador portátil, poderá estabelecer uma rede entre as máquinas e realizar a aquisição pela rede. É neste segundo cenário que este artigo se aplica, em uma rede cabeada, para uma cópia física de todo o dispositivo. Será utilizado o DEFT Linux na máquina suspeita e um notebook com a distro Fedora. Conecte um cabo crossover entre as placas de rede.

Primeiramente vamos preparar o terreno, configurando a rede com IP estático no Fedora e no DEFT. Digamos que o Fedora, que está no computador portátil do examinador, esteja usando o NetworkManager para gerenciar a rede. Vamos desativá-lo para usar neste processo de coleta o serviço de rede tradicional do Linux.

Execute o script do NetworkManager com o parâmetro "stop":

# /etc/init.d/NetworkManager stop

Em seguida edite o arquivo de configuração do dispositivo de rede:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Usando este conteúdo na configuração (adapte se necessário):

DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

Inicie o serviço de rede:

# /etc/init.d/network start

O comando 'ifconfig' nos mostra se a rede está ativa corretamente. No exemplo a interface "eth0". Ainda no Fedora, é necessário liberar uma porta no firewall. Edite o arquivo de configuração do iptables, adicionando a linha para a porta 2222 e reinicie o serviço iptables:

# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

# /etc/init.d/iptables restart

Com o DEFT operando na máquina suspeita, precisa-se também configurar uma rede com IP estático. O DEFT Linux é compatível com a distro Debian, possui uma ligeira diferença na configuração em relação ao Fedora. Edite o arquivo de configuração da interface de rede, usando o conteúdo abaixo e reinicie o serviço de rede:

# vi /etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

# /etc/init.d/networking restart

Mais uma vez, o comando 'ifconfig' nos mostra se a rede está ativa corretamente. Os endereços IPs escolhidos nas duas configurações serão usados nos exemplos dos comandos de aquisição. A máquina com Fedora recebeu o IP 192.168.1.10 e a máquina suspeita, rodando o com DEFT, recebeu o IP 192.168.1.11.

Existem duas ferramentas para estabelecer uma conexão de rede e assim transferir dados: nc e ssh.

A ferramenta 'nc' (netcat) é capaz de abrir uma conexão TCP, enviar pacotes UDP e ouvir em uma porta arbitrária. Esta ferramenta será executada nos dois computadores que irão "conversar" pela rede.

Sinopse:

nc [opção]... [endereço] [porta]

Primeiramente, executa-se o 'nc' na máquina que vai receber, no nosso caso, no Fedora. Escolha uma das linhas de comandos abaixo, de acordo com a ferramenta "diskdump" de sua preferência:

$ nc -l 2222 | bunzip2 | dd of=Tempo/sda.dd
$ nc -l 2222 | bunzip2 | dc3dd of=Tempo/sda.dd
$ nc -l 2222 | bunzip2 | dcfldd of=Tempo/sda.dd

A opção -l define que o 'nc' vai ficar "ouvindo" pela porta 2222.

Depois, executar o 'nc' na máquina que vai enviar, no nosso caso, no DEFT. Use a respectiva linha de comando de acordo com a ferramenta "diskdump" usada acima:

# dd if=/dev/sda1 | bzip2 -c | nc 192.168.1.10 2222
# dc3dd if=/dev/sda1 | bzip2 -c | nc 192.168.1.10 2222
# dcfldd if=/dev/sda1 | bzip2 -c | nc 192.168.1.10 2222

O comando 'nc' vai enviar o fluxo de dados para o endereço e porta especificado.


Outro procedimento é utilizar a ferramenta 'ssh', para enviar o fluxo de dados à um arquivo em uma máquina remota. Considerando que o servidor sshd esteja em execução no computador portátil, com o Fedora, execute na máquina suspeita, com o DEFT, o comando para enviar o arquivo imagem. Escolha uma das linhas de comandos:

# dd if=/dev/sda | bzip2 -c | ssh usuario@192.168.1.10 dd of=/home/usuario/imagem.dd.bz2
# dc3dd if=/dev/sda | bzip2 -c | ssh usuario@192.168.1.10 dd of=/home/usuario/imagem.dd.bz2
# dcfldd if=/dev/sda | bzip2 -c | ssh usuario@192.168.1.10 dd of=/home/usuario/imagem.dd.bz2

Neste procedimento não é necessário executar qualquer comando na máquina que vai receber os dados, no nosso caso o notebook com Fedora, apenas o servidor sshd deve estar ativo e utilize uma conta de usuário do sistema Fedora. Será solicitada a senha deste usuário.


Como visto, é relativamente simples a aquisição de dados pela rede. Muitas vezes até compensa em relação a desmontar a máquina suspeita para a retirada do disco rígido. Os computadores portáteis costumam dar trabalho desta desmontagem. O único inconveniente pode ser a velocidade de transmissão, de acordo com a tecnologia da rede, pois uma rede de 100 Mbits a velocidade máxima teórica é 12,5 MB/s.

Curingas nas operações com arquivos e diretórios no Linux

Curingas são caracteres especiais, ou metacaracteres, usados para especificar, em uma única linha de comando, um conjunto de arquivos ou diretórios de uma única vez. Com o uso dos curingas, o interpretador de comandos realiza a expansão para todos os caracteres possíveis, montando todas as combinações para os nomes dos arquivos ou diretórios.

Existem os seguintes tipos de curingas no Linux:

*          equivale a um conjunto de zero ou mais caracteres

?          equivale a um único caractere

[padrão]
  [ ]      equivale a qualquer um dos caracteres especificados
           dentro dos colchetes
  [^]      equivale a qualquer outro caractere menos os caracteres
           especificados
  [-]      equivale a qualquer um dos caracteres da lista

{padrões}
  {,}      equivale a qualquer padrão da lista


Exemplos:

arq*.txt           (todos iniciados com arq)

arq?.txt           (todos iniciados com arq + 1 caractere)

arq[134].txt       (arq1.txt, arq3.txt, arq4.txt)

arq[13][24].txt    (arq12.txt, arq14.txt, arq32.txt, arq34.txt)

arq[^25].txt       (exclui arq2*.txt e arq5*.txt)

arq[1-3].txt       (arq1.txt, arq2.txt, arq3.txt)

arq{[1-3],6}.txt   (arq1.txt, arq2.txt, arq3.txt, arq6.txt)

arq.{doc,xls,txt}  (arq.doc, arq.xls, arq.txt)


O curinga é um recurso que permite a filtragem do que será manipulado pela linha de comando. E como visto em alguns exemplos, os tipos de curingas podem ser usados em conjunto.

As chaves {} possuem um recurso a mais, a geração de caracteres para ser usada na criação de arquivos ou diretórios. Por exemplo, o comando "mkdir aula{1,2,3}" cria os diretórios aula1, aula2 e aula3 de uma só vez.

Os curingas dão vantagem a interface em modo texto quando na seleção de muitos arquivos ou diretórios, pois este procedimento em uma interface gráfica pode ser cansativo.