Qual a diferença entre essas duas imagens?
3.17 KB
76.9 KB
Aparentemente só o tamanho, mas ao abrir a segunda imagem com o WinRAR ou 7-Zip, você irá encontrar algo além do italiano bigodudo.
Como isso é possível? Coisa mais simples do mundo:

Que jogar um monte de bytes (arquivo) no final de outro monte de bytes (outro arquivo) é possível, tudo bem, todo mundo já sabia. O que eu não sabia era que o WinRAR conseguia achar o trecho compactado sem saber exatamente onde ele começa. Com certeza deve existir alguma flag que indica onde fica esse trecho. Okay, deixo a parte nerd do post para outra hora.
Tá, legal… e dái?
Veja bem, isso não serve pra p**** nenhuma, certo? Errado!
A internet é uma terra sem lei, mas algumas pessoas insistem em tentar controlar o que vc faz ou deixa de fazer. Então, alguma mente desocupada teve a, diga-se de passagem, ótima idéia de camuflar conteúdo ilegal em imagens inocentes e hospedar em um desses serviços de armazenagem grátis (como o imageshack.us).
Pode não parecer muita coisa, pois vc baixa seus filmes educativos por torrent, mas com os grandes trackers indo pro saco uma hora a festa acaba (ou fica mais difícil de arrumar convite).
Okay, vc tá dizendo que eu posso baixar Doom 4 camuflado num JPG? É impossível ter um JPG de 10+ GB hospedado, qualquer imbecil vai perceber que não se trata de uma imagem.
Correto, mas e se esses GB’s fossem divididos em pequenas partes de, vamos supor, 2 MB cada… e cada uma dessas partes fosse hospedada como uma imagem diferente? No final, só será necessário “juntar” os pedaços para assistir o novo episódio de House.
É claro que um software gerenciando tudo isso deixaria as coisas mais fáceis, mas não conheço nenhum =/
Por isso comecei um projeto simples (iShare, em C#) que faz o básico:
- Divide o arquivo-alvo em quantas partes de tamanho Y (especificado pelo usuário) forem necessárias;
- Adiciona uma imagem random no começo de cada parte;
- Armazena as imagens em algum serviço online, ou disco virtual;
- Cria uma lista de links para as imagens que compõem o arquivo-alvo;
- Baixa as imagens;
- Remove as imagens, deixando só as partes; e
- “Junta” as partes.
Pena que parei com o projeto antes de terminar os itens listados em vermelho. Se houver interesse, posto o source pra quem quiser terminar.
Para quem for utilizar essa técnica, uma dica é utilizar o WordPress, fiz um teste a um ano e a imagem de 7.5 MB está lá até hoje. Quem quiser testar, baixe essa imagem (clique com o botão direito e em Salvar link…), depois tente abrir com o WinRAR.
Enfim, como faço a gambiarra?
O modo mais simples é:
- Copie a imagem que vc deseja usar para camuflar o seu RAR para seu C:\
- Copie seu RAR que será camuflado para seu C:\
- Escolha um nome para a imagem que será criada contando o RAR (gambiarra.jpg ou gambi.jpg, para os íntimos)
- Abra o menu Iniciar e clique em Executar e digite “cmd”, sem aspas
- Clique em Ok e um prompt de comando aparecerá
- Digite: copy /b c:\<sua_imagem.jpg> + c:\<seu_rar.rar> c:\gambiarra.jpg
No case, se sua imagem original tem o nome A.JPG e seu RAR tem o nome B.RAR, ficaria: copy /b C:\A.JPG + C:\B.RAR C:\GAMBIARRA.JPG
Para quem programa em C:
#include <stdio.h>
int main(int ac, char ** av)
{
FILE *jpg, *rar, *out;
char c;
jpg = fopen("./arquivo.jpg", "rb");
rar = fopen("./arquivo.rar", "rb");
out = fopen("./imagem.jpg", "wb");
while(!feof(jpg))
fputc(fgetc(jpg), out);
while(!feof(rar))
fputc(fgetc(rar), out);
fclose(jpg);
fclose(rar);
fclose(out);
}
Ou para quem programa em VB (5 ou 6):
sub main()
Dim f1() As Byte
Dim f2() As Byte
Open ".\arquivo.jpg" For Binary As #1
ReDim f1(LOF(1))
Get #1, , f1
Close #1
Open ".\arquivo.rar" For Binary As #1
ReDim f2(LOF(1))
Get #1, , f2
Close #1
Open ".\imagem.jpg" For Binary As #1
Put #1, , f1
Put #1, , f2
Close #1
Por enquanto, para músicas e ROM’s de Super Nintendo, funciona muito bem

Leave a Reply