Pergunta

Então, para simplificar minha vida, quero poder acrescentar de 1 a 7 caracteres adicionais no final de algumas imagens JPG que meu programa está processando*.Estes são preenchimentos fictícios (preenchimentos, etc. - provavelmente todos 0x00) apenas para tornar o tamanho do arquivo um múltiplo de 8 bytes para criptografia de bloco.

Depois de tentar isso com alguns programas, parece que eles aceitam os caracteres adicionais, que ocorrem após o FF D9 que especifica o final da imagem - então parece que o formato do arquivo está bem definido o suficiente para que a 'corrupção' que estou adicionando no final não importe.

Sempre posso processar os arquivos posteriormente, se necessário, mas minha preferência é fazer a coisa mais simples possível - que é deixá-los permanecer (estou descriptografando outros tipos de arquivos e eles não se importarão, então ter um caso especial é irritante ).

Eu imagino com toda a conversa Esteganografia hullaballo anos atrás, alguém tem alguma contribuição aqui ...

(processamento de criptografia em blocos de 8 bytes, não quero salvar o tamanho do arquivo pré-criptografado, então anexe 0x00 aos dados de entrada e deixe-os lá após a decodificação)

Foi útil?

Solução

Não, você pode adicionar bits ao final de um arquivo jpg, sem torná-lo inutilizável.O cabeçalho do arquivo jpg informa como lê-lo, portanto o programa que o lê irá parar no final dos dados jpg.

Na verdade, as pessoas ocultaram arquivos zip dentro de arquivos jpg anexando os dados zip ao final dos dados jpg.Devido à forma como esses formatos são estruturados, o arquivo resultante é válido em qualquer um dos formatos.

Outras dicas

Você pode ..mas os resultados poderia ser imprevisível.

Mesmo que haja informações suficientes no formato para dizer ao cliente para ignorar os dados extras, provavelmente não é um caso que o programador testou.

Um programa paranóico pode observar o tamanho, perceber a discrepância e decidir que não processará seu arquivo porque claramente não o compreende totalmente.Isto é particularmente provável ao ler dados da web, quando bytes aleatórios em um arquivo podem ser considerados um risco à segurança.

Você pode incorporar seus dados na tag XMP em um JPEG (ou campos EXIF ​​ou IPTC).XMP é XML, então você tem bastante flexibilidade para fazer suas próprias coisas personalizadas.

Provavelmente não é a coisa mais simples possível mas colocar seus dados aqui manterá a integridade do JPEG e não exigirá "pós-processamento".

Seus dados aparecerão em outro software de imagem, como o PhotoShop, o que pode não ser o ideal.

Como outros afirmaram, você não tem controle sobre como os programas processam os arquivos de imagem e, portanto, alguns programas podem considerar as imagens válidas, outros não.

No entanto, há um problema maior aqui.A julgar pela sua pergunta, estou deduzindo que você está praticando "segurança através da obscuridade". É amplamente considerado uma prática muito ruim.Use o Google para encontrar uma infinidade de artigos sobre o assunto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top