
Libreria basata su C per analizzare, modificare e salvare metadati EXIF da immagini JPEG, con un focus sullo sfruttamento di CVE-2016-6328 per Android 10.
libexif -------
libexif è una libreria per l'analisi, la modifica e il salvataggio dei dati EXIF. È pensata per sostituire molte implementazioni ridondanti in utility a riga di comando e programmi con interfacce grafiche.
libexif supporta l'analisi, la modifica e il salvataggio dei dati EXIF. Inoltre, dispone del supporto per gettext. Sono supportati tutti i tag EXIF descritti nello standard EXIF 2.1 (e la maggior parte di quelli della 2.2). Sono supportate anche molte maker notes delle fotocamere Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax e Sanyo.
libexif è scritto in C puro e non richiede alcuna libreria aggiuntiva. GNU gettext verrà utilizzato per la traduzione linguistica, se disponibile.
libexif può gestire solo alcune maker notes, e anche quelle non molto bene. C'è ancora molto lavoro da fare. Si noti che libmnote è stato fuso con libexif - non è più necessario.
Abbiamo documentato l'API di libexif usando doxygen e rendiamo i risultati disponibili all'indirizzo http://libexif.sourceforge.net/api/
I brevi programmi di test nella directory test illustrano come creare dati EXIF validi da zero, come salvare i dati EXIF e come caricare i dati EXIF da dati in memoria. Ci sono anche alcuni semplici programmi di esempio disponibili nella directory contrib/examples/. Non esitate a contattarci all'indirizzo [email protected] se avete domande su come usare libexif.
Per collegare libexif al vostro pacchetto, raccomandiamo di usare l'utility pkgconfig (cfr. http://www.freedesktop.org/wiki/Software/pkg-config/ Per vostra comodità, libexif fornisce sia libexif-uninstalled.pc sia installa libexif.pc.
Al momento, conosco i seguenti frontend per libexif:
Se desiderate migrare il vostro programma per usare libexif o aggiungervi il supporto EXIF, non esitate a contattare gli autori.
Conosco le seguenti librerie che usano libexif o che sono state ispirate da esso:
Dipende davvero dal vostro ambiente cosa fare per riuscire a compilare libexif. La compilazione dal tarball dei sorgenti di solito prevede i comandi:
./configure make sudo make install
Quando si compila dai sorgenti fuori da CVS, sarà necessario qualcosa come quanto segue:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
Oppure, probabilmente solo:
autoreconf -i ./configure make
Oltre agli argomenti standard, configure accetta diversi parametri specifici di libexif:
--disable-docs Per disabilitare la generazione di qualsiasi documentazione --enable-internal-docs Compila la documentazione interna del codice se Doxygen è disponibile --enable-ship-binaries Per includere le DLL di Windows in 'make dist'
Alcune applicazioni specializzate possono ridurre le dimensioni del binario di libexif impostando una o entrambe le seguenti macro nella variabile d'ambiente CPPFLAGS al momento di configure. Ciascuna rimuove alcuni tipi di stringhe di testo e costanti dal binario. Le applicazioni che devono accedere a tag EXIF specifici e noti e che conoscono in anticipo il significato dei loro dati non hanno bisogno di quelle stringhe e possono risparmiare spazio considerevole eliminandole.
-DNO_VERBOSE_TAG_STRINGS Nomi e descrizioni dei tag EXIF, messaggi di debug, campi EXIF obbligatori (disattiva la correzione automatica dei tag) -DNO_VERBOSE_TAG_DATA Nomi dei contenuti enumerati dei dati dei tag
Le traduzioni di libexif sono realizzate da volontari che lavorano in modo indipendente, direttamente con il progetto libexif oppure tramite uno dei due siti di coordinamento delle traduzioni, il Translation Project http://translationproject.org/domain/libexif.html e Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Qualsiasi aggiornamento alle traduzioni linguistiche coordinate dal Translation Project deve essere effettuato tramite il loro sito web, ma tutte le altre lingue possono essere aggiornate tramite Launchpad (preferito) o inviando gli aggiornamenti direttamente alla mailing list degli sviluppatori di libexif. Al momento in cui scriviamo, le seguenti lingue devono essere aggiornate tramite il Translation Project: cs da de es fr it ja nl pl sk sv uk vi
Se siete interessati a tradurre libexif in una nuova lingua, vi raccomandiamo di unirvi a uno dei suddetti gruppi di traduzione e di sfruttare i sistemi che hanno costruito per aiutarvi. Un disclaimer di traduzione NON è richiesto per libexif presso il Translation Project; effettuando una traduzione, accettate implicitamente di fornirla sotto gli stessi termini di licenza del resto di libexif (LGPL).
libexif è stato originariamente scritto da Curtis Galloway [email protected]. Poiché il progetto originale non supportava la modifica e il salvataggio, Lutz Mueller [email protected] ha riscritto libexif da zero. Da allora, molte altre persone hanno contribuito a libexif.
Alcuni link che potreste voler consultare se siete interessati a ulteriori informazioni su EXIF.