Metadados IPTC adicionados automaticamente às imagens carregadas no Facebook

91

Muitas imagens carregadas no Facebook contêm campos IPTC / IIM que aparentemente são adicionados automaticamente durante o processo de upload:

  • Instrução especial , uma string começando com "FBMD"
  • Referência de transmissão original .

Veja por exemplo esta imagem (pessoal) carregada no Facebook e decodificada usando o Exif Viewer de Jeffrey: http://exif.regex.info/exif.cgi

O que é isso?

Patrick Peccatte
fonte
6
"O que é isso?" - isso é algo que você teria que perguntar ao Facebook ...
CBroe
1
BTW, é possível visualizar dados IPTC sem usar uma ferramenta ou API como o Exif Viewer de Jeffrey? ou seja, em um visualizador hexadecimal? ou pelo menos verifique se há dados IPTC examinando apenas o arquivo de imagem binário? (por exemplo, em um editor de texto capaz de mostrar conteúdo hexadecimal) Até agora, não tive sucesso em descobrir a resposta +1 para uma ótima pergunta.
Not So Sharp
Atualmente estou tentando descobrir o mesmo, o que está codificado neste campo de metadados. Como venho trabalhando no nível de byte, posso dizer que é como ele postou, após o FBMD você encontra os números como texto alfanumérico (todos dentro do conjunto ASCII). Portanto, é apenas texto, em meus casos de teste 94 bytes de comprimento, e não consigo quebrá-los ainda para ver o que está armazenado lá.
bconstanzo
@bconstanzo isso realmente não se parece com caracteres ascii, já que no meu caso há muitos zeros em linha
MaKiPL
@MaKiPL Já estou longe desse tópico, então pode ser que o Facebook tenha mudado o uso desse tipo de metadados. Eles parecem estar usando (talvez abusando?) Do campo de metadados ITPC para manter seus próprios metadados codificados sabe-se lá como. Sem mais informações, há muito pouco em que se apoiar para fazer a engenharia reversa no campo de dados.
bconstanzo

Respostas:

44

De acordo com este site :

Instruções especiais [IPTC Core] Rótulo alternativo do esquema IPTC IIM mais antigo, usado para " Instruções ".

Instruções [IPTC Core] Este é um campo de texto simples que pode incluir qualquer uma de uma série de instruções do provedor ou criador para o receptor da fotografia. Qualquer um dos seguintes itens pode ser incluído: embargos (por exemplo: News Magazines OUT) e outras restrições não cobertas pelo campo Rights Usage Terms (ou novos campos PLUS relacionados a direitos); informações sobre os meios originais de captura (notas de digitalização, perfil de cores, etc.) ou outras informações de texto específicas que o usuário pode precisar para uma reprodução precisa; permissões ou créditos adicionais necessários ao publicar. Nota: Este campo é “compartilhado” com o campo “Instruções” no painel Origem da caixa de diálogo Informações do arquivo Adobe Photoshop.

Exemplos: * Imagem a ser usada uma única vez, não exclusiva na edição de revista em inglês como imagem interna, não maior que uma página inteira colorida. Direitos adicionais de terceiros a serem negociados com Julie Doe / Agência XYZ com antecedência. Todos os direitos não especificamente concedidos são reservados. Veja nota de entrega para licença específica.

Apenas para consideração; nenhuma reprodução em qualquer forma sem permissão prévia por escrito. *

Esse é o modelo de intercâmbio de informações (IIM) padrão do International Press Telecommunications Council (IPTC ) .

Não consegui decodificar os dados do Facebook, mas colar, baixar e colar uma imagem novamente mudará um pouco os dados.

Usando IrfanView para definir instruções especiais para "teste" em um JPG sem dados IPTC, adiciona estes bytes ao cabeçalho:

captura de tela hexed.it de dados IPTC adicionados em JPG

Baixei 339 imagens com comprimento de instrução 94 após o FBMDe os seguintes bytes permaneceram os mesmos:

0 {'0': 339}
1 {'1': 339}
2 {'0': 339}
3 {'0': 339}
4 {'0': 339}
5 {'a': 339}
8 {'0': 339}
9 {'3': 339}
10 {'0': 339}
11 {'0': 339}
12 {'0': 339}
13 {'0': 339}
18 {'0': 339}
19 {'0': 339}
20 {'0': 339}
21 {'0': 339}
26 {'0': 339}
27 {'0': 339}
28 {'0': 339}
29 {'0': 339}
34 {'0': 339}
35 {'0': 339}
36 {'0': 339}
37 {'0': 339}
42 {'0': 339}
43 {'0': 339}
44 {'0': 339}
45 {'0': 339}
50 {'0': 339}
52 {'0': 339}
53 {'0': 339}
58 {'0': 339}
60 {'0': 339}
61 {'0': 339}
66 {'0': 339}
68 {'0': 339}
69 {'0': 339}
74 {'0': 339}
76 {'0': 339}
77 {'0': 339}
82 {'0': 339}
84 {'0': 339}
85 {'0': 339}
90 {'0': 339}
92 {'0': 339}
93 {'0': 339}

Também encontrei 3 imagens com apenas 86 bytes misteriosos depois FBMD, por exemplo 23000986030000f91d0000e5230000502900004889000041ac000004c900007aee0000cf0f0100f02d0100, também salvas nos últimos meses. Os mesmos bytes que existiam:

0 {'2': 3}
1 {'3': 3}
2 {'0': 3}
3 {'0': 3}
4 {'0': 3}
5 {'9': 3}
6 {'8': 3}
8 {'0': 3}
9 {'3': 3}
10 {'0': 3}
11 {'0': 3}
12 {'0': 3}
13 {'0': 3}
16 {'1': 3}
18 {'0': 3}
19 {'0': 3}
20 {'0': 3}
21 {'0': 3}
26 {'0': 3}
27 {'0': 3}
28 {'0': 3}
29 {'0': 3}
34 {'0': 3}
35 {'0': 3}
36 {'0': 3}
37 {'0': 3}
42 {'0': 3}
43 {'0': 3}
44 {'0': 3}
45 {'0': 3}
50 {'0': 3}
51 {'0': 3}
52 {'0': 3}
53 {'0': 3}
58 {'0': 3}
59 {'0': 3}
60 {'0': 3}
61 {'0': 3}
66 {'0': 3}
67 {'0': 3}
68 {'0': 3}
69 {'0': 3}
74 {'0': 3}
76 {'0': 3}
77 {'0': 3}
82 {'0': 3}
84 {'0': 3}
85 {'0': 3}
86 {'\x00': 3}

Esta postagem do blog parece saber mais sobre isso:

[...] em 2014-11-13, o Facebook introduziu um novo código de rastreamento. Ele aparece como um campo de metadados de Instruções Especiais IPTC. Eles parecem:

Instruções especiais: FBMD01000ac60300004a1d00002d4b000067580000c9650000d5fc000054350100953a0100d3420100e84b01005f8f0100

Instruções especiais: FBMD23000969010000b1590000cb7700000a8600000c07010046820100b8c0010052590200e5c902006e440300

Eu acho que "FBMD" significa "Facebook Member Data" (mas posso estar errado).

Eu consegui decodificar um aspecto interessante nessas strings: o comprimento. Cada string começa com "FBMD", dois caracteres hexadecimais (1 bytes) e um comprimento de 16 bytes (4 caracteres). Em seguida, vêm os conjuntos de comprimento + 1 de valores de 32 bits (8 bytes).

FBMD01 000a = comprimento 10, então espere 11 campos: c6030000 4a1d0000 2d4b0000 67580000 c9650000 d5fc0000 54350100 953a0100 d3420100 e84b0100 5f8f0100

FBMD23 0009 = comprimento 9, então espere 10 campos: 69010000 b1590000 cb770000 0a860000 0c070100 46820100 b8c00100 52590200 e5c90200 6e440300

Eu perguntei à comunidade do Facebook sobre isso.

Cees Timmerman
fonte
10

Bem, parece que alguém está assistindo .

Eu descobri isso primeiro , há um link para esta pilha de post

Citando de cima:

"Carregue a imagem e o Facebook a marca com uma tag incorporada secretamente: A008E8E97FA55

O amigo “A” do Facebook faz o download.

O amigo “A” envia uma mensagem para outro amigo - alguém que você não conhece, o amigo do amigo “B” e outro amigo do amigo “C” deles.

O amigo “B” não está no Facebook, ou talvez ele apenas poste no Reddit.

O amigo “B” posta no Reddit. O Facebook vê isso (vasculhando o Reddit sistematicamente, da mesma forma que os motores de busca vasculham toda a 'web' em geral). Depois de ver isso algumas vezes, repetido rapidamente, o Facebook agora sabe que você está um pouco próximo do amigo “B”.

Portanto, agora o Facebook sabe quem são outras das suas conexões de “amigo de um amigo” - uma pessoa que você nem conhece a seu respeito!

Repita esta atividade em grande escala e agora o Facebook conhece seus amigos e seguidores do Facebook e seus amigos, colegas de trabalho e associações do mundo real. Eles até conhecem seus “amigos de amigos” (pessoas que você não conhece) e seus detalhes de compra e estilo de vida, e os seus, e como seus círculos de amizade se encaixam, mesmo fora do Facebook. "

Mais algumas coisas no Twitter

Desastre
fonte
Embora este link possa responder à pergunta, é melhor incluir as partes essenciais da resposta aqui e fornecer o link para referência. As respostas somente com link podem se tornar inválidas se a página vinculada mudar. - Da avaliação
greg-449