linguagens são como mulheres: se você usa muitas, não vai prestar para nenhuma

Desabafo de um imortal

Decidi escrever este texto ontem, no dia dos finados, mas a motivação para escrever este blog foi o significado de sofrimento aferido à morte pela maioria das culturas humanas, em especial pela civilização ocidental, que insiste em me doutrinar. E este texto fala da sua morte, mas não se preocupe, se você o está lendo, provavelmente ela ainda não chegou. :)

1. O provável fim do incerto início

Ainda é motivo de discórdia o momento em que a vida começa, tanto que não há um acordo sobre quando e em quais circunstâncias um aborto pode ser definido como tal. De visões individuais de filósofos, cientistas, pensadores e religiosos a incerteza sobre a origem, o início efetivo e o fim da vida intriga, divide e se mantém através dos tempos como uma incógnita para parece insolúvel, sustentada na crença de que ninguém voltou da morte para contar o que acontece.

É impossível falar de morte sem falar de vida, mas parece presunçoso definir o fim de uma existência da qual não se sabe ao certo quando começou. Mesmo assim, é de comum acordo de quase todos os seres que existe um fim, mesmo que este seja símbolo de um recomeço. Para começar novamente, algo precisa ter acabado. A ciência mantém o fenômeno do Big-Bang para explicar a origem da vida terrena. Se a aceitamos, significa que antes desta explosão o que existia no universo se resumia a corpos sem vida ou, em outras palavras, mortos. Mas se a morte é definida por ausência de vida, como definimos o que nunca foi vivo? Morto, sem vida? Sob este ponto de vista então, o que morre volta à sua origem e seria impossível um recomeço sem geração de uma vida nova.

Da mesma forma que não se sabe o ponto exato de início de uma vida, tampouco se conhece tal exatidão que a extingue. Nos humanos o parar de um coração já foi símbolo de morte, mas as técnicas de desfibrilação, por exemplo, obrigaram a medicina a redefinir tal conceito. Há conceitos de morte cerebral, mas também há registros de atividades elétricas no cérebro após sua provável morte. No entanto, se a morte é irreversível, então sim, uma vida é dada como encerrada. Mas até onde vai essa irreversabilidade? Quem define quando uma técnica de ressucitação não terá mais efeito? Se a tecnologia necessária para tal técnica puder ser aprimorada, é razoável aceitar que teremos errado de novo na precisão do momento da morte e não se sabe até quando esse ciclo de melhora se dará. Como então podemos ter tanta certeza de um fim que não sabemos quando ocorre, de algo que não sabemos quando começa?

Antes de continuar esta leitura, convido ao leitor que aceite, pela ausência de provas, que a humanidade não tem definições sólidas nem para a vida, nem para a morte. Que os conceitos científicos atuais são mutáveis, e assim como se acreditava que a Terra era plana, pode-se descobrir e redescobrir fatos completamente diferentes no futuro sobre estes dois momentos presentes na história dos seres.

2. O medo da morte

Vários estudiosos já escreveram sobre este medo. Há quem defenda que o apego da vida é proporcional ao medo da morte. Valem uns minutos de análise na pintura abaixo entitulada "Tudo é vaidade":

Todo o conceito de morte está ligado à destruição do corpo. Sendo assim, tememos a morte porque acreditamos que somos corpos. A ideia de deixar de existir é assustadora e se achamos que somos mantenedores da nossa própria vida, que se resume a um corpo, nos sentimos insuportavelmente incapazes de proteger nossos corpos, ou seja, nossas vidas, por muito tempo. Tememos a nossa própria incapacidade, já admitida que existe.

Apesar disso, não temos provas de que a morte é, de fato, um fim. Tememos então o que desconhecemos, porque isso, em tese, pode dar fim à nossa existência e, por mais sem sentido e sofrível que essa existência terrestre possa parecer, queremos mantê-la como está. Nisto está o sentimento de não querer envelhecer, por exemplo. Afinal, envelhecer significa, em geral, chegar mais perto do fim. Um outro componente da morte é o fato de poder acontecer a qualquer momento. Sendo assim, não basta o medo de envelhecer. Tal medo é tão grande quanto o medo de morrer a qualquer momento. Parece mesmo assustador.

Exploramos então o conceito de morte e damos vários significados em circustâncias diferentes (morrer velho, novo, de repente, programadamente etc) mesmo ainda sem saber o que ela é. Em que momento aprendemos isso? A resposta desta pergunta está no motivo pelo qual crianças não hesitam em atravessar avenidas, linhas de trem, subir em lugares altos ou ingerir um produto de limpeza. Em muitos casos ainda não impregnaram na ideia delas o que é a morte, que ela é ruim e que devemos temê-la a qualquer custo, mas este treinamento é dado diariamente, até que se fixe e após alguns anos estará criado mais um temedor.

3. E quando morremos então?

Se acreditarmos que somos a própria origem da vida, então morremos quando, sei lá, quando acontecer, como no tango do Raul Seixas, Canto Pra Minha Morte, onde ele ironiza este momento com maestria. Se você acredita que a sua vida se resume à tal incerteza, essa é sua única certeza, por mais paradoxal que essa frase possa parecer. Agora, se você acredita que alguma coisa deu origem à vida, então estamos nas mãos desta coisa. Diferentes culturas o nomeiam de diferentes formas: uma energia, o nada, a origem de tudo, Alah, Deus, Zeus, Tupã. Chame do que quiser. Se você acredita que é uma criatura, aceita então que haja um Criador.

E quão falho seria este Criador se sua criação fosse destruída por um vírus invisível (Ebola, HIV, H1N1 etc), ou porque uma lata com quatro rodas passou por cima de sua criação, ou ainda porque sua criatura bebeu ou comeu algo? Que perfeição teria esse Deus (vou chamá-lo assim) ao criar vidas que podem extinguir umas às outras? Será que matar um corpo e matar uma vida é a mesma coisa? Perceba que, se você tem alguma esperança de que algo seja revelado à você após a morte, automaticamente você admite que não é um corpo que morre! Do contrário, como você poderia receber a notícia? Não vale terceirizar a alma. Ou você é o que chama de alma, ou você é um corpo que não tem uma alma. Ela (a sua alma) não vai poder receber a informação por você. E então, quem é você?

4. A lamentação

Se você chegou até aqui já deve ter escolhido um dos lados. Ou você é somente um corpo ou é imortal. Se é imortal, eu também sou e todos a quem conhecemos também o são. Sendo assim, de onde vem a razão para lamentar a destruição de um corpo? O que seria ficar triste pelo que chama de perda, chorar num enterro, senão negar a perfeição divina?

Este texto foi só para lançar a dúvida. Já dizia Osho que você é o seu inferno e o seu céu. Você, e só você, é responsável pelo que sente. Mas antes de sentir, cabe avaliar se é mesmo verdade que você deve sentir. Não é porque te ensinaram que deve chorar a ausência de um corpo que você deve. Não é porque disseram que a morte de um corpo é o fim de uma vida que ela passa a ser. Se buscar sobre tanatologia (estudo da morte), verá que há décadas cientistas dedicam anos de estudo e ainda se encontram num oceano de inexatidão sobre o tema. De onde você então tirou a certeza tão evidente de que a morte é lamentável tão rápido?

Oportunidades são diárias

Cada dia nos oferece uma série de oportunidades miraculosas de aprendizado. Nesse ponto o povo do mundo dos negócios está certo: a oportunidade sempre existe. Às vezes nós é que não a vemos. Ontem vi três delas:

1. O ex-preconceito

Quem se mudou e não transferiu o título de eleitor para a nova região onde mora, sabe que dia de eleição é dia de reencontrar velhos amigos. Ontem foi um dia destes e um dos velhos amigos tinha uma novidade para contar: era homosexual. Bem, não era lá tão novidade uma vez que muitos já sabiam, outros desconfiavam. Nenhuma surpresa, a não ser o fato de ele ter falado em meio a tanta gente. Coisa que precisa ser homem pra fazer, não? :)

Até então nada demais. Mas a região onde crescemos não é lá muito tolerante a quem parece diferente da maioria, seja gay, gordo, anão, gigante, nerd, feio, aleijado, maconheiro... O fato é que a discriminação rola solta por lá, e com esse meu amigo não seria diferente, se não fosse o fato de ele ter feito fortes amizades muito antes de qualquer um desconfiar de sua orientação sexual. Já fazia parte do 'core' da galera há tempos e já era admirado por muitos por esbanjar alegria, amizade, sucesso profissional, bom humor. É o tipo de cara que todo mundo gosta. O que acontece quando este cara faz uma revelação dessas? Nada. Ninguém mudou absolutamente nada com ele. Parece que não afetou. Não pude deixar de notar a oportunidade que havia ali. Para mim, isso prova que o preconceito nunca existiu, mas sim uma leve necessidade de enquadramento social (se ninguém gosta de viado, eu também não posso gostar. Aliás, se eu gostar, vão dizer que eu sou viado!). É engraçado, mas emana um micro-sentido.

Se examinarmos com profundeza o que é este sentimento de rejeição que habita nos ditos homofóbicos, na maioria dos casos chegamos a uma origem muito dificíl de entender dada uma única razão: é nula. Fazem porque outros fazem. Não posso deixar de lembrar do experimento dos 5 macacos e, pasmem, nossos corpos são macacos. Coincidência? :)

2. O pedido de amor

Na mesma reunião um outro amigo comentou, em tom de humor, que estava ficando maluco tentando entender o sentido da vida. Claro que não era tão engraçado sim pois segundo ele estava "a ponto de fazer uma merda". Quem não vê sentido na vida realmente não vê motivos para mantê-la e por vezes acredita que ao findá-la terá suas repostas. É um prato cheio para o suicídio. A parte trágica é que destruir um corpo não deixa ninguém sábio. Se fosse fácil assim, era só todo mundo se matar.

Ele disse estar cansado da balela das religiões e respondi que os ateus são mais próximos da verdade mesmo, pois ainda questionam enquanto vários religiosos acreditam na sua própria verdade. Como sugere a tirinha acima, em geral preferimos deixar para pensar nisso "outro dia" e assim "levamos a vida". Ledo engano. :)

Queria mesmo era dizer a ele tudo, mas não consegui, por vários motivos. Dentre eles o principal: eu não sei.

3. A esmola

À noite em outro local um morador de rua se aproximou. O diálogo fala por si só:

- Boa noite, não é dinheiro não, nem assalto. Só vim pedir uma força.
- Boa noite! Tranquilo, diz aí.
- É que preciso comer. Tem como me ajudar?
- Com dinheiro não, pois não tenho.
- Sem problemas. O pessoal acha que a gente quer assaltar sabe?
- Imagina. Nunca pensei isso. Tem um biscoito aqui, quer?
- Claro!
- Tá aí. Desculpa não poder te ajudar mais.
- Está ótimo. O mais importante você já me deu: atenção.

Monitor e capturador de arquivos no Windows

Precisei de um programa que monitorasse o sistema de arquivos do Windows e enviasse pra mim cada arquivo criado. A ideia era colocar num honeypot (máquina destinada a ser deixada exposta, geralmente na internet, de modo que atacantes possam invadir, plantar malware etc). Como muitos atacantes e ameaças criam arquivos durante o ataque os apagam após usar, só temos uma chance de pegá-los.

De fato, houve ransomwares recentes que após encriptar todos os arquivos das vítimas, se apagavam com secure shredding, impossibilitando a recuperação por carving, por exemplo. Então eu precisava de algo rápido o suficiente para copiar o arquivo para outra localidade antes que esta deleção ocorra.

Procurei e não achei, então escrevi o FileGrab, em C# pra tirar proveito da classe FileSystemWatcher do .NET Framework, que faz praticamente todo o trabalho. O software, como de costume, é livre. E programadores que se interessem em ajudar estão convidadíssimos a trocar uma ideia por e-mail, enviar patches pela página do projeto no GitHub etc. Seria legal contar com quem sabe bem C# direito, pois este não é o meu caso. :)

Por enquanto o FileGrab monitora recursivamente a partição principal ou um diretório específico e envia arquivos criados para um servidor FTP ou copia para um compartilhamento de rede, mas tenho um TODO que envolve monitorar múltiplas partições e definir regras para que tipos de arquivos enviar, além de suportar envios através de outros serviços.

Você sempre pode ajudar o software livre! Dando 'like', compartilhando, divulgando, falando sobre, enviando sugestões, bugs, fazendo patches. A oportunidade de ajudar sempre existe. Você que às vezes não enxerga. ;)

A famosa baleia branca

Normalmente escrevo sobre temas ténicos mas hoje o faço sobre um livro que acabei de ler, que não tem nada a ver com computação, mas na verdade me motivou muito. É o lendário "Moby Dick", de Herman Melville. Um livro curto, de tamanho suportável como na minha opinião todos deveriam ser. Para começar gostei do preço: R$ 7,00 numa feira de livros em um shopping. Imagina quanto custaria num sebo? Claro que não é o original que parece ter sido publicado em 3 volumes, mas uma adapção em português. Por sinal, uma senhora adaptação de Carlos Heitor Cony. Um trabalho fantástico.

E não era pra menos. Ao pesquisar descobri que este senhor é um gênio do jornalismo e literatura brasileira, ocupando a 3ª cadeira da ABL. O livro está tão bem escrito que assusta!

A história do inacreditável comandante Aheb que sonha a cada segundo em matar uma baleia que arrancou sua perna é intrigante, mas o que mais me surpreendeu foi o aprendizado que este livro proporciona. Não que eu vá caçar baleias, mas sinto como se já soubesse o básico se eu precisar fazer parte de uma tripulação de algum navio um dia. :)

No livro há lições de honra, amizade, religião, teimosia, estupidez, compaixão, burrice e respeito. É uma verdadeira aula do que não fazer, e do que fazer também, em momentos distintos.

É uma aula também sobre Geografia, já que todos os lugares são reais, como a ilha de Nantucket, que já sonho em visitar. Várias vezes recorri ao mapa mundi para entender porque navio Pequod, principal do romance, navegava numa direção específica. Fez-me reestudar o Cabo da Boa Esperança, um atalho bem à sul da nossa América muito conhecido pelos navegantes, além do Estreito de Magalhães e outros. Li também que um raio pode inverter a agulha de uma bússola e zuar com a vida do navegante. Sobre cachalotes então, aprendi muita coisa. Talvez essa passagem sobre tubarões seja mais útil, no entanto:

Não é raro vê-los em cardumes, acompanhar dias e dias
um navio em pleno oceano à espera de que se lance a água um cadáver
de um marinheiro morto a bordo

Conheci também palavras que eu não conhecia:

afã
óculo
Luneta. E faz todo sentido.
magarefe
Açougueiro, no sentido pejorativo para cirurgião.
aproar
Ir à proa.
estrépito
Ruído que algo faz ao deslizar por uma superfície.
barlavento
O vento que vem contra
sota-vento
ataúde
Caixão
esquife
desvario
encapelar
vagalhões
santelmo
círio
Vela grossa
calafetar
augúrio
encarapitar
rutilante
estratagema
Estratégia, geralmente de guerra.
quilha
aríete
mortalha
estertor
sorvedouro

Pra mim foi de impressionar. Já sabia que nosso idioma é um dos, se não o mais rico do mundo, mas ainda me impressiono. Valeu, Carlos! :)

pev 0.70 no ar!

Tenho grande satisfação em informar que a versão 0.70 do pev, nosso kit de ferramentas para análise de binários PE (Portable Executable, do Windows) está no ar!

Esta versão é especial por vários motivos, dentre eles:

Agora as principais novidades!

Mais informações no changelog.

Parecem poucas, mas a alteração na libpe requeriu alterações em todos os programas do kit, pois são dependentes dela. Eu diria que essa foi a principal mudança na versão 0.70, que facilitará bastante a programação daqui em diante.

Nosso objetivo é ser o melhor e maior toolkit para análise de binários PE. O projeto continua crescendo e você pode ajudar para que isso aconteça cada vez mais rápido. Só chegaremos lá com sua ajuda. Por isso gostaria de convidar você agora para ajudar escolhendo uma ou mais das formas abaixo. Assim teremos energia e motivo para continuar programando e liberando novas versões. São ações simples pra você, mas que farão uma grande diferença pra nós:

Em nome das comunidades de software livre e segurança brasileiras, nosso muito obrigado por usar e contribuir com o pev. Vamos juntos fazer o melhor kit de ferramentas para análise de binários PE que existe!

Nova distribuição Linux rápida, segura e moderna! Sei.

Motivei-me a escrever este texto dada a recente enxurrada de distribuições Linux que vêm surgindo de tempos em tempos. Basta dar uma rápida olhada no site DistroWatch [1] pra ver a quantidade de distribuições que estão em pleno desenvolvimento. Várias redundantes em entre si, no entanto.

Há tempos penso na real necessidade da existência de distribuições extremamente especí­ficas como as com foco em forense, ou com foco em jogos, ou com foco em crianças. Entendo que muitos querem ajudar, mas será que não existe uma pontinha de exibicionismo nisso? Será que a frase "fulano criou a distribuição X" soa atraente? Parece que para criar uma distribuição Linux se precisa de um vasto conhecimento. É algo discutí­vel.

Há vários problemas nas distribuições Linux atuais. E uma das coisas que me incomoda é que enquanto no Debian, por exemplo, há vários pacotes órfãos [2] (sem mantenedores), tem gente pensando em criar sua própria distribuição baseada no Debian (porque é mais fácil com ele) e vai dar um foco em X, Y ou Z. As desculpas são as mais variadas: segurança, estabilidade, robustez, desempenho... Palavras bonitas, como sempre. Vejamos algumas descrições, retiradas do próprio DistroWatch, porque no site das distribuições é quase impossí­vel obter uma descrição do que é. Tem foto de gente voando, criança correndo, cachorro feliz, mas não fala porque diabos o sistema existe!

is an Ubuntu-based desktop distribution. Some of its more interesting features include a new GTK+ and icon theme for GNOME, the Midori web browser, new applications developed in-house.

Criaram um tema para o GNOME e desenvolveram algumas aplicações. Legal, por que não colocaram no Ubuntu? Melhor ainda, no Debian, que é o pai (e daí­ o pacote vai pro filho de qualquer jeito)? Desde quando ter o Midori é um recurso? O que acontece se eu tenho Ubuntu usando esse tema e com o Midori? Será que só eu acho que é extremamente redundante e desnecessário o esforço de criar uma distribuição, pagar domí­nio, manter repositórios etc só porque o seu tem 10 aplicativos a mais e usa uns temas e gerenciadores de janelas diferentes?

Vamos à outra...

is a fork of Ubuntu and Linux Mint. The goal of the project is to create a complete, seamlessly integrated, visually stimulating, and easy-to-install operating system. Single-button upgrade is one of several special characteristics of this distribution. Other main features include custom desktop and theme with 3D effects, support for a wide range of networking options, including WiFi and Bluetooth, and integration of many extra applications and package repositories.

Os principais recursos deste são um tema com efeitos 3D, suporte a wifi e bluetooth... Acho que nem precisa continuar. Não dava pra colocar este tema como pacote no Ubuntu mesmo né?

Outra...

is a versatile, Debian-based distribution featuring a large collection of audio and video production software. Additionally, it also includes a custom kernel with IRQ threading enabled for low-latency audio performance.

Eu não sei que ferramentas de áudio e ví­deo colocaram neste, mas tenho certeza que funcionariam em qualquer outro Linux. Se não existir pacote pra elas, cria ué. Dá o mesmo trabalho (talvez menos) do que criar para sua própria distribuição. E esse kernel personalizado, na verdade é uma opção presente em todos os kernels. Não é desculpa para criar uma distribuição inteira né?

is a GNU/Linux distribution containing a variety of tools designed to help with management, maintenance and recovery of computer systems. It is based on Arch Linux.

Várias ferramentas para recuperar dados. Precisava de uma distro inteira ou era só colocar os pacotes no Arch?

Você que está pensando em criar sua própria distribuição para resolver um único problema, gostaria de obter sua licença e pedir que você pense duas vezes. Se você não está satisfeito com a falta ou o excesso de recursos da sua distribuição atual, pode muito bem discutir, conversar, agir para mudar. Você é capaz! Vamos pegar um exemplo... Você é um pesquisador em forense e teve a brilhante ideia de fazer uma distribuição porque acha que as outras mil que existem não tem os softwares que você quer. Supondo que você sempre instale sua distro atual e coloque nela:

Autopsy
SleuthKit (supondo que dê um grande trabalho pra compilar)
Xplico
Wireshark

Aí­ você desenvolve uns scripts úteis para o seu trabalho:

script1.pl
script2.py
script3.sh

E acha KDE pesado, então usa LXDE. Só que toda vez que você vai setar uma máquina nova, precisa instalar os programas, compilar o sleuthkit, copiar seus scripts, colocá-los no PATH, instalar o LXDE e remover o KDE. Caramba, hora de criar uma distro que já venha com tudo isso pronto! Só que não. :)

Considere essa saída:

Pronto. Veja as vantagens do que você fez:

Vejamos algumas justificativas comuns para criar uma distribuição nova, e minhas humildes considerações sobre cada uma delas:

1. É sempre bom ter alternativas
Concordo, mas alternativa a que? A um sistema consagrado, com milhares de usuários no mundo todo e grande aceitação no mercado? Você cria um "baseado" e diz que está oferecendo uma alternativa? Cria do zero então. Aí­ é uma alternativa, não um "baseado". :)

2. É prático ter CDs no seu pack com distros pra várias tarefas diferentes
Carregar um porta CDs com vários discos de 120mm para cima e para baixo não soa nada prático.

3. É bom que as ferramentas já vêm prontinhas e funcionando
Isso só acontece porque você não as colocou na sua distribuição anterior e preferiu fazer a sua! Do contrário elas também estariam lá, prontinhas e funcionando.

4. Mas na minha própria distribuição elas já vem instaladas! Muito útil pra quem não tem internet na hora!
Só que elas ficam desatualizadas porque estão presas dentro de um CD! E se não tem internet, não baixa a versão mais nova.

5. Na minha distribuição eu posso fazer o que eu quiser!
Verdade, mas lembre-se de outros usuários a utilização e eles podem não querer o mesmo que você. Se os desenvolvedores da sua distribuição anterior não aceitaram uma mudança X, procure entender os motivos e se realmente achar que vale a pena, você poderia fazer um fork do software onde quer implementar a mudança, não um fork da distribuição inteira!

6. Não é fácil ter meus pacotes aceitos no repositório oficial da minha distribuição atual
Não mesmo. Isso porque as distribuições tratam com seriedade e exigem um nível de qualidade de pacotes alto, justamente para fazer jus ao seu título de estáveis. Não creio que dê menos trabalho criar uma distribuição do zero. Em último caso você hospeda seus programas no Source Forge [3] e pede os usuários baixarem. Vai dar menos trabalho pra eles, pra você e até pra banda de internet porque se for para usarem os seus programas, melhor que baixem só eles né. Queria ver no mundo onde a internet era em 56k se para distribuir 10 scripts todo mundo faria distribuição com ISO de 600M como está agora. :)

Não quero desencorajar ninguém a fazer suas criações, apenas levantar uma bandeira para pensar duas vezes antes de entrar numa tarefa tão complexa que é manter uma distribuição. Pense no tempo que você vai precisar dedicar aos aspectos do SO que você não estava nem ligando. É um tempo precioso, no qual você poderia estar trabalhando nos seus softwares ou suas reais necessidades.

[1] http://distrowatch.com
[2] http://www.debian.org/devel/wnpp/orphaned
[3] http://sourceforge.net/

Instalando VMware ESX via pen drive

Recentemente precisei instalar o ESX num servidor que não tinha drive de CD e eu também não possuía um drive USB à mão. Imaginei que seria fácil fazê-lo via pen drive, mas cada teste era extremamente demorado pois exigia reiniciar o servidor para saber se a gravação da ISO no pen drive tinha dado certo. Isso me consumiu quase 2h até conseguir, até encontrar um manual da própria VMware [1]. Decidi fazer um script para automatizar este processo, já que achei-o longo e esse trabalho deu origem ao que chamei de esx2usb.sh [2], um script onde você informa a ISO do ESX que deseja gravar e o dispositivo USB de destino. Funciona no Linux e precisa somente do syslinux e do parted. Recursos:

- Detecta o tamanho do pen drive, apaga todas as partições e cria uma única FAT-32 com o tamanho (quase) total.

- Instala o syslinux e o MBR necessários para o boot.

- Faz a cópia dos arquivos do ESX e os patches necessários para bootar via USB.

[1] http://kb.vmware.com...

[2] https://gist.github.com/4697202

Lançado o pev 0.60!

No dia 31 de outubro de 2012 tive a enorme alegria de anunciar mais uma versão do nosso kit brasileiro, livre e multiplataforma para análise de arquivos executáveis de Windows.

Conforme prometido, o pev ganhou um grande foco em análise de arquivos suspeitos e por isso ferramentas como pescan, pedis e pepack receberam muitas linhas de código para implementar os novos recursos.

Seguem algumas mudanças nesta versão:

+ páginas de manual (man) para todas as ferramentas.
+ disassembly de 16, 32 e 64-bits no pedis.
+ nova ferramenta para cálculo de hashes: pehash.
+ busca por assinatura (banco de dados do usuário) por packers no pepack.
+ visualização de funções exportadas por nome com o readpe.

O changelog completo pode ser consultado em https://github.com/merces/pev/blob/master/changelog

Há também o início de uma documentação em português do projeto em http://pev.sourceforge.net/html-doc/.

Gostaríamos também de solicitar ajuda aos usuários do pev e a qualquer um que queira colaborar com o desenvolvimento deste software livre, seja apoiando, divulgando, dando sua opinião, enfim, da maneira que quiser. Abaixo segue uma lista de ações que vão nos ajudar muito e nos dar força para continuar desenvolvendo o projeto e fazendo-o crescer e melhorar cada vez mais.

Para contribuir com o pev, você pode:

- Dar um like, +1 ou tweet a partir dos botões da pev.sf.net.
- Baixar e instalar o software.
- Usar e reportar bugs.
- Avisar aos amigos da existência do projeto e enviar esta lista.
- Entrar na lista de desenvolvimento
do projeto para acompanhar as novidades, opinar ou até mesmo ajudar no desenvolvimento ou em outras tarefas como site, testes (há um time de testes em estruturação), contato mantenedores de pacotes etc. Entra lá e se apresenta que com certeza a gente arruma algo pra você ajudar! ;)

O que há de novo no pev 0.50

É com muita alegria que venho anunciar a versão 0.50 do pev, resultado de um grande esforço de desenvolvimento e aprendizado. Na versão anterior, o pev era um programa que exibia informações sobre executáveis PE e detectava algumas características interessantes. Agora na 0.50 o pev se transformou num kit de ferramentas para se trabalhar com arquivos PE e a maioria do código do pev antigo deu origem à ferramenta readpe, incluída no kit.

A primeira grande mudança foi a escrita uma biblioteca batizada de libpe. Todas as ferramentas do pev toolkit utilizam esta biblioteca para obter informações básicas de arquivos PE. Isso exigiu um grande esforço e certamente a libpe ainda vai crescer e ser melhorada, mas já está ajudando muito o desenvolvimento. Então agora a coisa funciona assim:

ferramentas
  \     /
   \   /
   libpe
     |
   glibc

Ou seja, todas as ferramentas dependem da libpe (pelo menos), que por sua vez, depende somente da glibc.

O toolkit contém neste release as seguintes ferramentas:

* readpe   - exibe os cabeçalhos, seções e funções (imports) de um PE
* pedis    - disassembla funções e seçõs do PE
* pesec    - busca por características de segurança nos PE como ASLR e DEP
* pescan   - busca por características suspeitas como seções de tamanho nulo, modificação do stub do DOS etc
* rva2ofs  - converte um RVA para offset no arquivo
* ofs2rva  - converte um offset de arquivo em disco em RVA
* papack   - detecta packers (só o MEW packer por enquanto)

Para instalar o pev no Linux, basta baixar o tarball e executar:

$ wget -c https://downloads.sourceforge.net/project/pev/pev-0.50/pev-0.50.tar.gz -O pev-0.50.tgz
$ tar xf pev-0.50.tgz
$ cd pev-0.50
$ ./configure && make
$ sudo make install

Isto vai compilar e instalar a libpe e todas as ferramentas do kit. Instruções mais detalhadas estão disponíveis no arquivo README (em inglês).

Para compilar no Windows é preciso ter o Cygwin, mas para facilitar já disponibilizamos pacotes zip de 32-bits e 64-bits, incluindo a libpe.dll e as todas as ferramentas.

Outros sistemas também podem ser suportados via compilação a partir do tarball. Por favor, cheque o arquivo README para maiores detalhes.

Daremos mais foco em recursos úteis para analistas de segurança nos próximos releases. Aproveito para agradecer a galera da lista de desenvolvimento do pev, que trabalhou bastante para que este release fosse possível. As comunidades de software livre e de segurança agradecem! :)

A Arte de Nomear

O mundo de segurança da informação tem vários problemas, dentre eles pseudo-hackers, script kiddies, charlatões, muita gente ganhando dinheiro sem fazer nada efetivamente útil, mas queria falar aqui sobre um fato que vem me incomodando: os nomes utilizados no mundo de SI.

É sabido que os americanos usam e criam muitas siglas, mas a coisa está tomando uma proporção chata. Por exemplo, se um atacante levanta um serviço falso para enganar usuários e fazê-los se autenticarem no servidor falso para roubar seus dados, o ataque é dito de Man In The Middle (MITM). O que será mais velho, a técnica ou o nome?

Aí vem aquele fabricante de produto dizendo que defende contra MITM attack e você fica todo feliz quando compra. Aí é que está a mágica.

Engenharia reversa virou análise de artefatos. Um include mal feito em PHP virou LFI/RFI (Local/Remote File Inclusion) - se for um require? Alguém quer batizar? Um redirect em JavaScript virou XSS (Cross-site scripting), um vírus com objetivo virou APT (Advanced Persistent Threat) ?! Aliás, vírus mesmo tá complicado de definir, uma vez que dependendo da ação a indústria dá nomes diferentes. Se roubar senha de banco é banker, se se espalhar é worm, se só encher o saco é adware, se logar o que você digita é keylogger, se gravar sua tela é screenlogger e a lista não parava de crescer, até que escolheram a palavra malware para referenciar todos eles. Mas se analisarmos, continuam fazendo a mesma coisa: infectando, espalhando e funcionando. Dã.

Tentar a senha é brute force, mas se usar uma lista pré-definida de palavras (wordlist !), já vira dictionary attack (putz). Se forem hashes, aí já é rainbow table attack (não me perguntem por que) e, advinha, já li num certo material sobre esteganografia que existe até o Visual Attack, que é ficar olhando os bytes tentando entender o que se passa. Sério?

Um monte de ping que resulta em negação de serviço (parece coisa de homem frouxo) pode ser evitado com um IPS (Intrusion Protection System), detectado com um IDS (Intrusion Detection System) e parados com um DDS (DoS Defense System). Difícil mesmo é segurar o DRDoS (Distrubuted Reflected DoS), rapaz! E o VIPDoS que sai sem querer? Eu não sei a diferença entre eles, mas preciso de todos os produtos na minha empresa para mante-la segura e meu sysadmin sabe até usar o nmap se for preciso. \o/

Pensa que acabou? Não, preciso também de um APIDS (Application protocol-based IDS), HIDS (Host-based IDS), PIDS (Protocol-based IDS), RBIDS (Rate-based IPS) mas todos são NIDS (Netowrk IDS). Legal né? Compra tudo!

Até a falsidade na internet tem nome legal.. IP spoofing, mas se só alterar o MAC, é MAC spoofing. Se mudar os dois, quem dá mais? É muito útil para smurf attack e fraggle attack. Meu Deus, quanto perigo... Cuidado com o sockstress porque depois do backscatter você vai ter que chamar o perito forense, o especialista em forense digital, o pentester e o analista de artefatos, mas primeiro tem que gritar pelo grupo de resposta à incidentes, ou melhor, IR. Fica esperto com seu firewall, que se não fizer SPI você está statefuldido. Vai precisar de um NAC no NOC. ;)

É cookie attack, session hijacking, fixating, form attack, criptografia on-the-fly (ela avua?), privillege escalation, análise comportamental, enumeração, fingerprinting, defacers, backtracking, evasion, blackholing, sinkholing, nuke, death ping, icmp flood, syn flood, icq flood (lembra? hehe), spam, scam, phishing, mail bomb, RUDY, bankers, white, gray, green, black, pink... E hacking que é bom, NOP.

Sabe a criptografia? Se estiver num vírus é criptovirologia. Opa, o primeiro que desenvolver um algoritmo de criptovirologia ganha! Como opção, pode-se fazer um kleptography algorithm (essa eu deixo para o leitor googlar).

A rota pra lugar nenhum é nullroute sabia? Pode ser blackhole route também pra facilitar. Essa é uma técnica muito avançada de criar uma rota para um endereço inválido e achar que está protegido, experimente!

Enquanto você lê este texto certamente há um engravatado pensando num novo termo para definir algo antigo e ganhar dinheiro com isso (cloud? big data? ti verde?). Só tenha em mente uma coisa: o produto dele vai defender sua empresa contra todas as siglas, menos contra crackers.

DWA-125 x Linux 3.2

Novamente ao atualizar o kernel o driver não compilou e novamente foi simples patchear. Dessa vez foi este o erro:

/tmp/2009_1204_RT3070_Linux_STA_v2.1.2.0/os/linux/../../os/linux/rt_linux.c:1522:10: error: unknown field 'ndo_set_multicast_list' specified in initializer

O campo ndo_set_multicast_list foi removido do struct net_device_ops do kernel, em include/linux/netdevice.h por cair em desuso. [1]

Neste caso, basta remover a linha 1522 do arquivo os/linux/rt_linux.c do driver e o driver volta a compilar, mas precisa também das alterações explicadas no post DWA-125 x Linux 3.0.0.

[1] http://patchwork.ozlabs.org/patch/110211/

DWA-125 x Linux 3.0.0

Quem usa algum adaptador wireless USB num desktop já deve ter passado por situação similar. Depois de ressucitar meu desktop, eu instalei o Debian Wheezy (atual testing) a partir de um DVD e este veio com o kernel 2.6.32 pois o meu DVD não foi baixado recentemente. O meu adaptador D-Link DWA-125 ainda precisava do driver.

Achei um driver no site da própria D-Link [1] e aqui cabe um parênteses: muito legal ver que fabricantes tem se preocupado com os usuários do GNU/Linux. O suporte ao pinguim ainda pode melhorar muito, mas já demos o primeiro passo.

Ao baixar o driver, este compilou normalmente com o make e instalei com o make install. Funcionou perfeitamente e fui atualizar o Wheezy. Eis que começa a saga. O Wheezy está com o kernel 3.0.0 e o driver da D-Link para o DWA-125 data de 2009. De lá para cá, houve várias mudanças no kernel e por conta disso o driver não compila. Como o driver é aberto, comecei a debugar os erros do make. Vamos lá:

$ make
/home/fernando/2009_1204_RT3070_Linux_STA_v2.1.2.0/os/linux/../../common/rtmp_init.c:3710:2: error: implicit declaration of function ‘init_MUTEX’ [-Werror=implicit-function-declaration]

Pelo que andei lendo na internet, a função do kernel init_MUTEX (linux/config.h) foi substituída pela sema_init (linux/semaphore.h). Isso explica o erro do make. Então fui no arquivo de cabeçalho do driver include/rt_config.h e adicionei logo abaixo da linha 42 o novo include:

#include <linux/semaphore.h>

Mas no fonte rtmp_init.c, na linha 3710 que é onde o make dá o erro, teríamos de atualizar a chamada para a nova função. No entanto, pode ser que o driver use semáforos em outros lugares e por isso é preferível adicionar um define para redefinir a função. Fiz isso logo abaixo da linha que incluí no rt_config.h:

#define init_MUTEX(x) sema_init(x,1)

Nova tentativa:

$ make clean && make
/home/fernando/2009_1204_RT3070_Linux_STA_v2.1.2.0/os/linux/../../common/cmm_mac_usb.c:112:4: error: implicit declaration of function ‘usb_buffer_free’ [-Werror=implicit-function-declaration]

/home/fernando/2009_1204_RT3070_Linux_STA_v2.1.2.0/os/linux/../../common/cmm_mac_usb.c:112:4: error: implicit declaration of function ‘usb_buffer_free’ [-Werror=implicit-function-declaration]

Mesmo erro mas para outra função. Desta vez é a usb_buffer_free(). Esta função foi renomeada para maior clareza de código [2] mas a assinatura foi mantida, portanto, basta alterar o nome mesmo. A função usb_buffer_alloc() também mudou de nome, então são mais dois defines:

#define usb_buffer_alloc usb_alloc_coherent
#define usb_buffer_free usb_free_coherent

E nova tentativa:

$ make clean && make install

Desta vez compilou e funcionou perfeitamente. Em resumo, basta adicionar as seguintes linhas no include/rt_config.h do driver:

#include <linux/semaphore.h>
#define init_MUTEX(x) sema_init(x,1)
#define usb_buffer_alloc usb_alloc_coherent
#define usb_buffer_free usb_free_coherent

Lembrando que a licença do driver não permite redistribuição do código alterado. Mesmo assim, o fato do código estar disponível nos permite adaptações deste tipo. Se fosse proprietário, ficaríamos esperando por uma atualização que nem saberíamos se sairia.

[1] http://www.dlink.com.br/suporte/
[2] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=073900a28d95c75a706bf40ebf092ea048c7b236

Vírus brasileiro recém-lançado já chega por e-mail

Recebi hoje uma mensagem de e-mail não autorizada (SPAM) com o seguinte conteúdo:

------

from: "sandro ferreira da silva" <sfssaude@hotmail.com>
to: *vários endereços, incluindo o meu*
date: Mon, May 30, 2011 at 12:51 PM
subject: sfssaude:4:51:41 PM:7853751828484559378
mailed-by: hotmail.com

Peguei as fotos do celular, até que ficaram bonitas rsrs..
Beijos !

IMG0650.JPG --- IMG0321.JPG

Link verificado por LiveSecurity - SEGURO

Verificado: sfssaude:4:51:41 PM:7853751828484559378

------

Resolvi conhecer o golpe, apesar de bem mal feito. Os nomes de supostas imagens linkam para a seguinte URL:

http://downloadf4.webng.co/?sfssaude:4:51:41+PM:7853751828484559378 (cuidado)

Com o wget, fui baixar o danado:

$ wget -c http://downloadf4.webng.com/?sfssaude:4:51:41+PM:7853751828484559378
--2011-05-30 12:55:15-- http://downloadf4.webng.com/?sfssaude:4:51:41+PM:7853751828484559378
Resolving downloadf4.webng.com... 38.100.19.105, 38.100.19.122
Connecting to downloadf4.webng.com|38.100.19.105|:80... connected.
HTTP request sent, awaiting response... 302 Object moved
Location: http://www.cartomanciaonline.com.br/dev/cartao_postal/IMG2005M.zip [following]
--2011-05-30 12:55:42-- http://www.cartomanciaonline.com.br/dev/cartao_postal/IMG2005M.zip
Resolving www.cartomanciaonline.com.br... 189.38.90.137
Connecting to www.cartomanciaonline.com.br|189.38.90.137|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 42526 (42K) [application/x-zip-compressed]
Saving to: “index.html?sfssaude:4:51:41+PM:7853751828484559378”

100%[======================================>] 42,526 1.53K/s in 33s

2011-05-30 12:56:40 (1.24 KB/s) - “index.html?sfssaude:4:51:41+PM:7853751828484559378” saved [42526/42526]

Em negrito, o primeiro domínio envolvido, webng.com, que é de um hosting americano. Até então nenhuma novidade, mas o legal é o 302 para um domínio brasileiro, cartomanciaonline.com.br. É lá que está o arquivo suspeito. Acessei este site hoje e está no ar. O whois retornou que os servidores DNS deste cara são mantidos pela PPSTech:

$ whois cartomanciaonline.com.br | grep nserver
nserver: dns1.ppstech.com.br
nserver: dns2.ppstech.com.br

Através do chat no site da empresa paulista, denunciei a hospdedagem no arquivo para fins de SPAM e possível disseminação de vírus. Fui bem atendido pela atendente online Michele, que prometeu providências por parte da empresa. Avisei também ao hosting americando WebNG do sub-domínio malicioso (downloadf4) e por fim, encaminhei a mensagem de e-mail para o endereço avs@linhadefensiva.org, galera do ARIS-LD que faz um belo trabalho estudando as pragas brasileiras e ajudando usuários leigos a removê-las.

Agora uma análise básica do arquivo. Não pude ir além porque não tenho uma instalação de Windows aqui.

$ mv index.html\?sfssaude\:4\:51\:41+PM\:7853751828484559378 suspect_file

$ ls -l suspect_file
-rw-r--r-- 1 fernando fernando 42526 May 29 11:37 suspect_file

$ file suspect_file
suspect_file: Zip archive data, at least v2.0 to extract

$ unzip suspect_file
Archive: suspect_file
 inflating: IMG2005M.exe

$ ls -l IMG2005M.exe
-rw-r--r-- 1 fernando fernando 58880 May 29 02:17 IMG2005M.exe

$ file IMG2005M.exe
IMG2005M.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

Temos um executável de Windows. Para mim, executável com nome de imagem *é vírus*, 100% das vezes. Do contrário, qual o motivo de tentar enganar o usuário disfarçando o nome do arquivo?

$ pev -c IMG2005M.exe
COFF header:
 Machine: 0x14c - Intel 386 and compatible (32-bits)
 Number of sections: 3
 Date/time stamp: 1306646260 (05/29/2011 at 05:17:40 AM)
 Symbol Table offset: 0
 Number of symbols: 0
 Size of optional header: 0xe0
 Characteristics: 0x10f (00000000000000000000000100001111)
    IMAGE_FILE_RELOCS_STRIPPED
    IMAGE_FILE_EXECUTABLE_IMAGE
    IMAGE_FILE_LINE_NUMS_STRIPPED
    IMAGE_FILE_LOCAL_SYMS_STRIPPED
    IMAGE_FILE_32BIT_MACHINE

Compilado ontem. Alguém não dormiu pra fazer merda...

$ pev -s IMG2005M.exe
Sections:
 Name: UPX0
<...>

Vemos o UPX [o packer mais manjado da Terra] no arquivo. O morcegão em questão não queria que vissem o conteúdo de seu arquivo facilmente e queria reduzir o tamanho pra facilitar a distribuição do arquivo pela internet. Esperto ele...

A partir deste momento eu já denuncio como vírus. Aliás, desde a mensagem de e-mail eu já denunciaria, mas de vez em quando gosto de me certificar. Se alguém quiser prosseguir com a análise pra ver o que ele faz seria ótimo - só falar comigo porque pode ser que eu arrume um Windows e faça, aí teremos dois trabalhos.

UPDATE: eu segui com a análise no artigo Análise do malware IMG2005M.exe.

Até a próxima! o/

III FSLDC

Os eventos de software livre estão bombando. No dia 4 de junho acontecerá o terceiro Fórum de Software Livre de Duque de Caxias, organizado pelo amigo Alessandro Silva. Ele conseguiu trazer ninguém menos que Rasmus Lerdorf, o criador do PHP e Jon "Maddog" Hall, que dispensa comentários. Já se sabe que são palestras *imperdíveis* no evento. Além disso, na grade há palestras sobre assuntos variados como Python, SL na educação, Android, Forense, Telefonia, CMS, Web, DB, enfim, tem pra todos os gostos.

Eu sou voluntário na organização do evento e quero ter trabalho, então vamos lotar esse evento, valeu? Inscrições e outras informações no site do FSLDC.

Web Security Forum e Software Livre

No último fim de semana estive no Web Security Forum, em São Paulo - SP. O evento foi um sucesso. Simplesmente impressionante, ainda mais em sua primeira edição. Realmente o Gustavo Lima (organizador) soube fazer um evento que agradou participantes, palestrantes e patrocinadores. Sensacional.

Mais importante que o evento em si, para mim, foi a oportunidade de conversar com vários hackers brasileiros, inclusive sobre software livre, que não é um tema muito em alta na scene. Rola um pouco de receio. Não poderia deixar de comentar que o autor da ferramenta de injeção de pacotes T50, Nelson Brito, me convidou para transformar o T50 em um projeto open source, sob a GPLv2. Apesar do peso da responsabilidade, fiquei feliz em saber que teremos mais um projeto open source 100% nacional. O que quero discutir hoje é justamente isso, por que vale a pena abrir o código de ferramentas de segurança?

A maioria esmagadora deste tipo de ferramenta tem o código fechado. A maioria também é feita para Windows. Na minha opinião, isso tem que mudar por vários motivos:

- O Windows não reina mais solitário nos desktops.
- Open Source é uma realidade. Lutar contra é correr atrás do rabo.
- Qual o motivo para manter o código fechado? Vou vendê-lo? Se os desenvolvedores pensassem nessas perguntas antes de distribuir seus softwares, metade deles seriam livres.
- O código aberto incentiva o estudo, eleva o nível do aplicativo (vários contribuidores, de vários lugares do mundo) e não tira seus créditos. Seu nome estará no programa para sempre, não se preocupe. Remover isso é ferir os termos da GPL.

Posso citar vários exemplos de softwares que não têm motivo para serem fechados. Além disso, muitos deles estão completamente desprotegidos e um pouco de ER é suficiente para obter trechos importantes do código, mas a idéia aqui é repensar nosso objetivo. O que o faz lançar uma ferramenta?

Se for fama, nada mais respeitável que lançar um SL. Se for trabalho, você ficará numa constante vitrine por ser o desenvolvedor de um projeto. Se objetivar grana vendendo o software, das duas uma: dependendo do preço do seu software, ou você não vai vender bem ou vai travar uma eterna luta contra os crackers, o que pode ter como conseqüência prejuízo nos lucros. Podemos admitir excessões para projetos grandes, com empresas por trás, como o IDA Pro ou o Immunity Debugger. Ah, e se você não registrar seu software proprietário, de nada adianta.

Pense bem no quanto se pode aprender gerando um código sob uma licença livre.

Especificação para hardwares livres

Apesar de já termos algumas boas almas liberando projeto e design de dispotivos de hardware, até o momento ainda não havia uma especificação concreta para embasar as licenças livres para hardware. Mesmo podendo registar um hardware em GPL, por exemplo, as diferenças entre hardware e software geralmente atrapalham neste ponto e exigem que o hardware tenha uma adaptação específica de licença. Faltava uma especificação a ser adotada pela licença livre.

Desde julho de 2010 vem sendo desenvolvida a especificação OSHW (Open Source Hardware), baseada na OSD (Open Source Definition), da OSI. Agora publicada em sua primeira versão, 1.0, constam as regras e obrigações que o desenvolvedor do hardware precisa cumprir para distribuir o hardware sob uma licença livre.

Interessante ver também que várias pessoas e organizações aprovaram a especificação OSHW. Uma delas foi Massimo Banzi, co-fundador do projeto Arduino.

Estamos caminhando para um mundo mais livre. $

mxtools e um adeus

Essa semana recebi a triste notícia do falecimento de uma pessoa com quem trabalhei fazem alguns anos. Em 2008 tive o prazer de conhecer Sergio Romaguera, figura famosa na divisão de PABX da Ericsson Brasil (atual Aastra).

Na época trabalhamos com um soft PBX chamado MX-ONE, que rodava sobre um SUSE. Um pequeno problema com este soft PBX era a impossibilidade de acesso remoto via porta serial (modem), como nas versões tradicionais de PABX. Já que estávamos numa distro Linux, procurei uma maneira de habilitar a porta serial (que existia na caixa), mas não bastava. Faltavam os anos de experiência com transmissão serial que só o Sergio Romaguera tinha. Foi ele quem me ajudou a concluir o trabalho. O resultado foi um pequeno utilitário chamado mxtools, que compartilho aqui. Como não é um projeto que manterei, não vou falar muito sobre, mas há alguma documentação com ele.

O real motivo deste post é despedir do amigo, que escolheu descançar por hora. Sem dúvida alguma, ele está rindo deste software que fizemos juntos. Obrigado pelos ensinamentos, Serginho!

Debian Squeeze Release Party

É com grande alegria que bebemoraremos o lançamento da nova versão do Debian, o 6.0 (Squeeze) no Rio de Janeiro. Todos estão convidados, inclusive quem não usa Debian ainda e iniciantes no mundo GNU/Linux! O objetivo é reunir os usuários do Debian e discutir sobre este maravilhoso SO, discutir como contribuir para melhorar cada vez mais o projeto e, claro, beber umas cervejas em homenagem.

O lançamento do Squeeze está programado para o primeiro fim de semana de fevereiro. Por isso, a nossa comemoração no Rio será no dia 4 de fevereiro, uma sexta.

Haverá Debian Release Parties em todo o mundo! Por isso, se ainda não o fez, organize um na sua cidade! O Brasil tem que fazer bonito nessa!

Data: 4 de fevereiro de 2011.
Hora: 19:00h.
Local: Restaurante Cataroca - Rua da Carioca, 47 - Centro.
O que levar: Dinheiro e notebook, se quiser. :)

O Cataroca conta com wifi, projetor e cervejas de diferentes marcas. A entrada é gratuita. Nos encontramos lá! o/

Quem ajuda, amigo é!

Uso o Gnome há muitos anos e sempre procuro contribuir com os softwares que utilizo, dentro de meus limites de tempo, conhecimento e dinheiro. Divulgo a maioria, se não todos os softwares livres que uso mas hoje quero falar de uma forma de contribuição que ajuda bastante: a doação. Pois é, falou em dinheiro, a coisa muda de figura. Porém, sejamos mais brandos em nosso julgamento: a doação não pode ser confundida com pagamento pelo uso do software. Não! Doar é uma das formas de contribuir para que o projeto continue, cresça e apareça. Aliás, se formos colocar na ponta do lápis, a doação é livre e a maioria não pagaria o software (se ele fosse proprietário). Com essa idéia, doei 30 dólares para o projeto Gnome, via cartão de crédito. Decidi que podia ajudar este projeto do qual tanto tiro proveito mas há várias outras formas de doar e ajudar.

Todos os que colaboram com o Gnome recebem o título de "Gnome friend", ou "amigo do Gnome". E como forma de gratidão, são enviados à casa do contribuidor um kit com presentes. No meu caso, um mouse pad, adesivos e uma carta de agradecimento assinada pelo diretor da fundação Og B. Maciel.

Eu adorei o presente, mas presente mesmo é poder contar com este excelente ambiente gráfico, de forma livre e gratuita. Obrigado, projeto Gnome.

Seja você também um amigo do Gnome, veja como!