
Biblioteca basada en C para analizar, editar y guardar metadatos EXIF de imágenes JPEG, con un enfoque en explotar CVE-2016-6328 para Android 10.
libexif -------
libexif es una biblioteca para analizar, editar y guardar datos EXIF. Está diseñada para reemplazar muchas implementaciones redundantes en utilidades de línea de comandos y programas con interfaces gráficas.
libexif admite el análisis, edición y guardado de datos EXIF. Además, tiene soporte para gettext. Se admiten todas las etiquetas EXIF descritas en el estándar EXIF 2.1 (y la mayoría de las 2.2). También se admiten muchas notas de fabricante de cámaras Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax y Sanyo.
libexif está escrito en C puro y no requiere ninguna biblioteca adicional. GNU gettext se utilizará para la traducción de idiomas, si está disponible.
libexif solo puede manejar algunas notas de fabricante, e incluso esas no muy bien. Es necesario trabajar más. Tenga en cuenta que libmnote se ha fusionado con libexif; ya no es necesario.
Hemos documentado la API de libexif usando doxygen y estamos poniendo los resultados a disposición en http://libexif.sourceforge.net/api/
Los programas de prueba cortos en el directorio test ilustran cómo crear datos EXIF válidos desde cero, cómo guardar datos EXIF y cómo cargar datos EXIF desde datos en memoria. También hay algunos programas de ejemplo simples disponibles en el directorio contrib/examples/. No dude en contactarnos en [email protected] si tiene alguna pregunta sobre cómo usar libexif.
Para enlazar libexif en su propio paquete, recomendamos usar la utilidad pkgconfig (cf. http://www.freedesktop.org/wiki/Software/pkg-config/ Para su conveniencia, libexif proporciona tanto libexif-uninstalled.pc e instala libexif.pc.
En este momento, conozco las siguientes interfaces para libexif:
Si desea migrar su programa para usar libexif o agregar soporte EXIF, no dude en contactar a los autores.
Conozco las siguientes bibliotecas que usan o se han inspirado en libexif:
Realmente depende de su entorno qué hacer para que libexif se compile. La compilación a partir del archivo tar fuente generalmente implica los comandos:
./configure make sudo make install
Al compilar desde el código fuente de CVS, será necesario algo como lo siguiente:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
O, probablemente solo:
autoreconf -i ./configure make
Además de los argumentos estándar, configure acepta varios específicos de libexif:
--disable-docs Para deshabilitar la generación de documentación --enable-internal-docs Compilar documentación interna del código si Doxygen está disponible --enable-ship-binaries Para incluir DLL de Windows en 'make dist'
Ciertas aplicaciones especializadas pueden reducir el tamaño del binario de libexif al establecer una o ambas de las siguientes macros en la variable de entorno CPPFLAGS en tiempo de configuración. Cada una elimina ciertos tipos de cadenas de texto y constantes del binario. Las aplicaciones que necesitan acceder a etiquetas EXIF específicas y conocidas y conocen de antemano el significado de sus datos no necesitan esas cadenas y pueden ahorrar un espacio considerable al eliminarlas.
-DNO_VERBOSE_TAG_STRINGS Nombres y descripciones de etiquetas EXIF, mensajes de depuración, campos EXIF obligatorios (deshabilita la corrección automática de etiquetas) -DNO_VERBOSE_TAG_DATA Nombres del contenido de datos de etiquetas enumeradas
Las traducciones de libexif son realizadas por voluntarios que trabajan por su cuenta, ya sea directamente con el proyecto libexif o a través de uno de los dos sitios de coordinación de traducciones, el Proyecto de Traducción http://translationproject.org/domain/libexif.html y Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Cualquier actualización de las traducciones de idiomas coordinadas por el Proyecto de Traducción debe realizarse a través de su sitio web, pero todos los demás idiomas se pueden actualizar a través de Launchpad (preferido) o enviando actualizaciones directamente a la lista de correo de desarrolladores de libexif. Al momento de escribir esto, los siguientes idiomas deben actualizarse a través del Proyecto de Traducción: cs da de es fr it ja nl pl sk sv uk vi
Si está interesado en traducir libexif a un nuevo idioma, le recomendamos que se una a uno de los grupos de traducción anteriores y aproveche los sistemas que han construido para ayudarlo. NO se requiere una renuncia de traducción para libexif en el Proyecto de Traducción; al realizar una traducción, acepta implícitamente proporcionarla bajo los mismos términos de licencia que el resto de libexif (LGPL).
libexif fue escrito originalmente por Curtis Galloway [email protected]. Debido a que el diseño original no admitía la edición y el guardado, Lutz Mueller [email protected] reescribió libexif desde cero. Desde entonces, muchas más personas han contribuido a libexif.
Algunos enlaces que quizás desee consultar si está interesado en más información sobre EXIF.