Isso também funciona com o .zip
Basicamente, o início de um "arquivo ZIP" é um cabeçalho conhecido (que começa com "PK").
Um programa que sabe como lidar com arquivos ZIP pode procurar em qualquer arquivo por um cabeçalho conhecido e então tratar esse cabeçalho e todos os bytes posteriores como um arquivo ZIP.
Por exemplo, o Info-Zip contém arquivos executáveis chamados "unzipsfx.exe". Existem várias versões do arquivo (por exemplo, versão 5.12 para DOS, versão 5.12 para OS / 2, versão 5.12 para Win32). Você pode criar um "arquivo zip auto-extraível", que é um arquivo executável que é capaz de extrair a si mesmo, criando um novo arquivo que inicia com uma versão desse "unzipsfx.exe" e adicionando um arquivo ZIP ao final disso. Portanto, se eu adicionasse a variação do OS / 2 (com " copy/b unzipsfx.exe+myfile.zip myfile.exe
"), poderia facilmente extraí-lo com o OS / 2. Embora eu não pudesse executar o arquivo (para extrair efetivamente os dados compactados) de um computador que executa o MS-DOS (porque o MS-DOS não executa o software OS / 2), ainda posso usar o PKUNZIP para MS-DOS.
Esses arquivos de extração automática são comuns o suficiente para que qualquer software descompactador popular seja capaz de lidar com essas variações dos arquivos. Eles simplesmente procuram pelo cabeçalho conhecido. Lembro-me distintamente de algum software (esqueço de que software) que se queixaria, mostrando uma mensagem de aviso, sobre os bytes extras no início do arquivo. No entanto, ainda funcionaria bem.
Edite, para adicionar esta clarificação do comportamento do unrar no cenário de amostra: o unrar não está processando o JPG e ignorando o JPG porque compreende completamente a estrutura de como é um arquivo JPG. É simplesmente ignorar os bytes desinteressantes (que por acaso são um arquivo JPG) até encontrar o que deseja: bytes que começam a se parecer com um arquivo "RAR". A maioria dos arquivos .rar tem um arquivo RAR que começa no primeiro byte, mas isso não é um requisito absoluto de um arquivo RAR. Como o software RAR oficial suporta a criação de arquivos de extração automática (para vários sistemas operacionais), tenho certeza de que o RAR também oferece suporte a recursos similares a como os arquivos ZIP são manipulados.