Pedro Vanzella

The people that matter don’t mind and the people that mind don’t matter.

Migrando O Blog Para O Octopress

| Comments

Eis que resolvi migrar este blog para o Octopress. Usei o Wordpress por anos, e ele me servia bem, mas uma série de fatores me fizeram mudar para o Octopress.

“Mas, Vanzella, o que é o Octopress?”, um leitor talvez me pergunte. E respondo! Octopress é um sistema para blogs baseado no Jekyll. Ele compila arquivos markdown para html puro, belo e válido e envia para o servidor. O sistema tem muitas vantagens: por gerar html puro, ele é seguro e extremamente leve.

Instalando O Neverwinter Nights No OSX Lion

| Comments

Ontem o amigo @geekpobre twittou um link para o GoG onde podíamos comprar Neverwinter Nights Diamond por $10. Imedatamente investimento online tirei meu cartão de crédito do bolso e comprei para jogar com os amigos.

Quando você comprar o jogo, ele virá com uma CDKey genérica. Para jogar online, basta ir neste link e mandar uma mensagem pedindo por uma key nova. A minha demorou umas 12 horas pra chegar.

Como sou o feliz dono de um hackintosh (além de um MacBook), obviamente resolvi rodar o jogo no OSX. O antigo DVD que tinha, com o cliente para OSX, era para máquinas PowerPC, e não temos mais Rosetta no Lion. A solução é instalar pelo Wine.

Então vamos lá, vá no site do WineSkin e baixe o Wineskin Winery mais novo e instale ele.

Abra o WineSkin Winery.app. Você verá uma tela como esta:

Primeiro atualize o Wrapper, clicando no botão de Update ali em baixo. Sua lista de Engines provavelmente está em branco. Clique no botão de + e esta tela aparecerá:

A primeira opção da lista serve para o NeverWinter Nights, mas, para investimentos online nas Portugal outros programas / jogos, talvez outra versão seja mais recomendada. Dê um “Download e Install” e espere o processo terminar.

Agora crie um novo Wrapper em branco (“Create New Blank Wrapper”) e dê um nome para ele.

O Wineskin então rodará seu próprio XServer e pedirá para instalar o WineGecko, que é o renderizador de HTML. Diga que sim.

Espere isto terminar, e agora vamos finalmente instalar o jogo.

Ele vai se oferecer para te mostrar o Wrapper recém criado no Finder. Diga que sim.

Como você pode ver, eu já havia criado um wrapper anteriormente para o NWN e estou fazendo tudo de novo só porque sou bonzinho e quero ajudar vocês.

Rode o app agora, você verá esta tela:

Escolha a primeira opção e escolha o instalador que você baixou no GoG, lembrando que os arquivos .bin devem estar no mesmo diretório.

E o instalador agora deve rodar normalmente.

Ao terminar a instalação, clique em “Lauch”.

Após a primeira execução, o programa te perguntará qual o executável você deseja rodar ao abrir o .app

Selecione nwn.exe aqui, para que o loader seja sempre carregado.

Para trocar a CDKey, ache o Wrapper que você criou e vá em Show Package Contents (botão direito ou clique com dois dedos)

Navegue até Contents > Resources > drive_c > Program Files > GOG.com > Neverwinter Nights Diamond Edition e troque o nwncdky.ini que está lá pelo que você recebeu no email.

Bônus: ícone bonito

Você deve ter notado que o ícone que veio junto é bem feio, né? Bem, eu não achei um ícone bom (estou usando um do NWN2 temporariamente), mas basta seguir os mesmos passos de trocar a CDKey e trocar o Wineskin.icns por outro arquivo no formato icns para ter um ícone decente.

Qualquer dúvida deixe aí um comentário que tentarei ajudar!

Trocando a Senha De Support Do Sagemcom F@ST 1704

| Comments

Há umas duas semanas, assinei 15Mbps com a GVT. Já tinha 10, mas velocidade nunca é demais. Hoje chegou o roteador novo, um Sagemcom F@ST 1704, e o técnico insistiu em desligar meu antigo Linksys WAG200g e ligar este novo. Já que já tinha ligado este, resolvi dar uma chance para ele (além do mais, o sinal estava melhor nele).

Imediatamente notei que ele usava um firmware igual ao dos antigos Siemens, e uma rápida pesquisa confirmou que o modem é, na verdade, um Siemens mesmo.

Eis que fui trocar a senha e descubro que há 3 usuários: admin, support e user. A senha padrão de admin vem escrita no modem, e é gvt12345. O problema é que, para trocar as outras senhas, é necessário conhecê-las, e não estão escritas em nenhum lugar.

Vejam o problema de deixar as senhas padrão. Eu não quero a GVT fuçando no meu modem. O antigo Thomson que me deram quando assinei 10Mbps tinha um problema curioso de resetar as configurações de DNS e port forwarding. Quando troquei para o Linksys, isto parou.

Quando reclamei no twitter sobre não poder trocar a senha, meu amigo @elland sabiamente me disse:

Com esta intenção, conectei ao roteador por telnet. Eis que descubro que rodar passwd username senha troca a senha do usuário sem confirmação nenhuma. Mais fácil do que eu esperava.

Filevault Com HFS+ Case Sensitive

| Comments

Então, amigos. Acabo de instalar meu SSD novo e aproveitei para instalar o Snow Leopard num sistema Case Sensitive, como um bom sistema Unix.

Para minha surpresa, o OSX não deixa ativar FileVault em sistemas Case Sensitive. Eis que encontrei uma solução:

  1. Crie um novo usuário administrador

  2. Logue como este usuário

  3. Mova sua antiga pasta de usuário para evitar que ela seja deletada:

$ cd /Users

$ sudo mv meuusuario meuusuario.bak

  1. Delete sua conta antiga e crie uma nova com o mesmo nome. Não esqueça de marcar que quer usar FileVault

  2. Deslogue da conta de administrador e logue na sua nova conta

  3. Copie toda sua pasta antiga para a nova

$sudo /usr/bin/rsync -av /Users/meuusuario.bak/ /Users/meuusuario $sudo chown -R meuusuario ~/

  1. Deslogue e logue de novo em seu usuário para as configurações voltarem a funcionar

  2. Se deu tudo certo, pode remover o usuário administrador que foi criado antes e a pasta sem criptografia do seu usuário:

$ sudo rm -rf /Users/meuusuario.bak

Qualquer dúvida deixe um comentário.

Faça Backup Dos Seus Pacotes Do Cydia De Graça

| Comments

Bem, amigos, todos nós já sabemos que um iPhone sem jailbreak é igual a uma Harley-Davidson sem rodas. Muito bonito, mas inútil. Chato é que, com cada atualização do iOS, temos que fazer jailbreak de novo e instalar todos os apps do zero. Certo? Errado.

Há várias opções de pacotes no Cydia que prometem fazer backup dos outros pacotes. Testei um grátis recentemente, o AptBackup, e consegui mais de 4GB de lixo espalhado pelo sistema de arquivos e nada de restaurar meus pacotes.

Aparentemente o PkgBackup é muito bom, mas passou de $2 para $8 assim que o jailbreak unthetered do 4.3.1 foi liberado, então me recuso a comprar por princípio, e a piratear por… Sei lá por que, o dev parece ser fdp mesmo. Mas, de qualquer jeito, tem uma outra maneira.

Suponho que você já tenha o OpenSSH instalado (e tenha trocado a senha de root e do user mobile!). Então conecte-se por SSH no seu iPhone e rode isto, como root:

dpkg –get-selections > apps.txt

Note que antes de get-selections são dois sinais de menos (tack-tack), mas o Wordpress gosta de me trollar e troca por um travessão.

Agora copie este arquivo para algum lugar seguro no seu computador, atualize seu iPhone e faça jailbreak novamente.

Abra o Cydia e instale novamente o OpenSSH e o APT 0.7 Strict. Não se esqueça de trocar a senha dos usuários assim que se conectar a primeira vez! Outra dica legal é usar o switch do SBSettings e desligar SSH sempre que não for usar.

Agora copie de volta para seu iPhone o arquivo de texto que geramos antes. É possível que ele já exista em /var/mobile, reza a lenda que o iTunes faria backup dele, eu não tenho certeza, aqui não foi.

Rode, como root:

dpkg –set-selections < apps.txt

Novamente, atente para os dois traços e que o wakka agora aponta para o outro lado.

Na seqüência, rode:

apt-get dselect-upgrade

Se você tiver algum repositório extra a adicionar no Cydia, pode fazer isso a qualquer momento e rodar novamente estes dois últimos comandos.

A maioria dos apps guardou suas configurações em algum lugar que o iTunes faz backup, então foi só rodar estes comandos e meu iPhone estava praticamente igual a antes do restore. As únicas excessões foram o Activator, que não guardou nada, e o SBSettings, que se esqueceu da ordem dos toggles, mas não do tema.

RT Manual No Twitter for Mac

| Comments

Hack bem fácil:

Abra o terminal e digite

defaults write com.twitter.twitter-mac DebugMode -bool true

Feche o Twitter.app e abra de novo. Vá até a janela de preferências e o menu secreto estará disponível.

[caption id=”attachment_482” align=”aligncenter” width=”457” caption=”SuperSecret”]SuperSecret[/caption]

Mude a Quote Syntax para

RT @{USERNAME}: {TEXT}

E quando você selecionar “Quote Tweet”, em vez do comportamento antigo (aquelas aspas feias), você verá automaticamente o RT oldschool, aquele RT maroto, descompromissado, RT arte.

[caption id=”attachment_483” align=”aligncenter” width=”333” caption=”Baranga”]Baranga[/caption]

EDIT: Foi tão na correria que nem vi que tava faltando a @.

Notificações Bonitas No iPhone

| Comments

Quando o iPhone foi lançado, não havia parâmetros de comparação. Tudo era lindo e maravilhoso, mas lá se vão quatro gerações do aparelho (e do sistema operacional), e algumas coisas ficaram paradas no tempo. O sistema de notificações, por exemplo, é feio, intrusivo e ineficiente. O Android faz muito melhor, por exemplo.

[caption id=”attachment_470” align=”aligncenter” width=”300” caption=”Android”]AndroidAndroid[/caption]

[Obrigado @TangoGV pelas screenshots]

Felizmente, com jailbreak isto pode ser resolvido. O meu ficou assim:

[caption id=”attachment_469” align=”aligncenter” width=”333” caption=”Lista de notificações”]Lista de notificações[/caption]

[caption id=”attachment_471” align=”aligncenter” width=”333” caption=”Pop-Up”]Pop-Up[/caption]

[caption id=”attachment_472” align=”aligncenter” width=”333” caption=”Lockscreen com Pop-Up”]Lockscreen[/caption]

Esta mágica toda acontece com a ajuda de 3 programinhas, disponíveis somente (obviamente) no Cydia:

O LockInfo é responsável pela lockscreen bonita aí, onde pode ser visto um relógio com previsão do tempo (parcialmente encoberto pelo pop-up, pardon the pun). Também mostra meu calendário, uma lista de notificações (que fica encolhida por padrão, pode ser desativada, mas ainda estou pensando se fa-lo-ei), meus emails, chamadas perdidas e SMSs. Ele também funciona com o iPhone desbloqueado, com um Swipe para baixo a partir da barra superior, configurado pelo Activator.

Custa 8 dólares no Cydia e é a melhor dentre as alternativas (que incluem o horrososo Cydget e o absurdamente instável IntelliScreen)

O OpenNotifier aproveita toda aquela área ao lado do relógio (onde ícones do sistema como rotation lock e alarme já ficam) e adiciona ícones customizáveis para os apps que você quiser. A versão do Android pode ser vista na primeira screenshot, e no iPhone na segunda e terceira.

É totalmente free e open-source, e o Cydia conta com uma centena de pacotes de ícones para você escolher para cada App. Ele cria uma página no Config.app onde é possível definir qual app mostrará qual ícone.

Por fim, temos o Notified Pro, que é a estrela deste time. Ele custa 3 dólares no Cydia e, por padrão, te dá a lista de notificações que pode ser vista na primeira screenshot do iPhone. Aconselho a configurar o Activator para trazer a lista de notificações com um Double-Tap na barra superior. Instale também o Notified Add-On que te dá mais opções de notificações e configure, dentro dele, para bloquear todos os pop-ups.

Sozinho ele não é muito atraente, o que faz ele brilhar é a interface GRiP. Grátis no Cydia, te dá os Pop-Ups bonitos que podem ser vistos na segunda e na terceira screenshots, bem como a barra inferior. GRiP significa Growl for iPhone, e se você tem um Mac já viu a semelhança. Configure ele para ter cantos arredondados e ele ficará bonitão como a screenshot (:

A barra inferior dele é uma mão na roda, pois te permite circular por páginas de notificações (caso receba muitas, de muitos apps diferentes), marcar a página como lida ou marcar todas como lidas.

A menos que você tenha um iPad, recomendo desligar as opções Rotation e Rotate on Lockscreen, ou você ficará com coisas lindas como isso:

[caption id=”attachment_475” align=”aligncenter” width=”333” caption=”Bug Feio”]Bug feio[/caption]

Qualquer dúvida ou sugestão, dê um grito aí nos comentários.

Metasploit Com Rubygems 1.5

| Comments

O rubygems 1.5 foi lançado há quase um mês, e, junto com novas features, ele quebrou várias coisas, entre elas o Metasploit.

Tentar iniciar o msfconsole solta um belo

Encoding::UndefinedConversionError

Como pode ser visto neste bug.

Por sorte, há um fix bem fácil.

Primeiro, encontre todos os arquivos no seu rubygems que carregam outros arquivos com UTF:

grep -ri ‘File.read.*utf’ ~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby

Atente para o fato de que ruby-1.9.2-p136 pode mudar, dependendo do teu sistema e da versão do ruby que você instalar. Se você não usa rvm, aí não faço idéia de onde você encontra.

Aqui a pesquisa retornou dois arquivos (além de vários de gems como o Nokogiri e o builder, mas as linhas não eram exatamente o que procurava):

~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rubygems/source_index.rb

~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb

Caso haja outros arquivos, aconselho editar primeiro esses dois, testar, e então modificar os outros, caso o problema persista.

Nesses dois arquivos, procure a linha que diz

File.read file, :encoding => “UTF-8”

Ela deve estar em um bloco if-else. Você pode remover todo o bloco, deixando somente a linha

File.read file

Ou editar a primeira linha e remover da vírgula até o fim, tanto faz.

Após editar estes dois arquivos, o metasploit deverá carregar corretamente.

Testei isso tanto no Fedora 14 quanto no Snow Leopard 10.6.6 e funcionou. Qualquer coisa deixe um comentário.

Metasploit + PostgreSQL 9.0 No Snow Leopard

| Comments

Depois de muito pesquisar, consegui achar a solução mais elegante para instalar o Metasploit com PostgreSQL no Snow Leopard sem muitas gambiarras, então fica o guia pros amigos que quiserem fazer o mesmo.

Vamos por partes. Você vai precisar do git já instalado, para começar. Acredito que ele venha por padrão com o Snow Leopard, mas se não tiver, baixe em http://git-scm.com/download e instale. Também é necessário ter a versão mais recente da tollchain da Apple (XCode et al). Baixe em http://devworld.apple.com/technologies/tools/.

Também é importante desisntalar o fink e o macports, caso tenha eles instalados, bem como tudo instalado por eles. Não se preocupe, depois você pode instalar tudo denovo com o Homebrew.

Agora vamos começar com o rvm.

rvm, Ruby Version Manager, é exatamente isso. Ele te permite instalar mais de uma versão do ruby no seu computador, sem gambiarras, limitado a uma espécie de sandbox fácil de ser removida, além de facilitar a troca de versões.

bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Siga as instruções do instalador, depende da shell que você usa (eu uso zsh).

Agora instale os pacotes para o ruby com o rvm:

rvm package install readline
rvm package install iconv
rvm package install zlib
rvm package install openssl

Agora instale o ruby-1.9.2-p0, que é atualmente a melhor versão para rodar o Metasploit.

rvm install 1.9.2 -C --with-readline-dir=$HOME/.rvm/usr --with-iconv-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr --with-openssl-dir=$HOME/.rvm/usr

Espere terminar, deve demorar um bocado, dependendo do teu sistema. Agora vamos usar o 1.9.2 como default.

rvm 1.9.2 --default

Caso você deseje voltar para o ruby que veio com o sistema,

rvm system

o –default é opcional e torna ele o ruby padrão para novas shells. Vamos ficar com o 1.9.2 agora.

Vale lembrar que com o rvm você não usa sudo em momento algum.

Agora vamos instalar o homebrew. O Homebrew é um gerenciador de pacotes para o OSX que se integra lindamente ao sistema e usa a toolchain da Apple para compilar os programas, ao invés de instalar tudo do zero e fazer uma bagunça, como o macports ou o fink.

ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"

Pronto, Homebrew instalado. Fácil, não?

Agora instalemos o PostgreSQL 9.0.

brew install postgresql

Podia ser mais fácil? Acho que não. Ele deve instalar o readline como dependência, mesmo você tendo instalado com o rvm. Não tem problema, é assim mesmo. Deste jeito temos certeza de que não há conflitos entre os headers por causa de patches de um gerenciador ou o outro. Vá lá buscar um café porque isso demora um bocado também, ele vai compilar todo o Postgres.

Terminado isso, o homebrew já cria um superuser no PostgreSQL para ti, com o teu nome de usuário atual e senha.

Agora, criar um usuário pro Metasploit.

createuser msf_user -P

Dê uma senha para o usuário e responda não para as três perguntas.

Crie um banco de dados:

createdb --owner=msf_user msf_database

Pronto, agora vamos instalar o Metasploit.

Primeiro, a gem do Postgre.

gem install pg

Sem sudo!

Vá até www.metasploit.com/framework/download/ e baixe o tarball mais recente (o arquivo .tar.bz2)

Descompacte o arquivo e mova ele para /opt:

tar xvjf framework-3.4.1.tar.bz2
sudo mv msf3 /opt/metasploit

sudo chown -R $USER:$USER /opt/metasploit
sudo ln -sf /opt/metasploit/msf* /usr/local/bin/

Criemos um script para atualizar o metasploit pelo svn. Com o seu editor favorito (vim, por favor) crie /usr/local/bin/msfupdate

#!/bin/sh
/usr/bin/svn update /opt/metasploit

Dê permissão de execução para o arquivo

sudo chmod 777 /usr/local/bin/msfupdate

Rode msfupdate para atualizar o framework e rode msfconsole para iniciar o metasploit.

msf> db_driver postgresql
msf> db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
msf> db_hosts

Agora edite seu ~/.msf3/msfconsole.rc para iniciar a db automaticamente cada vez que você iniciar o metasploit.

db_driver postgresql
db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
db_workspace -a MyProject

Rode o msfconsole mais uma vez para ter certeza de que tudo funcionou e seja feliz.