A máquina com Ubuntu não foi craqueada

Segunda-feira, Março 31st, 2008

Acabei de ler na linux.com que a CanSecWest acabou e a máquina com Ubuntu não conseguiu ser invadida.

Os participantes puderam escolher entre três máquinas para hackear: um VAIO VGN-TZ37CN rodando ubuntu 7.10, um Fujitsu UB810 rodando o Vista Ultimate e um MacBook Air rodando OS X 10.5.2. Todos os sistemas operacionais estavam atualizados.

Os participantes tinham 30 minutos para explorar os códigos nos equipamentos e ler um arquivo nos laptops. Quem conseguisse levava um prêmio (que ia diminuindo conforme os dias passavam) e o laptop.

A primeira máquina a ser crackeada foi o MacBook ao meio-dia do segundo dia e, no terceiro dia às 18:00 (quando estava acabando a CanSec), o vista foi a lona com uma falha no Flash.

A única máquina que ficou intacta foi o Ubuntu.

Não fazendo apologia ao linux, mas estou rodando o ubuntu no note há algum tempo e de longe foi o cara que menos me deu dor de cabeça e que me faz ser mais produtivo.

UFO: Alien Invasion – Jogue um UFO melhor que o original no linux

Quarta-feira, Janeiro 16th, 2008

Ontem resolví dar uma olhada neste jogo, pois sempre fui fã da série UFO.
Fiquei impressionado com o nível de profissionalismo do jogo – e olha que nem é um jogo de tiro- desde o instalador que é fantástico, até pela qualidade do jogo que, apesar de ainda estar em desenvolvimento, já tem 400 MB aproximadamente. Ainda faltam alguns textos do jogo, mas as refeências para eles estão bem colocadas, e logo creio que vai ser traduzido.
Os produtores reescreveram toda engine do jogo, e ficou muito atraente jogar UFO em 3D real, com texturas, rotacionamento da tela e a maioria dos efeitos que as placas de vídeo atuais suportam.
Tomei a liberdade de baixar o vídeo promo do site e colocá-lo como streaming para economizar banda (o vídeo origonal tem quase 100MB).

Vale a pena conferir!


Compilando programas no GNU/Linux

Segunda-feira, Janeiro 14th, 2008

Há algum tempo atrás, eu já havia escrito um tutorial de como compilar programas no GNU/Linux e, como o blog antigo já não está mais no ar, resolvi reescrevê-lo deviao ao ótimo retorno que eu havia tido no tutorial.
Antes de mais nada, para podermos compilar um programa, precisamos de algumas ferramentas básicas para podermos realizar o procedimento, as mais básicas são:

  • glibc e glibc-devel: que são as bibliotecas com as chamadas básicas de io e controle. A glibc DEVE estar instalada, se a glibc-devel não estiver, você deve instalá-la.
  • gcc: O compilador C
  • automake: ferramentas para automatizar o processo da criação de regras de compilação

Provavelmente você também precisará de algumas ferramentas para compilação, como o bison e o flex também.
O objetivo deste post não é ensinar quais ferramentas devem estar instaladas, nem o processo de instalação, mas no ubuntu existe um meta-pacote chamado build-essential que instala os pacotes de compilação de programas para você.
Outra consideração: a maioria dos programas necessitam de bibliotecas de outros programas, por exemplo: se você bvai compilar um programa para o gnome, muito provavelmente ele fará uso do gtk2 para construir a interface com o usuário, logo você precisará ter os pacotes de desenvolvimento dele instalados também.
Bom, supondo que você já tem todas as ferramentas de compilação instaladas, o próximo passo será baixar o arquivo com o código-fonte do seu programa, normalmente é um arquivo tar.gz com o seguinte formato:

programa-XX.YY.ZZ.tar.gz
Um arquivo tar.gz nada mais é do que uma coleção de arquivos e diretórios que foram “juntados” com o programa tar e comprimidos com o gzip (que é compatível com o formato zip).
Depois de salvo, devemos descompactá-lo:

tar xzvf programa-XX.YY.ZZ.tar.gz

Se a extensão do arquivo for .tar.bz2, ele foi compactado com um compactador chamado bzip2 e devemos usar o seguinte comando para descompactá-lo:

tar xjvf programa-XX.YY.ZZ.tar.gz

Após descompactado, deve ter sido gerado um diretório no formato programa-XX.YY.ZZ que contém os códigos fontes dos programas que queremos compilar.
O próximo passo é entrar no diretório criado e dar uma olhada nos arquivos de ajuda do programa, pois eles contém informações importantes sobre quais dependências (bibliotecas) o programa possui e se ele possui alguma característica especial para a compilação/instalação. Sempre dê uma olhada nos arquivos README, INSTALL e semelhantes. Não diga que eu não avisei.
Depois lida a documentação, é hora de dizer para o nosso programa como queremos que ele seja compilado, isto é, onde vamos querer que ele seja instalado e quais opções gostaríamos de ativar ou desativar. Existe um script chamado configure no diretório do código fonte que faz isso para nós. Então:

./configure –help

Nos mostra todas as opções que podemos ou não habilitar no comando configure. Antes que alguém pergunte o “./” é para dizer que queremos executar o comando configure que está dentro do diretório atual (o do código-fonte). Na maioria dos casos vamos executar:

./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var

Já nos serve, pois estamos dizendo que queremos compilar o programas com as opções padrão, que a base de instalação vai ser dentro do diretório usr (os binário devem ficar então dentro do /usr/bin) que os arquivos de configuração deverão ficar dentro do diretório /etc (se não especificarmos esta opção, os arquivos de configuração ficariam em /usr/etc, o que não é o padrão) e que os arquivos de estado ficarão dentro do diretório /var.
Depois do configure rodar, chaga a hora da tão esperada compilação:

make -j3

Troque o -j3 por -j(número de processadores da sua máquina +1 ), no meu caso, como a máquina era um dual core, eu coloquei 3, que são os meus dois núcleos mais 1. Se você tem uma máquina com apenas um núcleo, você pode usar apenas o make, sem nenhuma opção. O -j especifica que você pode realizar mais de uma operação de compilação de uma só vez, diminuindo drásticamente o tempo de compilação. Normalmente se utiliza o numero de processadores mais um, pois existe um job que é de controle, não exigindo muito processamento, então um job de controle mais dois jobs de compilação é o ideal.
Depois do seu programa estar compilado, é hora de instalá-lo. Se você seguiu os passos até aqui como um usuário normal do sistema, você deve se tornar root para poder instalar os aruiqvos do seu programa nos diretórios do sistema.
Se você está logado como root, é só instalar os arquivos. O comando abaixo funciona de qualquer jeito:

sudo make install

O comando sudo informa ao sistema que você quer executar um programa com privilégios de root (administrador do sistema), então se você é um usuário normal, você deverá informar a senha de root antes do comando ser executado.
Depois destes passos, nosso programa já deve estar instalado e funcionando, aí é só relaxar e aproveitar.