Languages

Saturday, November 23, 2013

Porque, e como aconteceu tanta cagada em Novembro

 Então, agora que todos você já tomaram seu tempo para trocar aquela velha e manjada senha que usava em todos os sites (e só espero que não seja 123456), vamos parar um pouco para conversar dos motivos por trás disso.

Antes de mais nada, eu não cheguei a noticiar aqui todos os vazamentos de senha que ocorreram este mês, apenas o maior que foi o da Adobe. Possivelmente vocês viram sites de notícias por aí tratando sobre ataques hackers que ocorreram nesse mês em especial. Vamos fazer uma breve passada por eles:

  • 130 milhões de senhas criptografadas de forma fraca foram roubadas da Adobe.
  • O código fonte do Adobe Photoshop também vazou na internet
  • 42 milhões de senhas sem criptografia NENHUMA foram roubadas da Cupid Media, a grande empresa por trás de sites de busca de namoros online.
  • 840 mil senhas do MacRumors, um fórum largamente frequentado por amantes de plataformas Apple.
  • Invasão e roubo de dados sensíveis do PR Newswire, um site americano importante de notícias e bolsa de valores.
  • Invasão do departamento de energia americano, exército e departamento de saúdo com roubo de informações sensíveis de funcionários com conta bancária. Vale ressaltar que o departamento de energia tem controle do arsenal nuclear americano.
  • Invasão e roubo de quase todos os dados da National White Collar Crime Center (NW3C), agência responsável por gerenciar todas as informações de ciber crime, além de registrar reclamações de violações de crimes na internet.
  • Invasão e derrubada de sites do governo de Singapura e de contas do primeiro ministro, em protesto aos regulamentos de internet.

OK, ainda devem ter mais coisas a adicionar a essa lista, primeiro eu vou conversar sobre o motivo, e depois sobre como eles fizeram isso, ok?

Black-and-white drawingNo dia 5 de novembro de 1605 foi feita a prisão do revolucionário Guy Fawkes, um dos responsáveis por uma conspiração que visava matar o rei James I (Seria Rei Tiago primeiro em português?), Guy foi pego com diversos barris de pólvora que seriam utilizados para mandar tudo pelo ar, e foi exatamente o que ele disse quando interrogado sobre o motivo de tanta pólvora.

Guy foi popularizado numa série de quadrinhos chamado V de vingança que depois gerou um filme com o mesmo nome, o protagonista usava uma máscara de Guy. Esta máscara depois se tornou símbolo de anonimidade durante o filme, e passou a ser utilizada pelo grupo Anonymous, perpetuando-se tal símbolo.

O Anonymous se trata de um grupo descentralizado que funciona como um nome comum entre cyber ativistas, ou hacktivistas.

Pudemos também ver muitas dessas máscaras durante os protestos no Brasil, não necessariamente ligadas ao grupo, mas ligadas ao filme e ao ideal de luta política que ele propõe.

Como celebração ao dia 5 de Novembro, se tornou comum entre os ativistas do grupo Anonymous provocar uma grande onda de protestos concentrada em forma de catástrofes pela internet, em geral eles escolhem o motivo, que neste ano foram as novas regulamentações de uso da internet que fere algumas liberdades antes concedidas.

Agora vamos falar sobre como isso tudo foi feito, e de novo vamos falar sobre a culpa da Adobe nisso tudo, só que agora se tratando de outro software deles, o ColdFusion.

O Adobe ColdFusion é uma framework para desenvolvimento Web, em termos simples é uma ferramenta completa para fazer sites, com capacidade de se conectar a bancos de dados, possui sua própria IDE e linguagem de scripting.

Bom, o ColdFusion é amplamente usado em sites por aí, entre eles sites da Adobe, os da Cupid Media, e do governo americano (olha que coisa linda).

No final do ano passado e começo deste ano, hackers descobriram diversas falhas muito graves no ColdFusion, dentre elas inclusive uma falha que permitia qualquer um ter acesso de administrador em qualquer site feito pela plataforma: http://www.exploit-db.com/exploits/27755/ , http://www.exploit-db.com/exploits/24946/

Com credenciais de administrador, eles foram capazes de fazer tudo o que quiseram nesses servidores, inclusive instalar um bot que garimpava dados e enviava para um servidor oculto.

E agora essas falhas de segurança já se tornaram conhecidas por todos, mas até que isso fosse descoberto, deu tempo de sobra para que pudessem pegar informações de sabe-se lá quantos sites além dos que se tornaram publicamente conhecidos.

Mas ainda tem uma reviravolta nessa história toda: existem peritos independentes que ficam cavando os servidores da deep web atrás de informações e novidades do ciber crime. E numa dessas escavações que foram encontradas as senhas da Adobe, da Cupid Media e da NW3C, todas no mesmo servidor, provavelmente onde os hackers guardavam suas pilhagens.

Mas se esses caras conseguiram achar, outros também conseguiam, e isso se provou verdade no final de Outubro e início de Novembro, quando soltaram no fórum do Anonymous a lista de logins e senhas da Adobe, bem como o código fonte do Photoshop.

As outras bases de dados ainda não apareceram por aí, mas com certeza já estão nas mãos de pessoas que poderão fazer de sua vida um inferno com elas. 

No fundo eu só tenho a agradecer as pessoas que soltaram a lista da Adobe na internet, porquê assim todo mundo ficou atento para o que os hackers já tem em mãos, é melhor você trocar a senha agora sabendo dos riscos do que ser pego de surpresa sem saber de nada..

E quanto a esses vazamentos de informações, é como eu sempre digo: uma vez na internet é como mijo na piscina, não tem como tirar a menos que esvaziem ela toda...

Tuesday, November 19, 2013

Adobe: um dos maiores vazamentos de senhas da história

Olá crianças! É com muito pesar que venho aqui hoje dizer para vocês mudarem suas senhas! agora!

Como muitos conhecem, uma ferramenta que quase todo mundo usa como o photoshop pedem agora que seus clientes façam uma inscrição no site da adobe quando você instala ele, certo?

Pois é, graças a isso a Adobe conseguiu ter uma base de dados com mais de 130 milhões de usuários, para você ter uma idéia de quanta gente isso representa, a população do brasil é de módicos 200 milhões...

Por volta de Dezembro do ano passado um hacker ético (sim isso existe!) conhecido como ViruS_HimA divulgou uma pequena lista de senhas do governo americano e de funcionários da adobe, como forma de incentivar eles a fecharem uma falha de segurança que ele encontrou no site.

Ele teve que recorrer a isso, já que quando ele avisou a empresa, ninguém se deu ao trabalho sequer de responder ao email dele ou corrigir o erro.

O problema é que as pessoas atentas, ao perceberem que de fato havia uma falha de segurança, que no caso era o bom e velho SQL injection, foram atrás de invadir o servidor antes que a adobe arrumasse, e graças a isso, um banco de dados gigantesco de emails, senhas, perguntas e respostas secretas pode ser encontrado nos profundos mares sombrios da internet, 130 milhões delas..

Como a maioria das pessoas tendem a usar a mesma senha em diversos sites, você sabe o que isso significa? uma catástrofe. Para você ter idéia, todos os proprietários de sites (inclusive eu!) usam o bom e velho photoshop. Se alguém pegar a senha de um proprietário de site, pode pegar a senha de todos os usuários deles, e por aí vai, criando uma rede gigante de caça a senhas, e você sabe bem onde isso vai parar.

Então mesmo que você não tenha conta na adobe, sua senha pode estar em risco! eu recomendo que mude suas senhas pelo menos dos serviços principais que usa, como email, facebook, etc...

Se você não sabe se tem conta na adobe e quer ver se foi comprometido, você pode pesquisar se seu email consta no vazamento pelo seguinte site: http://adobe.cynic.al/

Agora, vamos a lista das top 10 senhas mais usadas no site da adobe, se você ver a sua senha nessa lista, você é um idiota:

Colocação | Quantas pessoas usam | Senha
--------------------------------------------------------------
1.                1911938           123456
2.                446162            123456789
3.                345834            password
4.                211659            adobe123
5.                201580            12345678
6.                130832            qwerty
7.                124253            1234567
8.                113884            111111
9.                83411             photoshop
10.               82694             123123

fonte: http://stricture-group.com/files/adobe-top100.txt

Friday, September 13, 2013

Como parar com SPAM da sua operadora de celular


Cara! esses spams que tenho recebido da minha operadora (vivo) estão se tornando completamente sem noção!

Tem mensagem chegando de madrugada me acordando, mensagens com promoções de jogos, mensagens de ringtone, AFF!


Foi aí que descobri que uma resolução da Anatel de 2012 determina que as operadoras parem de enviar SPAM para os clientes que assim solicitarem.


Existem duas formas de solicitar isso, envie uma SMS com a palavra SAIR para o numero de sua operadora, no caso Claro (888), Oi (55555), TIM (4112) e Vivo (457).


Ou então ligue no serviço de atendimento e diga que você não quer mais receber SPAM, eles são obrigados a parar, caso não parem você pode ligar na Anatel (1331) com o protocolo do seu pedido e registrar uma denúncia.



E para fazer jus ao clima nerd deste blog, aqui o vídeo do episódio de Monty Python que deu origem a palavra SPAM (no contexto dessa coisa chata):




Debugging on PhpStorm

PhpStorm is a great IDE for php development, it is powerful, light and fully featured.
Actually I am a fan of all JetBrains IDEs, these guys know exactly what developers want.
It is quite simple to configure it so you can debug your php code, you can add breakpoints, stop code execution, analyze variables. Debugging gives you a whole new level of help while developing. So here's how to do it:

1- Open your php.ini located in your php installation folder.
2- Add the following code, changing folders to your actual php location, this example is for xampp on windows:

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "C:\xampp\tmp"

OBS: under linux or mac, xdebug will be a .so file under /etc/php/extensions folder

3- Restart apache on xampp, this enables Xdebug

If you have trouble enabling Xdebug like this or don't have xdebug installed yet you can use the phpinfo() output to auto-build a config step-by-step for you here: http://xdebug.org/wizard.php

Now for Phpstorm configs:

4 - File > Settings
5- Go to Project Settings > PHP
6 - click ... On the side of the interpreter then + sign
7- Name = Php
8- PHP Home = your php home, ex: C:\xampp\php
9- Debugger = Xdebug
10- Click OK to close dialogs

11- Now go to Run > Debug... > Edit Configurations
12- + sign > PHP Web Application > click ... On the side of server
13- Name = Xdebug, host = your url ex: localhost
14- OK to close dialogs
15- At the toolbar, next to the bug button there is a telephone with a bug next to it and a block sign, click it to enable debugging
16- place a breakpoint in your code by clicking the line number on the left
17- now click the bug icon to start your browser and kill those bugs =)





Monday, September 9, 2013

Fechando todos os processos automaticamente antes de começar um jogo

Você já esteve tão puto com o lag nos seus jogos que saiu balançando um cactus por aí?



Bom, eu já!

Sempre quando estou jogando no computador algum processo estúpido agarra minha CPU e joga ela na merda! O Java por exemplo possui um detector que identifica o momento mais crucial do seu jogo para só então começar a atualizar automaticamente.

A solução para isso que eu sempre adotei foi de abrir o gerenciador de tarefas e matar tudo que aparecer por lá, Matar! Matar! Matar!

E somente então, só para garantir, eu clicava com o botão direito sobre o processo do meu jogo e colocava a prioridade dele como máxima.

Depois de algum tempo, decidi construir um script bat para matar todos os processos desnecessários, deixando apenas o essencial, e coloquei ele no meu desktop, assim posso rodar sempre antes de iniciar um jogo.

Também fiz algo especial nele, se você arrastar um arquivo exe para cima dele e soltar, ele ira matar todos os processos como de costume, mas depois irá iniciar aquele exe com prioridade alta!

E hoje estou compartilhando este pequeno porém útil script com você! Divirta-se...


Devidos créditos vão para Bharat Balegere do AgniPulse.com pela primeira versão deste bat

How to solve iPhone not syncing via Wi-Fi

Some time ago I faced this problem, I wanted to sync my iPhone via Wi-Fi with a windows computer over iTunes, I know iTunes and iPhone have this feature, but even doing everything necessary, it never worked!

As soon as I took my phone out of the cable it could not see my computer on the network anymore and neither my computer did.


What I noticed is that when I closed iTunes, stopped the "Apple Mobile Device" service and started it again my iPhone got instantly detected!

It's too bad that Apple can't fix this, iTunes already had so many updates and yet this problem continues!

The workaround was to build a script that, after my computer started up, it restarted this service and just then launched iTunes.

Here is the script, you can set it to run on boot by placing it in the startup folder under start menu.

If you do not want to run iTunes on boot you can remove the iTunes.exe line before the last one:

https://sites.google.com/site/thinkhackerblog/itunes.zip?attredirects=0&d=1


Sunday, September 8, 2013

Como baixar legendas automaticamente ao terminar o torrent

EDIT: Eu criei um tutorial passo a passo de como instalar o Legender e programar o uTorrent para baixar automatico as legendas para leigos, acesse: http://thinkhacker.blogspot.com.br/2014/05/como-baixar-legendas-automaticamente-ao.html

---------------

Um belo dia eu fiquei de saco cheio de ter que procurar a legenda pra cada um dos filmes que eu baixava, isso me tomava tanto tempo que eu já estava desistindo de ver filmes no pc e ficava apenas no netflix.

Esse plano já não funcionou mais quando eu comprei minha TV 3D, já que o netflix não oferece ainda esta categoria. Precisei achar uma forma mais fácil de legendar os filmes..

Foi aí que encontrei o legendasbrasil - http://www.legendasbrasil.com.br/um site que tem um aplicativo muito útil, para baixar as legendas direto do seu shell (clicando com botão direito no filme). 

A grande vantagem dele, além da praticidade, é que ele usa uma hash do filme para procurar, então a precisão dos resultados é muito superior pois você estará baixando uma legenda testada e que funciona com aquele exato vídeo.

Não deu muito tempo até que eu criasse preguiça de ir lá no meu pc para clicar no filme e mandar baixar legenda. 

E foi quando eu tive a idéia de usar linha de comando para baixar, assim eu poderia configurar o meu aplicativo de torrent favorito (o utorrent) para rodar esse comando automaticamente quando terminasse um download.

Isso não foi tão fácil quanto parecia, aparentemente o legendasbrasil não possui uma forma de rodar por linha de comando, então o máximo que eu conseguia fazer era abrir o tal wizard dele e ter que clicar em próximo próximo próximo toda vez!

Foi aí que eu comecei a analizar o tráfego com o wireshark, na intenção de entender como ele fazia para baixar as legendas. Após ver direito como funcionava o protocolo do legendasbrasil eu fiz um igual, só que de linha de comando, para baixar a melhor legenda instantaneamente, sem passar por todo aquele processo desnecessário.

E eis que vos apresento o legender, o nome é uma reles brincadeira do nome legenda em português, transformado para verbo, em inglês.

Sem demais baboseiras, ele funciona assim:

- Substitui o programa de wizard original, o perfectmatch.exe, por um que baixa a legenda direto sem fazer perguntas.

- Além disso tem um aplicativo de auxilio, o legender.exe, que facilita rodar em linha de comando e deve ser colocado no mesmo diretório do perfectmatch.

Para usar ele: legender.exe [arquivo_de_filme1] [arquivo_de_filme2] ...

- Criei também um legenddir.bat, que ao invés de um arquivo de filme, recebe um diretório. Ele roda o legender em todos os arquivos de um diretório, é esse que você vai usar no utorrent por exemplo.
Essa versão do legender so funciona com o legendasbrasil versão 2.27. Eu inclui o instalador do legendasbrasil no zip.

ATENÇÃO: o legendasbrasil é um adware, traduzindo eles ganham dinheiro instalando spywares na sua maquina. 

O instalador dele vem cheio de truques para tentar te ludibriar a aceitar um spyware, como por exemplo uma segunda e terceira EULA que vc precisa clicar em declinar para seguir sem instalar spyware.

Sabendo disso, instale ele com bastante calma, e leia bem o que você esta clicando a cada passo, desmarque todas as opções possíveis e você conseguira instalar ele sem colocar spywares no seu pc.

Depois de instalado o legendasbrasil jogue o conteúdo do zip na pasta de instalação, sobrescrevendo quando necessário.

Configure o seu aplicativo de torrent favorito para usar o legender.exe se quiser executar ele num arquivo especifico, ou o legenddir.bat para executar em um diretório. Eu prefiro o legenddir porque quando baixamos series que vem com muitos episódios eu quero legendar automaticamente todos eles.

O zip possui também um arquivo com instruções passo a passo.

Legender v0.1b, arquivos:
https://sites.google.com/site/thinkhackerblog/legender%200.1b.zip?attredirects=0&d=1

Legender v0.1b, código fonte (python):
https://sites.google.com/site/thinkhackerblog/legender%200.1b%20src.zip?attredirects=0&d=1


Wednesday, September 4, 2013

Auto-Killing all unnecessary processes before starting a game

Have you ever been so pissed of with game lagging that you start swinging a cactus?



Well, I have!

Any time when playing a computer game some stupid process grabs my CPU and throws it to shit! Java for instance has something that detects wheter you are in a very crucial moment of the game just to start auto-updating!

The solution that I always adopted was running Task Manager and killing anything that appears there: kill kill kill!!!

And then, just to guarantee, I right clicked my game process and set it to maximum priority.

After some time I built a bat script for killing all unnecessary processes for me and placed it on my desktop, so I can run it whenever I am starting a game.

I also made something special on it, if I drag an exe file onto it it will kill all processes as usual, but then it starts that exe with high priority for me!

And today I am sharing this usefull little script with you! enjoy...


credits go to Bharat Balegere from AgniPulse.com for the first version of this bat

How to get your LG TV to work with any 3D vision capable PC

So, some time ago I decided to go and buy myself a nice 3D TV. I have always been fan of 3D since I was a little child (or not so little anyway).

My idea was to use it so I could play 3D games on the big screen and also watch 3D movies, everybody knows the bigger the screen the better the effect, right??

Well, this was the great start of headaches for me, which I ended up solving one by one and will render some blog posts here after all, so lets start..

Turned out when my TV arrived that my notebook was not 3DTV play compatible, my video card was one of the last ones that 3DTV play was not supported, model 9800M GTS.

But my computer worked well when playing 3D games when I borrowed my brother's 3D vision glasses and a monitor, so there should be some way to do it without using 3DTV play.

The thing is, LG is investing in passive 3D technology, and nvidia uses 3D vision active shutter glasses, so my chances were quite weak because there is a big leap in technology there, think hacker dude, think hacker..

What I found out after some research is that Acer makes passive monitors too, and that 3D vision built some support for these monitors, it works by switching on the passive mode as soon as it detects an Acer monitor.

I realized I had to fake my TV as being an Acer monitor, this was feasible through a driver manipulation  called EDID override, basically, we dump the TV information by using a software (Monitor Asset Manager) then change the EDID for that of an Acer or Zalman's monitor.

You can download EDID override drivers for Acer and Zalman monitors from here: https://sites.google.com/site/thinkhackerblog/passive%20edid%20override.zip?attredirects=0&d=1

You can also try the one I made from my LW5700 TV Dump (Acer Override) here: https://sites.google.com/site/thinkhackerblog/lw5700%20mod.zip?attredirects=0&d=1

I recommend using Acer override since it supports audio via HDMI, something that Zalman's don't.

After you downloaded the drivers you can extract them to a folder, and go to Control Pane; > System > Device Manager. Find your TV there under Monitors, choose driver tab > update driver... and point it to the driver you just extracted. After sucessfully changing your monitor driver your tv will appear as Acer LG TV, yeah, funny..



After I got my driver into working it was time to install the newest drivers for my video card, and also 3D vision. Thing is, why the hell will I need the 3D vision pyramid if I am not going to need 3D vision glasses??

This did not seem necessary at all but nvidia won't let you install 3D vision pack from the drivers if you do not have a pyramid, apparently this would mean less ca$h for them since people will only spend their money with the expensive video cards they make, and not money in useless glasses that do not work with their monitors... Shame on you nvidia!

So here's the trick:

1 - Dowload and install the latest drivers for you video card from nvidia site

2 - Instead of installing the drivers extract them, you can extract exes with winrar

3 - now you can install the drivers for your video card, it won't install 3D vision drivers

4 - download the 3D vision dongle emulator from here: http://kostasoft.com/index.php?mod=pages&page=clone


5 - Extract the archive in a folder, install the device simulation framework on DSFx86Runtime.msi

6 - run init.bat or init_64.bat if your windows is 64-bit

7 - now run enablestereo.bat in order to connect the emulator to the fake USB port, you should have this screen:


8 - OK, you are going to need a driver that works with this emulator, recent drivers do not work, I found out the last one from nvidia that works is the 6.15.12.8562.


9 - now that you got the fake 3D vision pyramid up and running, remember where you extracted the drivers in step 2? Go there you will find a 3D Vision folder, this contains the installation files for the 3D vision package. Install it separately now and you should be all set

10 - In nvidia control panel, enable stereo 3D in games and test it at maximum resolution, 1920x1080


Note: please note you need to use your games at this resolution for them to work, this happens because the 3D vision, when in passive mode, it just arranges the lines on your TV for first line left eye, second right eye, third left, and so on. 
It might also be necessary to do a little surgery on your glasses by switching the eyes lenses, or you can use them upside down. This happens because Acer Monitors display the eyes per monitor line in a different way than LG.

I also found out that in recent drivers you don't even need to turn on the enablestereo.bat in the future when playing games, you just need it long enough to get your 3D Vision setup running.

Now on to configure your LG TV for best display, through trial and error I found out this config works

1 - Set whatever input you are using for your pc (say hdmi 1) to PC label, yeah, the labels on LG TV do more than just labeling, odd huh?!?

2 - Go to your TV setup menu > picture mode, set it  to expert 1 and now set it like this:

Backlight: 80
Contrast: 100
Brightness: 56
H Sharpness: 0
V Sharpness: 45
Color: 60

These are the settings I found worked best for me, you may try entering a 3D game and adapting it to reduce ghosting (yeah LG 3D TVs suffer a lot from that!)

The latest nvidia driver I had done this was 320.18 driver pack before making this post

Please let me know if this post helps you in some way here in the comments section


Tuesday, September 3, 2013

Como abrir um portal para o inferno com seu iPhone

Então meus amigos, estou aqui para conversar sobre uma coisa muito séria com vocês: o capeta.

O que acontece é que de acordo com a bíblia o iPhone pode ser comprovado o precursor da besta como visto em Apocalipse 13

"E faz que a todos, pequenos e grandes, ricos e pobres, livres e servos, lhes seja posto um sinal na sua mão direita, ou nas suas testas," - Apocalipse 13:16

se você reparar, a imagem da maçã traz em si o número 6 disfarçado, que vem gravado na parte traseira de todos os aparelhos, e esse é o símbolo que você está carregando em sua mão direita, Inadvertidamente.

A referência a vestir o sinal na testa claramente se trata do futuro da tecnologia celular, onde estes estão começando a ser usados na testa como o Google Glass, um mercado no qual é certo que a Apple deve estar investindo.















Além deste fato, reparem que até o parafuso na parte inferior do iPhone tem formato de pentagrama:

Detalhe do parafuso inferior em formato de pentagrama

De certo vocês já puderam constatar alguns comportamentos bizarros por parte deste pequeno aparelho. Steve Jobs, um ser de grande popularidade, como as profecias dizem, trouxe ele para a humanidade e ganhou a confiança de todos, não é a toa que veio a sofrer de câncer, uma doença que sabemos que se trata de castigo divino.

"E adoraram o dragão que deu à besta o seu poder; e adoraram a besta, dizendo: Quem é semelhante à besta? Quem poderá batalhar contra ela?" - Apocalipse 13:4

Não é a toa que o iPhone desperte tamanha religiosidade por parte de seus fãs.

Eu como um desenvolvedor de aplicativos para iPhone posso falar aqui com todo meu parecer técnico que ao desenvolvermos aplicativos para ele, o aparelho se comporta sozinho, adiciona coisas na interface que nós não colocamos lá, uma certa vez fiz um aplicativo que não tinha nada, apenas uma pagina branca e ele trocou a cor, criou menus, fazia até sons! Tudo com a intenção de atrair mais pessoas para esta religião de blasfêmia.


Esses, meus caros, são alguns poucos fatos que levam a esta revelação, ainda existem muitos outros sinais, como o corretor ortográfico que faz você proferir blasfêmias, o texto árabe cabalístico do alcorão que faz com que qualquer programa do iPhone trave, e por aí vai..

Eu não tive a coragem de testar, mas dizem que ao reunirmos 6 iPhones em formato de circulo, e discarmos para todos ao mesmo tempo, um portal poderá ser aberto que permitirá a comunicação com o próprio Steve Jobs em pessoa...



Monday, September 2, 2013

How to fix an iPhone in reboot loop

Recently I have been playing with the internal libs of my iPhone, I tryed switching the CoreText with the old iOS 5.1 so I could maybe fix the unicode of death bug.. Hah!

Turned out my iPhone when rebooted started to reboot endlessly, OMG, my real fear was of being forced to do a full restore and lose my jailbreak

Not until i found iPhone Explorer here: http://www.macroplant.com/iexplorer/

This nifty little program will allow you to make changes in the filesystem WHILE PHONE IS REBOOTING

it helped me changing the lib in the filesystem back to the iOS 6, phew..

The unicode of death! At least for the iPhones...


Maybe you might have been surprised by apps in your iPhone suddenly crashing, or even worse, not nopening anymore!

What happens is that a very cool russian hacker group decided to release on the internet a bug that they found out, a few days before the probable release date for iOS7, september 10th, so that some notionless guys can play with it.

- Link to the original post: http://habrahabr.ru/post/191654/

- Link to the Proof of Concept (do not open if on iOS 6 or Mac OSX mountain lion): https://zhovner.com/tmp/killwebkit.html

What they found out was a sequence of special arabic characters, that applied together with a character that glues the text together and another that inverses it, they can cause a WebKit crash, what means that any app that tries to show this text instantly crashes.

According to the news, Apple had been warned about this bug 6 months ago, what makes it a huge slip on their part not to fix it, after all the iOS 6.1.4 came just to correct a little bug in the lockscreen, but this bug has been published on youtube, instead of quietly warned to them.

Here in Brazil, Cid, a blogger for naosalvo blog did a favor to humanity by posting this code on his twitter calling out for Android users to bomb their iPhone friends with this code in whatever network possible.




Cids calling had an amazing repercursion, with people threatening him, and religious guys saying that he has some pact with the demon, also he got lots of publishing in great newspapers here.

For instance, when this special text is sent via whatsapp, since it appears in the notification area it crashes the springboard immediately (iPhones desktop), and now every time you need to open whatsapp it is going to crash because it will try to show the text, how Nice!

In order to save yourself from this it is necessary to reinstall whatsapp so you can erase your history, according to my cousin Lars he was able to recover part of his history by sending whatsapp data into the iCloud and restoring it afterwards.

In iPhone messages this is even worse, you have to kindly ask your attacker to send another harmless message so you can delete the conversation, or send yourself 50 messages, what will push the history away from the screen.

Now to the technical part, if you are afraid of it you may exit now

I decided to spend some time looking at the crash logs and trying to find out what causes this crash, in my opinion, what have been noticed throughout the internet is wrong! This is not caused by coretext, and I can explain why, take a look at this log from my whatsapp:

Exception Type:  EXC_CRASH (SIGSEGV)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  1

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0:
0   WebCore                        0x37c298fc 0x379a7000 + 2631932
1   WebCore                        0x37c2690a 0x379a7000 + 2619658
2   WebCore                        0x37c267be 0x379a7000 + 2619326
3   WebCore                        0x37c2a93c 0x379a7000 + 2636092
4   WebCore                        0x37c2a810 0x379a7000 + 2635792
5   WebCore                        0x379ac7c4 0x379a7000 + 22468
6   WebCore                        0x37dd1e98 0x379a7000 + 4370072
7   WebKit                         0x382dab84 0x382d7000 + 15236
8   WebKit                         0x382da5c0 0x382d7000 + 13760
9   WebKit                         0x382da2ec 0x382d7000 + 13036
10  WebKit                         0x382da28a 0x382d7000 + 12938
11  WebKit                         0x382da22a 0x382d7000 + 12842
12  UIKit                          0x33875964 0x33866000 + 63844
13  UIKit                          0x338758a0 0x33866000 + 63648
14  UIKit                          0x338b1328 0x33866000 + 308008
15  UIKit                          0x33874c52 0x33866000 + 60498
16  UIKit                          0x33873a1e 0x33866000 + 55838
17  UIKit                          0x33873858 0x33866000 + 55384
18  UIKit                          0x33872d18 0x33866000 + 52504

It seems clear to me that this crash came from the WebKit instead of the CoreText as people have been saying (I know why, one says and others that do not understand publish)

Come on think with me here, WebKit is open source, the guy can read the code there until he finds the flaw, but in CoreText the guy has to debug assembler shit in order to find a bug, what seems to you the way they found it?!?

I was able to trace the bug to this file in WebKit:
Specifically this function:
adjustGlyphsAndAdvances()

It is possibly already fixed in this recent version of WebKit, because both iOS7 and OSX Mavericks are not affected by this bug.

And here is a lesson for Apple, they thought everything was going to be ok until iOS7 was released, think again, bugs exist to be fixed, especially critical bugs that lead to a DoS (Denial of Service)

EDIT:

For people in Androids to use this, it is better to copy the text from Cids twitter or this one: http://pastebin.com/raw.php?i=AEF3b444

O Unicode da morte! Pelo menos nos iPhones...

Talvez você tenha sido surpreendido por aplicativos do seu iPhone fechado subitamente, ou até pior, fechando e nunca mais querendo abrir!

O que acontece é que um grupo de hackers russos muito legais resolveram soltar na net um bug que eles descobriram, alguns dias antes do provável lançamento do iOS7, dia 10 de setembro, para que uns sem noção possam brincar disso felizes.

- Link para o post original: http://habrahabr.ru/post/191654/

- Link para a prova de conceito (não acesse se estiver no iOS 6 ou um Mac Osx mountain lion): https://zhovner.com/tmp/killwebkit.html

O que eles descobriram foi uma seqüência de caracteres especiais árabes, que juntos com um caractere de inverter o texto e junto com um outro de aglomerar ele fazem o WebKit travar, ou seja, qualquer aplicativo que tentar mostrar esse texto trava e fecha na hora!

De acordo com notícias, a Apple já haveria sido avisada desse bug a uns 6 meses, o que torna um belo vacilo da parte deles não corrigir logo, afinal o iOS 6.1.4 veio pra corrigir uma besteira na lockscreen, so que essa besteira foi publicada no YouTube ao invés de quietamente avisada...

No Brasil o Cid, blogueiro do naosalvo fez um favor a humanidade maior ainda postando o código no Twitter dele e convocando os usuários do Android a bombardearem seus amigos com iPhone desse código em tudo que é rede.


A convocação do Cid teve uma repercussão incrível, com pessoas ameaçando processar ele, evangélicos se doendo e dizendo que ele tem pacto com o demônio e diversas publicações em jornais de grande circulação.

Quando esse texto especial é enviado pelo whatsapp, como ele aparece nas notificações isso imediatamente trava o springboard e reinicia ele (o desktop do iPhone), e agora toda vez que você tentar abrir o whatsapp ele ira travar, pois vai tentar mostrar o texto. Olha q legal!

Para se salvar disso é necessário reinstalar o whatsapp o que apagara seu histórico, de acordo com meu primo Lars parte do histórico dele ele conseguiu recuperar jogando os dados do whatsapp para o iCloud e depois restaurando após reinstalar.
Nas mensagens do iPhone isso é pior, vc tem que pedir ou pro malfeitor te mandar uma mensagem ou você mesmo te mandar umas 50 mensagens inofensivas, o que empurrará o histórico para fora da tela.

Agora vem a parte da analise técnica, quem tem medo disso pode sair agora
Eu resolvi perder algum tempo olhando pros crash logs e tentando descobrir o que motiva esse travamento, na minha opinião o que vem sendo noticiado na internet está errado! Não é por causa do coretext, e eu explico o porquê, da uma olhada nesse log que saiu do meu whatsapp:

Exception Type:  EXC_CRASH (SIGSEGV)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  1

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0:
0   WebCore                        0x37c298fc 0x379a7000 + 2631932
1   WebCore                        0x37c2690a 0x379a7000 + 2619658
2   WebCore                        0x37c267be 0x379a7000 + 2619326
3   WebCore                        0x37c2a93c 0x379a7000 + 2636092
4   WebCore                        0x37c2a810 0x379a7000 + 2635792
5   WebCore                        0x379ac7c4 0x379a7000 + 22468
6   WebCore                        0x37dd1e98 0x379a7000 + 4370072
7   WebKit                         0x382dab84 0x382d7000 + 15236
8   WebKit                         0x382da5c0 0x382d7000 + 13760
9   WebKit                         0x382da2ec 0x382d7000 + 13036
10  WebKit                         0x382da28a 0x382d7000 + 12938
11  WebKit                         0x382da22a 0x382d7000 + 12842
12  UIKit                          0x33875964 0x33866000 + 63844
13  UIKit                          0x338758a0 0x33866000 + 63648
14  UIKit                          0x338b1328 0x33866000 + 308008
15  UIKit                          0x33874c52 0x33866000 + 60498
16  UIKit                          0x33873a1e 0x33866000 + 55838
17  UIKit                          0x33873858 0x33866000 + 55384
18  UIKit                          0x33872d18 0x33866000 + 52504

Para mim ficou claro que o crash veio do WebKit e não do CoreText como o pessoal vem dizendo (e eu até sei porquê, um fala e os outros que não entendem divulgam).

Pensa bem, o WebKit é open source, o cara tem o código fonte lá de frente pra ele e pode ler até achar uma falha, já o core text o camarada tem que debugar a parada em assembler, qual te parece a forma que descobriram esse bug?!?

Pois é, a fonte desse bug consegui rastrear ate esse arquivo do WebKit:
Especificamente nessa função:
adjustGlyphsAndAdvances()

Possivelmente ele já esta arrumado nessa versão atual do WebKit porque o ios7 beta não é afetado pelo bug, bem como o osx mavericks.

Aqui fica uma lição para a apple pelo menos, eles acharam que ia ficar tudo tranquilo até sair o ios7, pensem denovo, bugs são feito para serem arrumados, principalmente bugs críticos como esse que correm risco de DoS (negação de serviço)

EDIT:

O facebook bloqueou posts com este código:


percebi que para o pessoal do android, fica melhor se copiar o texto do twitter do Cid ou esse aqui, caso queiram usar: http://pastebin.com/raw.php?i=AEF3b444

Algumas idéias legais para usar esse código (coloque suas idéias nos comentários):

- Colocar no SSID da sua rede wifi, ninguém irá conseguir conectar em nada ao redor
- Mandar por mensagem para todos seus amigos
- Postar no twitter, todo mundo que te segue não conseguirá abrir o twitter
- Colocar no seu status do whatsapp.