
Bibliothèque en C pour l'analyse, l'édition et la sauvegarde de métadonnées EXIF d'images JPEG, avec un accent sur l'exploitation de CVE-2016-6328 pour Android 10.
libexif -------
libexif est une bibliothèque pour analyser, éditer et enregistrer les données EXIF. Elle est destinée à remplacer de nombreuses implémentations redondantes dans les utilitaires en ligne de commande et les programmes avec GUI.
libexif prend en charge l'analyse, l'édition et l'enregistrement des données EXIF. De plus, elle prend en charge gettext. Toutes les balises EXIF décrites dans la norme EXIF 2.1 (et la plupart de la 2.2) sont prises en charge. De nombreuses notes de fabricant des appareils Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax et Sanyo sont également prises en charge.
libexif est écrit en C pur et ne nécessite aucune bibliothèque supplémentaire. GNU gettext sera utilisé pour la traduction linguistique, si disponible.
libexif ne peut gérer que certaines notes de fabricant, et encore pas très bien. Davantage de travail est nécessaire. Notez que libmnote a été fusionné avec libexif - il n'est plus nécessaire.
Nous avons documenté l'API de libexif en utilisant doxygen et mettons les résultats à disposition sur http://libexif.sourceforge.net/api/
Les courts programmes de test dans le répertoire test illustrent comment créer des données EXIF valides à partir de zéro, comment enregistrer des données EXIF et comment charger des données EXIF à partir de données en mémoire. Il existe également quelques exemples de programmes simples dans le répertoire contrib/examples/. N'hésitez pas à nous contacter à [email protected] si vous avez des questions sur l'utilisation de libexif.
Pour lier libexif à votre propre paquet, nous recommandons d'utiliser l'utilitaire pkgconfig (cf. http://www.freedesktop.org/wiki/Software/pkg-config/ Pour votre commodité, libexif fournit à la fois libexif-uninstalled.pc et installe libexif.pc.
Actuellement, je connais les frontends suivants pour libexif :
Si vous souhaitez migrer votre programme vers libexif ou y ajouter la prise en charge EXIF, n'hésitez pas à contacter les auteurs.
Je connais les bibliothèques suivantes qui utilisent ou ont été inspirées par libexif :
Cela dépend vraiment de votre environnement pour savoir quoi faire pour compiler libexif. La compilation à partir de l'archive source implique généralement les commandes :
./configure make sudo make install
Lors de la compilation à partir des sources CVS, quelque chose comme ce qui suit sera nécessaire :
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
Ou, probablement juste :
autoreconf -i ./configure make
En plus des arguments standard, configure prend plusieurs arguments spécifiques à libexif :
--disable-docs Pour désactiver la production de toute documentation --enable-internal-docs Construire la documentation interne du code si Doxygen est disponible --enable-ship-binaries Pour inclure les DLL Windows dans 'make dist'
Certaines applications spécialisées peuvent réduire la taille du binaire libexif en définissant une ou les deux macros suivantes dans la variable d'environnement CPPFLAGS lors de la configuration. Chacune supprime certains types de chaînes de texte et de constantes du binaire. Les applications qui ont besoin d'accéder à des balises EXIF spécifiques et connues et qui connaissent à l'avance la signification de leurs données n'ont pas besoin de ces chaînes et peuvent économiser un espace considérable en les éliminant.
-DNO_VERBOSE_TAG_STRINGS Noms et descriptions des balises EXIF, messages de débogage, champs EXIF obligatoires (désactivation de la correction automatique des balises) -DNO_VERBOSE_TAG_DATA Noms des contenus de données de balises énumérées
Les traductions de libexif sont réalisées par des bénévoles travaillant seuls, soit directement avec le projet libexif, soit via l'un des deux sites de coordination de traduction, le Translation Project http://translationproject.org/domain/libexif.html et Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Toute mise à jour des traductions linguistiques coordonnée par le Translation Project doit être effectuée via leur site Web, mais toutes les autres langues peuvent être mises à jour soit via Launchpad (de préférence), soit en envoyant les mises à jour directement à la liste de diffusion des développeurs libexif. Au moment de la rédaction de ce document, les langues suivantes doivent être mises à jour via le Translation Project : cs da de es fr it ja nl pl sk sv uk vi
Si vous êtes intéressé par la traduction de libexif dans une nouvelle langue, nous vous recommandons de rejoindre l'un des groupes de traduction ci-dessus et de profiter des systèmes qu'ils ont mis en place pour vous aider. Une clause de non-responsabilité de traduction n'est PAS requise pour libexif au Translation Project ; en effectuant une traduction, vous acceptez implicitement de la fournir sous les mêmes conditions de licence que le reste de libexif (LGPL).
libexif a été écrit à l'origine par Curtis Galloway [email protected]. En raison de la conception originale ne supportant pas l'édition et l'enregistrement, Lutz Mueller [email protected] a réécrit libexif à partir de zéro. Depuis lors, de nombreuses autres personnes ont contribué à libexif.
Quelques liens que vous voudrez peut-être consulter si vous êtes intéressé par des informations supplémentaires sur EXIF.