================================================================ EXIF Forensics Tool -- Credits, Licenses and Acknowledgements (c) 2026 Eric Bernstein - midgardmud.de/tools/exif/ ================================================================ This tool is closed-source but source-readable: every JavaScript file served to your browser can be inspected with View Source -- no minification, no obfuscation. The tool itself is free to use. It uses third-party open-source components and is built on top of publicly documented format specifications and published research. This file lists every external contribution. ---------------------------------------------------------------- 1. Third-party open-source runtime components ---------------------------------------------------------------- libheif Purpose: HEIC / HEIF image decoder (WebAssembly bundle) Files: libheif-bundle.mjs License: LGPL-3.0 Source: https://github.com/strukturag/libheif Notice: Used as a runtime dependency, not modified. Users may replace the libheif-bundle.mjs file with their own build of libheif as long as the JS API surface stays compatible. License text: https://www.gnu.org/licenses/lgpl-3.0.txt Leaflet Purpose: Map rendering (used only after explicit user consent for GPS-coordinate visualisation) Files: leaflet.js, leaflet.css, images/marker-*.png, images/layers*.png License: BSD-2-Clause Source: https://leafletjs.com/ Copyright: (c) 2010-2024, Volodymyr Agafonkin (c) 2010-2011, CloudMade Notice: Used as a runtime dependency, not modified. License text: https://github.com/Leaflet/Leaflet/blob/main/LICENSE Inter typeface Purpose: UI typography License: SIL Open Font License (OFL) 1.1 Source: https://rsms.me/inter/ Notice: Used unmodified as web font. License text: https://scripts.sil.org/OFL ---------------------------------------------------------------- 2. Forensic methods -- published research ---------------------------------------------------------------- Hany Farid (2009) "Exposing Digital Forgeries from JPEG Ghosts" IEEE Transactions on Information Forensics and Security Implemented in: computeJpegGhost() and the Thumbnail-Mismatch detector. Not copied -- implemented from the paper's algorithmic description. Hany Farid (2007) "Reverse Engineering Adobe Photoshop's Quality Levels" Implemented in: PSD_SFW_LUMA constant and matchPhotoshopSFW() function -- the 12 published Photoshop "Save for Web" quantization tables, used for compression fingerprinting. Standard CFA / Bayer-pattern analysis Implemented in: computeNoiseAndCFA() -- based on widely published methods for sensor-pattern detection. ---------------------------------------------------------------- 3. Format specifications used (read, not copied) ---------------------------------------------------------------- TIFF 6.0 Adobe (1992) -- public EXIF 2.32 JEITA / CIPA -- public PNG / iCCP / eXIf / iTXt W3C / ISO 15948 -- public WebP / VP8X / EXIF chunk Google -- public GIF89a CompuServe (1989) -- public Matroska / EBML IETF RFC 8794 -- public ISO Base Media File Format ISO/IEC 14496-12 -- public ID3v2.3 / ID3v2.4 id3.org -- public FLAC / Vorbis comment Xiph.org -- public Ogg / Ogg Opus IETF RFC 3533 / RFC 7845 -- public RIFF / AVI / WAV Microsoft / IBM -- public ECMA-376 (DOCX/XLSX/PPTX) ECMA / ISO 29500 -- public PDF 1.7 / 2.0 ISO 32000-1 / ISO 32000-2-- public ICC profile v2 / v4 International Color Consortium Reading and implementing a published format spec is a normal, intended use of that spec. ---------------------------------------------------------------- 4. Demo image ---------------------------------------------------------------- File: demo.jpg Based on: "Cat03.jpg" by Alvesgaspar https://commons.wikimedia.org/wiki/File:Cat03.jpg License: CC-BY-SA 3.0 Notes: The cat was NOT actually photographed at the Brandenburg Gate. The GPS coordinates (52.5163deg N, 13.3777deg E) were synthetically added to demonstrate how location data can leak through EXIF. ---------------------------------------------------------------- 5. The tool's own code ---------------------------------------------------------------- (c) 2026 Eric Bernstein. All rights reserved. The JavaScript and CSS files of this tool (exif-tool.js, exif-worker.js, service-worker.js, i18n.js, style.css and the page templates) are the intellectual property of Eric Bernstein. No part of this code may be reproduced or transmitted in any form without prior written permission. Source-readable for transparency and verification of privacy claims -- not licensed for redistribution. ---------------------------------------------------------------- 6. AI assistance disclosure and authorship statement ---------------------------------------------------------------- ==== ENGLISH ==== 6.1 Use of AI tools This software was developed with the assistance of AI-based coding tools (primarily Anthropic's Claude) used under human direction and supervision. Architecture, feature selection, edge-case handling, format-spec interpretation, UX decisions, debugging and final review were performed by the author. The AI was the typing assistant; the human is the architect. 6.2 Human contribution and creative control Substantial portions of the source code, as well as the conception, design, structure and essential implementation decisions of the software, were created and determined by the author. AI systems were used as supporting tools to assist in generating, refining and implementing code based on the author's instructions and specifications. To the best of the author's knowledge, the AI systems used did not autonomously determine the overall design, purpose or essential creative characteristics of the software. 6.3 Legal basis -- German Copyright Act Under the German Copyright Act (Urheberrechtsgesetz), copyright protection subsists only in human intellectual creations that qualify as a personal intellectual creation ("persoenliche geistige Schoepfung") within the meaning of sect. 2 (2) UrhG. 6.4 Selection, arrangement and structure In assessing the authorship of the software, particular weight is given to the human contribution in the selection, arrangement and structuring of its elements. In this respect, the author has determined: - the overall architecture of the software, - its modular structure, - the selection of features and forensic methods, - the functional logic and the user-facing flow, - the integration and adaptation of individual components (third-party libraries, format parsers, UI patterns), - the iterative refinement of the codebase, and - the edge-case behaviour relevant for security, privacy and data integrity. These elements, taken together, reflect the author's own intellectual creation and support the view that the software, as a whole, constitutes a personal intellectual creation within the meaning of the Urheberrechtsgesetz. 6.5 Assertion of authorship Insofar as the software, in whole or in part, constitutes a protectable work, such protection is based on the author's own intellectual and creative contributions, including substantial portions of the code authored by him personally. Accordingly, Eric Bernstein asserts to be the author (Urheber) of the software to the extent permitted by applicable law. ==== DEUTSCH ==== 6.1 Einsatz von KI-Werkzeugen Diese Software wurde unter Verwendung KI-basierter Coding- Werkzeuge (primaer Anthropic's Claude) unter menschlicher Leitung und Aufsicht entwickelt. Architektur, Feature- Auswahl, Edge-Case-Behandlung, Interpretation der Format- Spezifikationen, UX-Entscheidungen, Debugging und finale Pruefung wurden vom Autor durchgefuehrt. Die KI war die Tipp-Hilfe; der Mensch ist der Architekt. 6.2 Schoepferischer Beitrag und Kontrolle des Menschen Wesentliche Teile des Quellcodes sowie Konzeption, Entwurf, Struktur und die wesentlichen Implementierungs-Entschei- dungen der Software wurden vom Autor selbst geschaffen und festgelegt. KI-Systeme dienten als unterstuetzende Werkzeuge zur Erzeugung, Verfeinerung und Umsetzung von Code auf Grundlage der Anweisungen und Spezifikationen des Autors. Nach bestem Wissen des Autors haben die eingesetzten KI- Systeme weder den Gesamtentwurf, den Zweck noch die wesentlichen schoepferischen Merkmale der Software autonom bestimmt. 6.3 Rechtsgrundlage -- Urheberrechtsgesetz Nach dem deutschen Urheberrechtsgesetz entsteht Urheber- rechtsschutz nur an menschlichen Geistesschoepfungen, die eine persoenliche geistige Schoepfung im Sinne des Paragraph 2 Absatz 2 UrhG darstellen. 6.4 Auswahl, Anordnung und Strukturierung Bei der Beurteilung der Urheberschaft an dieser Software kommt dem menschlichen Beitrag in Auswahl, Anordnung und Strukturierung ihrer Elemente besonderes Gewicht zu. Insoweit hat der Autor festgelegt: - die Gesamt-Architektur der Software, - ihren modularen Aufbau, - die Auswahl der Funktionen und Forensik-Methoden, - die funktionale Logik und den Anwender-Ablauf, - die Integration und Anpassung einzelner Komponenten (Drittanbieter-Bibliotheken, Format-Parser, UI-Muster), - die iterative Verfeinerung des Codes sowie - das Verhalten in Randfaellen, soweit relevant fuer Sicherheit, Datenschutz und Datenintegritaet. Diese Elemente bilden in ihrer Gesamtheit die eigene geistige Schoepfung des Autors und tragen die Auffassung, dass die Software insgesamt eine persoenliche geistige Schoepfung im Sinne des Urheberrechtsgesetzes darstellt. 6.5 Geltendmachung der Urheberschaft Soweit die Software in ihrer Gesamtheit oder in Teilen ein schutzfaehiges Werk darstellt, beruht dieser Schutz auf den eigenen geistigen und schoepferischen Beitraegen des Autors, einschliesslich wesentlicher von ihm persoenlich verfasster Code-Anteile. Eric Bernstein macht hiermit die Urheberschaft an dieser Software (Urheber im Sinne des UrhG) in dem Umfang geltend, in dem dies nach geltendem Recht moeglich ist. ---------------------------------------------------------------- Contact ---------------------------------------------------------------- Tool: https://midgardmud.de/tools/exif/ Operator: Midgard MUD -- https://midgardmud.de/ Imprint: https://midgardmud.de/impressum.php Privacy: https://midgardmud.de/datenschutz.php If you are a copyright holder and believe this credits file is inaccurate or incomplete with regard to your work, please contact the operator and we will correct it. ================================================================