{"id":19599263,"url":"https://github.com/impulseadventure/jpegsnoop","last_synced_at":"2025-04-04T20:10:08.786Z","repository":{"id":38417972,"uuid":"89858915","full_name":"ImpulseAdventure/JPEGsnoop","owner":"ImpulseAdventure","description":"JPEGsnoop: JPEG decoder and detailed analysis","archived":false,"fork":false,"pushed_at":"2023-08-09T22:23:17.000Z","size":2856,"stargazers_count":558,"open_issues_count":49,"forks_count":90,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-03-28T19:07:27.472Z","etag":null,"topics":["c","corrupt","decoder","huffman","image","jpeg","jpeg-decoder","jpg","mfc","parser","psd","repair"],"latest_commit_sha":null,"homepage":"http://www.impulseadventure.com/photo/jpeg-snoop.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ImpulseAdventure.png","metadata":{"files":{"readme":"README-FILES.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-30T15:25:25.000Z","updated_at":"2025-03-25T15:05:10.000Z","dependencies_parsed_at":"2025-01-11T22:11:14.278Z","dependency_job_id":"0ead83e6-1a01-41e2-b519-0544c67ac1ab","html_url":"https://github.com/ImpulseAdventure/JPEGsnoop","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImpulseAdventure%2FJPEGsnoop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImpulseAdventure%2FJPEGsnoop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImpulseAdventure%2FJPEGsnoop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImpulseAdventure%2FJPEGsnoop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ImpulseAdventure","download_url":"https://codeload.github.com/ImpulseAdventure/JPEGsnoop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247242678,"owners_count":20907134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","corrupt","decoder","huffman","image","jpeg","jpeg-decoder","jpg","mfc","parser","psd","repair"],"created_at":"2024-11-11T09:09:33.300Z","updated_at":"2025-04-04T20:10:08.770Z","avatar_url":"https://github.com/ImpulseAdventure.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"===============================================================================\r\n                             JPEGsnoop - README\r\n                               by Calvin Hass\r\n            http://www.impulseadventure.com/photo/jpeg-snoop.html\r\n===============================================================================\r\n\r\nJPEGsnoop is a JPEG decoding and analysis utility written for Windows.\r\nIt reports all metadata contained within an image in addition to\r\nthe unique compression signatures that can be used to identify edited images.\r\n\r\nJPEGsnoop is a portable application that does not require installation.\r\n\r\n\r\nContents:\r\n1) Files\r\n2) Acknowledgements\r\n\r\n\r\n-------------------\r\n1) FILES\r\n-------------------\r\n\r\nJPEGsnoop is written in Microsoft Visual Studio 2012 Pro (C++) using MFC.\r\n\r\nThe project is a SDI (Single Document Interface) with Document-View architecture.\r\n\r\n\r\nFiles are arranged as follows:\r\n\r\n\r\nMFC User Interface\r\n------------------\r\n  JPEGsnoopDoc.*\t\t- SDI Document class.\r\n  JPEGsnoopView.*\t\t- SDI View class (for top split window / textual output)\r\n  JPEGsnoopViewImg.*\t- SDI View class (for bottom split window / image output)\r\n  MainFrm.*\t\t\t\t- SDI Frame class. Contains status bar, toolbar and\r\n                          code to support the splitter window.\r\n\r\nGlobal Definitions\r\n------------------\r\n  snoop.h\t\t\t\t- Global defines and debugging options. Primarily\r\n\t\t\t\t\t\t  used to denote current release version number.\r\n\r\nApplication\r\n-----------\r\n  CntrItem.*\t\t\t- OLE container / RichEdit class\r\n  DbSigs.*\t\t\t\t- Compression signature database class\r\n! Dib.*\t\t\t\t\t- DIB (Bitmap) class\r\n  DocLog.*\t\t\t\t- Document logging helper routines\r\n  FileTiff.*\t\t\t- TIFF export routines\r\n  General.*\r\n! HyperlinkStatic.*\t\t- Hyperlink class for dialog box static controls\r\n  ImgDecode.*\t\t\t- Image Decoder (for Scan segment)\r\n  JfifDecode.*\t\t\t- JFIF Parser\r\n  JPEGsnoop.*\r\n! Md5.*\t\t\t\t\t- MD5 hash routines, used for compression signature\r\n! Registry.*\t\t\t- Windows Registry class \r\n  SnoopConfig.*\t\t\t- Application configuration class\r\n  stdafx.*\t\t\t\t- Windows precompiled headers (auto-created)\r\n! UrlString.*\t\t\t- URL En/Decoding class\r\n  WindowBuf.*\t\t\t- File buffer / cache routines\r\n\r\nUNUSED:\r\n! CmdLine.*\t\t\t\t- Command-line processing\r\n! OperationDlg.*\t\t- Progress dialog with cancel\r\n\r\n\r\nNOTE: Files marked with \"!\" denote classes that have reused code from \r\n      other authors. Please see the acknowledgements section.\r\n      \r\n\r\nSupporting Dialog Boxes\r\n-----------------------\r\n  AboutDlg.*\t\t\t- About dialog. Indicates version number and link to\r\n\t\t\t\t\t\t  website with updated releases.\r\n  DbManageDlg.*\t\t\t- Local signature database management dialog. This\r\n\t\t\t\t\t\t  dialog allows the user to view and delete the compression\r\n\t\t\t\t\t\t  signatures that have been saved locally.\r\n  DbSubmitDlg.*\t\t\t- Signature database submit dialog. This dialog provides an\r\n\t\t\t\t\t\t  opportunity for the user to describe a few characteristics\r\n\t\t\t\t\t\t  of the image signature that will be sent to the database.\r\n  DecodeDetailDlg.*\t\t- Detailed decode dialog. Asks the user for a starting MCU\r\n\t\t\t\t\t\t  coordinate and length to begin detailed decoding.\r\n  ExportDlg.*\t\t\t- Export JPEG dialog. Provides a few options in the JPEG\r\n\t\t\t\t\t\t  export process.\r\n  ExportTiffDlg.*\t\t- Export TIFF dialog. Provides a few options in the TIFF\r\n\t\t\t\t\t\t  export process.\r\n  FolderDlg.*\t\t\t- Generic folder select dialog.\r\n  LookupDlg.*\t\t\t- Lookup file offset from MCU dialog. User inputs MCU coordinate\r\n\t\t\t\t\t\t  and lookup returns file offset within scan segment.\r\n  ModelessDlg.*\t\t\t- Generic modeless dialog.\r\n  NoteDlg.*\t\t\t\t- Generic note dialog. This dialog is used to inform the\r\n\t\t\t\t\t\t  user of runtime messages or warnings.\r\n  OffsetDlg.*\t\t\t- File offset dialog. Provides the user with the ability to\r\n\t\t\t\t\t\t  specify a starting file offset for parsing/decoding.\r\n  OperationDlg.*\t\t- Progress dialog for lengthy operations.\r\n  OverlayBufDlg.*\t\t- File overlay dialog. This dialog presents the user with\r\n\t\t\t\t\t\t  the current hex values at a specific position within the file\r\n\t\t\t\t\t\t  and provides the user with the ability to overwrite one or\r\n\t\t\t\t\t\t  more bytes with new hex values.\r\n  SettingsDlg.*\t\t\t- Configuration settings dialog. Provides all major configuration\r\n\t\t\t\t\t\t  options to the user. The settings are saved in the registry.\r\n  TermsDlg.*\t\t\t- Terms and conditions dialog. The dialog presents the user with\r\n\t\t\t\t\t\t  the EULA and records whether the user accepted it.\r\n  UpdateAvailDlg.*\t\t- Release update available dialog. Informs the user of the\r\n\t\t\t\t\t\t  existence of a newer version of JPEGsnoop and offers the\r\n\t\t\t\t\t\t  option of launching a browser window to download the latest\r\n\t\t\t\t\t\t  version.\r\n\r\n\r\nCompression Signature Database\r\n------------------------------\r\n  Signatures.inl\t\t- The current built-in compression signatures database.\r\n\t\t\t\t\t\t  This file is currently generated from a PHP script\r\n\t\t\t\t\t\t  residing on the ImpulseAdventure.com website that\r\n\t\t\t\t\t\t  fetches the latest compression signatures from a\r\n\t\t\t\t\t\t  MySQL database.\r\n\r\n\r\n\r\n-------------------\r\n2) ACKNOWLEDGEMENTS\r\n-------------------\r\n\r\nI am very grateful to the following authors whose classes or concepts I have reused in\r\nthe development of JPEGsnoop.\r\n\r\n  FolderDlg.cpp\r\n  - MSDN Magazine\r\n\r\n  Dib.cpp\r\n  - MSDN?\r\n\r\n  HyperlinkStatic.cpp\r\n  - http://www.codeguru.com/cpp/controls/staticctrl/article.php/c5801\r\n  - Franz Wong (http://www.codeguru.com/member.php/2259/)\r\n\r\n  MD5.cpp\r\n  - By RSA\r\n\r\n  Registry.cpp\r\n  - http://www.codeproject.com/KB/system/registryvars.aspx\r\n  - Steve King\r\n  - License: CPOL \"Code Project Open License\" http://www.codeproject.com/info/cpol10.aspx\r\n\r\n  UrlString.cpp\r\n  - Stephane Erhardt\r\n  - http://www.codeguru.com/cpp/cpp/cpp_mfc/comments.php/c4029/?thread=9533\r\n\r\nI also would like to give a special mention to Phil Harvey, the author of the\r\ncomprehensive ExifTool (http://www.sno.phy.queensu.ca/~phil/exiftool/). His work\r\nin collating and documenting the vast set of EXIF tags has been incredibly helpful.\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimpulseadventure%2Fjpegsnoop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimpulseadventure%2Fjpegsnoop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimpulseadventure%2Fjpegsnoop/lists"}