
C 기반 라이브러리로, JPEG 이미지에서 EXIF 메타데이터를 파싱, 편집 및 저장하며, Android 10에서 CVE-2016-6328을 악용하는 데 중점을 둡니다.
libexif -------
libexif는 EXIF 데이터를 구문 분석, 편집 및 저장하기 위한 라이브러리입니다. 이는 명령줄 유틸리티 및 GUI 프로그램에서 중복된 구현을 대체하기 위한 것입니다.
libexif는 EXIF 데이터의 구문 분석, 편집 및 저장을 지원합니다. 또한 gettext를 지원합니다. EXIF 표준 2.1에 설명된 모든 EXIF 태그(2.2의 대부분 포함)가 지원됩니다. Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax 및 Sanyo 카메라의 많은 제조사 노트도 지원됩니다.
libexif는 순수 C로 작성되었으며 추가 라이브러리가 필요하지 않습니다. 가능한 경우 GNU gettext가 언어 번역에 사용됩니다.
libexif는 일부 제조사 노트만 처리할 수 있으며, 그것들도 완벽하게 처리하지 못합니다. 더 많은 작업이 필요합니다. libmnote는 libexif에 병합되었으므로 더 이상 필요하지 않습니다.
libexif API는 doxygen을 사용하여 문서화되었으며 결과는 http://libexif.sourceforge.net/api/ 에서 확인할 수 있습니다.
test 디렉토리의 간단한 테스트 프로그램은 처음부터 유효한 EXIF 데이터를 생성하는 방법, EXIF 데이터를 저장하는 방법 및 메모리에서 EXIF 데이터를 로드하는 방법을 보여줍니다. contrib/examples/ 디렉토리에도 몇 가지 간단한 예제 프로그램이 있습니다. libexif 사용 방법에 대한 질문이 있으면 [email protected]으로 연락 주시기 바랍니다.
자체 패키지에 libexif를 링크하려면 pkgconfig 유틸리티를 사용하는 것이 좋습니다 (참조: http://www.freedesktop.org/wiki/Software/pkg-config/ 편의를 위해 libexif는 libexif-uninstalled.pc와 libexif.pc를 모두 제공하고 설치합니다.
현재 libexif의 프론트엔드는 다음과 같습니다:
프로그램을 libexif로 마이그레이션하거나 EXIF 지원을 추가하려면 저자에게 연락 주시기 바랍니다.
libexif를 사용하거나 영감을 받은 라이브러리는 다음과 같습니다:
libexif를 빌드하려면 환경에 따라 다릅니다. 소스 타르볼에서 빌드하는 경우 일반적으로 다음 명령이 필요합니다:
./configure make sudo make install
CVS에서 소스를 빌드할 때는 다음과 같은 과정이 필요할 수 있습니다:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
또는 다음과 같이 간단히 할 수도 있습니다:
autoreconf -i ./configure make
표준 인수 외에도 configure는 libexif에 특화된 몇 가지 인수를 받습니다:
--disable-docs 문서 생성을 비활성화하려면 --enable-internal-docs Doxygen이 가능한 경우 내부 코드 문서를 빌드 --enable-ship-binaries 'make dist'에 Windows DLL을 포함하려면
특정 전문화된 응용 프로그램은 configure 시점에 CPPFLAGS 환경 변수에서 다음 매크로 중 하나 또는 둘 다를 설정하여 libexif 바이너리 크기를 줄일 수 있습니다. 각 매크로는 바이너리에서 특정 종류의 텍스트 문자열과 상수를 제거합니다. 특정 알려진 EXIF 태그에 액세스하고 데이터의 의미를 미리 알고 있는 응용 프로그램은 이러한 문자열이 필요하지 않으며, 이를 제거하여 상당한 공간을 절약할 수 있습니다.
-DNO_VERBOSE_TAG_STRINGS EXIF 태그의 이름 및 설명, 디버그 메시지, 필수 EXIF 필드 (자동 태그 수정 비활성화) -DNO_VERBOSE_TAG_DATA 열거형 태그 데이터 내용의 이름
libexif 번역은 자원 봉사자들이 직접 libexif 프로젝트와 협력하거나 두 번역 조정 사이트 중 하나인 Translation Project http://translationproject.org/domain/libexif.html 및 Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12를 통해 이루어집니다. Translation Project에서 조정하는 언어 번역에 대한 업데이트는 해당 웹 사이트를 통해서만 이루어져야 하지만, 다른 모든 언어는 Launchpad(권장)를 통해 또는 업데이트를 libexif 개발자 메일링 리스트로 직접 보내 업데이트할 수 있습니다. 현재 작성 시점에서 다음 언어는 Translation Project를 통해 업데이트해야 합니다: cs da de es fr it ja nl pl sk sv uk vi
새로운 언어로 libexif를 번역하는 데 관심이 있다면 위의 번역 그룹 중 하나에 가입하여 구축된 시스템을 활용하는 것이 좋습니다. Translation Project에서 libexif에 대한 번역 부인은 필요하지 않습니다. 번역을 제공함으로써 귀하는 다른 libexif와 동일한 라이선스 조건(LGPL)에 따라 제공하는 데 암묵적으로 동의하는 것입니다.
libexif는 원래 Curtis Galloway [email protected]에 의해 작성되었습니다. 원래 설계가 편집 및 저장을 지원하지 않았기 때문에 Lutz Mueller [email protected]가 libexif를 처음부터 다시 작성했습니다. 그 이후로 더 많은 사람들이 libexif에 기여했습니다.
EXIF에 대한 추가 정보를 원한다면 확인해볼 만한 링크입니다.