
C-Bibliothek zum Parsen, Bearbeiten und Speichern von EXIF-Metadaten, mit Fokus auf Schwachstellenforschung und Binäranalyse für CVE-2020-0181.
libexif -------
libexif ist eine Bibliothek zum Parsen, Bearbeiten und Speichern von EXIF-Daten. Sie soll viele redundante Implementierungen in Kommandozeilenprogrammen und GUI-Anwendungen ersetzen.
libexif unterstützt das Parsen, Bearbeiten und Speichern von EXIF-Daten. Darüber hinaus verfügt es über Gettext-Unterstützung. Alle im EXIF-Standard 2.1 beschriebenen EXIF-Tags (und die meisten aus 2.2) werden unterstützt. Viele Maker-Notes von Kameras der Marken Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax und Sanyo werden ebenfalls unterstützt.
libexif ist in reinem C geschrieben und benötigt keine zusätzliche Bibliothek. GNU gettext wird, falls verfügbar, zur Sprachübersetzung verwendet.
libexif kann nur einige Maker-Notes verarbeiten, und selbst diese nicht sehr gut. Es ist noch mehr Arbeit erforderlich. Beachten Sie, dass libmnote in libexif integriert wurde – es wird nicht mehr benötigt.
Wir haben die libexif-API mit Doxygen dokumentiert und stellen die Ergebnisse unter http://libexif.sourceforge.net/api/ zur Verfügung. Die kurzen Testprogramme im Verzeichnis test zeigen, wie man gültige EXIF-Daten von Grund auf erstellt, EXIF-Daten speichert und EXIF-Daten aus dem Arbeitsspeicher lädt. Es gibt auch einige einfache Beispielprogramme im Verzeichnis contrib/examples/. Zögern Sie nicht, uns unter [email protected] zu kontaktieren, wenn Sie Fragen zur Verwendung von libexif haben. Um libexif in Ihr eigenes Paket einzubinden, empfehlen wir die Verwendung des pkgconfig-Dienstprogramms (vgl. http://www.freedesktop.org/wiki/Software/pkg-config/ Der Einfachheit halber stellt libexif sowohl libexif-uninstalled.pc bereit als auch installiert es libexif.pc.
Derzeit sind mir folgende Frontends für libexif bekannt:
Wenn Sie Ihr Programm auf libexif umstellen oder EXIF-Unterstützung hinzufügen möchten, zögern Sie nicht, die Autoren zu kontaktieren.
Mir sind folgende Bibliotheken bekannt, die libexif verwenden oder von libexif inspiriert wurden:
Es hängt stark von Ihrer Umgebung ab, was Sie tun müssen, um libexif zu erstellen. Das Erstellen aus dem Quell-Tarball umfasst normalerweise die folgenden Befehle:
./configure make sudo make install
Beim Erstellen aus dem Quellcode außerhalb von CVS ist etwa Folgendes erforderlich:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
Oder wahrscheinlich einfach:
autoreconf -i ./configure make
Neben den Standardargumenten akzeptiert configure einige spezifische für libexif:
--disable-docs Zum Deaktivieren der Dokumentationserstellung --enable-internal-docs Interne Codedokumentation erstellen, falls Doxygen verfügbar --enable-ship-binaries Windows-DLLs in 'make dist' aufnehmen
Bestimmte spezialisierte Anwendungen können die Größe der libexif-Binärdatei reduzieren, indem sie eines oder beide der folgenden Makros in der Umgebungsvariablen CPPFLAGS zum Zeitpunkt der Konfiguration setzen. Jedes Makro entfernt bestimmte Arten von Textzeichenfolgen und Konstanten aus der Binärdatei. Anwendungen, die auf bestimmte, bekannte EXIF-Tags zugreifen müssen und im Voraus die Bedeutung ihrer Daten kennen, benötigen diese Zeichenfolgen nicht und können durch deren Entfernung erheblich Platz sparen.
-DNO_VERBOSE_TAG_STRINGS Namen und Beschreibungen von EXIF-Tags, Debug-Meldungen, obligatorische EXIF-Felder (deaktiviert die automatische Tag-Korrektur) -DNO_VERBOSE_TAG_DATA Namen von aufgezählten Tag-Dateninhalten
Die libexif-Übersetzungen werden von Freiwilligen in Eigenregie erstellt, entweder direkt im libexif-Projekt oder über eine von zwei Übersetzungskoordinationsseiten, das Translation Project http://translationproject.org/domain/libexif.html und Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Alle Aktualisierungen der Sprachübersetzungen, die vom Translation Project koordiniert werden, müssen über deren Website erfolgen, aber alle anderen Sprachen können entweder über Launchpad (bevorzugt) oder durch direkte Zusendung von Aktualisierungen an die Mailingliste der libexif-Entwickler aktualisiert werden. Zum Zeitpunkt der Erstellung dieses Textes müssen die folgenden Sprachen über das Translation Project aktualisiert werden: cs da de es fr it ja nl pl sk sv uk vi
Wenn Sie daran interessiert sind, libexif in eine neue Sprache zu übersetzen, empfehlen wir Ihnen, sich einer der oben genannten Übersetzungsgruppen anzuschließen und die von ihnen entwickelten Systeme zu nutzen, die Ihnen helfen sollen. Ein Übersetzungs-Haftungsausschluss ist für libexif beim Translation Project NICHT erforderlich; durch die Erstellung einer Übersetzung stimmen Sie implizit zu, diese unter denselben Lizenzbedingungen wie der Rest von libexif (LGPL) bereitzustellen.
libexif wurde ursprünglich von Curtis Galloway [email protected] geschrieben. Da das ursprüngliche Design das Bearbeiten und Speichern nicht unterstützte, schrieb Lutz Mueller [email protected] libexif von Grund auf neu. Seitdem haben viele weitere Personen zu libexif beigetragen.
Einige Links, die Sie sich ansehen sollten, wenn Sie an weiteren Informationen zu EXIF interessiert sind.