segunda-feira, 31 de outubro de 2011

Invertendo URLs no Linux

Achei essa postagem perdida nos rascunhos aqui. Já tem muito tempo que escrevi isso, mas devo ter esquecido de postar. Bom, segue aí só para não ficar de rascunho.

Todo mundo que já baixou arquivos através de algum blog já deve ter visto aqueles "protetores de links". Alguns possuem no próprio link do protetor o caminho do download ficando:

http://www.protetordelinks.com/url=http://www.megaupload.com/?d=RIERIZRC

Nesse caso é só copiar o endereço do megaupload e mandar abrir que ele já abre sem problemas.
Mas existem também os que colocam o endereço ao contrário, ficando dessa forma:

http://www.protetordelinks.com/url=CRZIREIR=d?/moc.daolpuagem.www//:ptth


Dessa forma fica um pouco mais complicado. É possível pegar o texto e invertê-lo novamente de forma manual, mas para quem usa Linux, existe um comando chamado rev. Ele inverte qualquer coisa que se escreva:

$ rev
CRZIREIR=d?/moc.daolpuagem.www//:ptth
http://www.megaupload.com/?d=RIERIZRC

Ou então:

$ echo -n CRZIREIR=d?/moc.daolpuagem.www//:ptth | rev
http://www.megaupload.com/?d=RIERIZRC

Outro problema é quando a URL aparece codificada, com uns caracteres sem sentido. 

http://www.protetordelinks.com/url=aHR0cDovL3d3dy5tZWdhdXBsb2FkLmNvbS8/ZD1SSUVSSVpSQw==

Essa codificação é feita com base 64. No Linux também há um comando para isso, chamado base64.

$ echo -n aHR0cDovL3d3dy5tZWdhdXBsb2FkLmNvbS8/ZD1SSUVSSVpSQw== | base64 -d
http://www.megaupload.com/?d=RIERIZRC

É recomendável o uso do parâmetro -n no comando echo para que ele não gere uma quebra de linha e altere o resultado final do base64.

Pode existir algumas variações, como a URL estar invertida e depois convertida em base64. Nesse caso é só aplicar as duas opções.