Hide file inside a JPEG image


Recommended Posts

This guide will teach you how to hide files inside JPEG images using a program called JPHS for Windows. The program can be downloaded here:

http://linux01.gwdg.de/~alatham/stego.html

I've tested and verified JPHS works on Windows XP SP3 and Windows 7 beta. I haven't tested it on Vista, but it probably works.

The program is over 9 years old, so it's interface is not the best. There are a few reasons why I chose to use this one though:

  • It allows you to hide files inside of JPEG images. Not all of us use BMP or PNG, and those are obvious targets for steganography anyways.
  • It modifies the color of the pixels in the image in a way that is very hard to detect. Most steganography tools will simply append to the JPEG file, or modify unused bits, methods which are very easy to detect.
  • Because JPEG files are lossy, it gives reasonable doubt whether noise is caused by the JPEG format or steganography.
  • The program uses Blowfish encryption. This program was written before AES was available, but Blowfish is still a secure encryption algorithm.

There are some precautions you should take:

  • Don't use images with solid colors, such as a large blue sky. This can make it easy to detect embedded files, as I'll demonstrate later in this guide.
  • Based upon my own tests, this program will not preserve JPEG meta data, created / modified times, or any data appended to the JPEG file.
  • Never modify a JPEG image that contains a hidden file. Doing so will most likely mean you'll lose the hidden file.
  • Never try to hide a file in a JPEG image that already contains a hidden file. Doing so will cause you to lose the hidden file already in the JPEG.
  • Delete the original picture after you hide a file in it. It may be possible to detect a hidden file if there are two versions of the same picture available to compare.
  • The program is portable, so if possible, store it on removable media. Having steganography software on your computer makes it pretty obvious you might be hiding data.

To get started, download the file from the URL above. There are three EXEs in the archive:

jphide.exe and jpseek.exe are command-line based.

Jphswin.exe is the one I'll be showing you how to use in this guide because it has a GUI.

The first thing you'll see is the user agreement. Read it if you want, and then click "Yes, I accept these terms".

post-57213-1231104155.png

First, you have to choose the JPEG image you want to use to hide a file, otherwise known as the "carrier". On the file menu, click "Open jpeg".

The larger the JPEG file is, the more data you can hide inside of it.

Try to choose a JPEG image with a lot of detail. Avoid images with a lot of solid color, such as a cloudless sky, as this may make it possible to detect a hidden file.

post-57213-1231104119.png

In the window, you should see two values:

Approximate max capacity is an estimate of the largest file this image can hold. This is only an estimate and the limit may be smaller than what this value says.

Recommended limit is a recommendation for the maximum file size you should store in this image. The smaller the file is, the harder it is to detect. Going above the recommended limit may mean it's possible to detect a hidden file.

On the file menu, click "Hide" to choose a file you want to hide in the JPEG image.

post-57213-1231104570.png

First, the program will ask for a password. This password will be required to extract the hidden file later on.

post-57213-1231104552.png

After you type your password, you can browse for the file you want to hide.

If the file is too large, the program will warn you. Convenient! :)

Now that you've chosen your JPEG image and the file you want hidden, you can save the modified JPEG image.

Save jpeg will overwrite the original JPEG image with the new one. Probably best not to use this, just to be safe.

Save jpeg as will allow you to save the new JPEG to a separate file.

post-57213-1231105154.png

After you're done, the program should look something like this.

The new JPEG file may come out bigger or smaller, this is not an issue.

post-57213-1231105324.png

How to Extract Files

Now that you know how to hide files, you need to know how to extract them.

Start off by clicking Open jpeg on the file menu.

Browse for the JPEG image with the hidden file in it.

Then click Seek on the file menu.

The program will ask for a password. Type in the same password you used when hiding the file.

Then you can choose where to extract the file to. Unfortunately, the program doesn't save the original file name. You'll have to manually type the file name and file extension.

post-57213-1231105912.png

At this point, if you typed in the wrong password, or if the JPEG image simply doesn't contain a hidden file, the program will say "Passphrase wrong". If this happens, simply click Seek to attempt to extract the file again.

When you successfully extract a file, the program should look something like this:

post-57213-1231106043.png

This was my own test. The file was extracted correctly.

post-57213-1231106224.png

To demonstrate my point earlier, you should not use images with large amounts of the same color. I decided to hide a file in a picture with a large blue sky. This is the picture I used (resized, the original is 1600x1200).

post-57213-1231106341.jpg

This is what happens, before hiding a file and after hiding a file.

You can easily see the noise in the right picture caused by the steganography.

So use large, detailed pictures!

post-57213-1231106402.png post-57213-1231106408.png

This is my first guide on Neowin. Hope some of you find it useful :)

Edited by Xinok
Link to comment
https://www.neowin.net/forum/topic/717378-hide-file-inside-a-jpeg-image/
Share on other sites

Alternatively, you can use a much simpler method of attaching a .rar file to a .jpg as follows:

windows: copy /b input.jpg + input.rar ouput.jpg

linux: cat pic.jpg file.rar > result.jpg

He already thought of that:

It modifies the color of the pixels in the image in a way that is very hard to detect. Most steganography tools will simply append to the JPEG file, or modify unused bits, methods which are very easy to detect.

Steganography is a security by obscurity approach to hiding data; whereas cryptography is a encrypted data source which does not masquerade as another data format. So rather you use steganography analysis to detect common methods of implanting hidden data into a image file, or simply append an encrypted .rar to a .jpg, your primary goal is obscurity of the information.

Steganography is a security by obscurity approach to hiding data; whereas cryptography is a encrypted data source which does not masquerade as another data format. So rather you use steganography analysis to detect common methods of implanting hidden data into a image file, or simply append an encrypted .rar to a .jpg, your primary goal is obscurity of the information.

So then the reason to do this would be to hide a file such as a virus in a JPEG image. Hmmm. No thanks, I don't need to know this.

So then the reason to do this would be to hide a file such as a virus in a JPEG image. Hmmm. No thanks, I don't need to know this.

Well the hidden information would not be executable. Any virus would have to be manually extracted and run by the user, so this scenario would be unlikely. Hiding content in image files is seen on Internet image boards and newsgroups; typical scenarios I have seen recently are embedding a .rar picture set into a single image from the set, or embedding an ebook into an image of the book cover.

Well the hidden information would not be executable. Any virus would have to be manually extracted and run by the user, so this scenario would be unlikely. Hiding content in image files is seen on Internet image boards and newsgroups; typical scenarios I have seen recently are embedding a .rar picture set into a single image from the set, or embedding an ebook into an image of the book cover.

Ok, but how do you view the files that are hidden inside then? :)

Steganography Revealed

Kristy Westphal 2003-04-09

Over the past couple of years, steganography has been the source of a lot of discussion, particularly as it was suspected that terrorists connected with the September 11 attacks might have used it for covert communications. While no such connection has been proven, the concern points out the effectiveness of steganography as a means of obscuring data. Indeed, along with encryption, steganography is one of the fundamental ways by which data can be kept confidential. This article will offer a brief introductory discussion of steganography: what it is, how it can be used, and the true implications it can have on information security.

What is Steganography?

While we are discussing it in terms of computer security, steganography is really nothing new, as it has been around since the times of ancient Rome. For example, in ancient Rome and Greece, text was traditionally written on wax that was poured on top of stone tablets. If the sender of the information wanted to obscure the message - for purposes of military intelligence, for instance - they would use steganography: the wax would be scraped off and the message would be inscribed or written directly on the tablet, wax would then be poured on top of the message, thereby obscuring not just its meaning but its very existence[1].

According to Dictionary.com, steganography (also known as "steg" or "stego") is "the art of writing in cipher, or in characters, which are not intelligible except to persons who have the key; cryptography" [2]. In computer terms, steganography has evolved into the practice of hiding a message within a larger one in such a way that others cannot discern the presence or contents of the hidden message[3]. In contemporary terms, steganography has evolved into a digital strategy of hiding a file in some form of multimedia, such as an image, an audio file (like a .wav or mp3) or even a video file.

What is Steganography Used for?

Like many security tools, steganography can be used for a variety of reasons, some good, some not so good. Legitimate purposes can include things like watermarking images for reasons such as copyright protection. Digital watermarks (also known as fingerprinting, significant especially in copyrighting material) are similar to steganography in that they are overlaid in files, which appear to be part of the original file and are thus not easily detectable by the average person. Steganography can also be used as a way to make a substitute for a one-way hash value (where you take a variable length input and create a static length output string to verify that no changes have been made to the original variable length input)[4]. Further, steganography can be used to tag notes to online images (like post-it notes attached to paper files). Finally, steganography can be used to maintain the confidentiality of valuable information, to protect the data from possible sabotage, theft, or unauthorized viewing[5].

Unfortunately, steganography can also be used for illegitimate reasons. For instance, if someone was trying to steal data, they could conceal it in another file or files and send it out in an innocent looking email or file transfer. Furthermore, a person with a hobby of saving pornography, or worse, to their hard drive, may choose to hide the evidence through the use of steganography. And, as was pointed out in the concern for terroristic purposes, it can be used as a means of covert communication. Of course, this can be both a legitimate and an illegitimate application.

http://www.securityfocus.com/infocus/1684

This is quite clever. But it is no different than many other programs that can be used for both legal and illegal activities. Take bittorent as a perfect example. Ultimately, it requires the users discretion to use the program for the ethically accepted purposes and also take the necessary precautions to protect them from harmful files when on the receiving end.

How do we get this hidden information out of it? ME WANTS TO KNOW!!!!!!!!!!!
My guide has instructions on how to extract hidden files using the same program. You might have overlooked it the first time, so I added a large caption "How to Extract Files".

As for all steganography programs in general, every program has it's own methods and algorithms for hiding data, so you'll have to use the same program to extract the data that was used to hide it. You may also need a password if the hidden data is encrypted.

If a RAR archive was appended to another file, I think WinRAR is capable of finding the header and extracting the files directly without the need to separate it from the image file first.

so... it got me thinking

are there any image editing programs which can save to jpeg or other lossy formats, which have some kind of undisclosed feature that inserts some kind of 'tag' in every image it saves? for example a non-free program might tag its pictures with the license key of the user, or something.... so unless the image was manipulated before it got posted on the internet, it can be traced to one person...

so... it got me thinking

are there any image editing programs which can save to jpeg or other lossy formats, which have some kind of undisclosed feature that inserts some kind of 'tag' in every image it saves? for example a non-free program might tag its pictures with the license key of the user, or something.... so unless the image was manipulated before it got posted on the internet, it can be traced to one person...

Yes, they're usually called invisible watermarks. There are tools which can remove invisible watermarks, but some algorithms are very persistent and don't go away very easily. It all depends on how trustworthy you are of the software you're using.
  • 2 weeks later...
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Internet Download Manager (IDM) 6.43 Build 1 by Razvan Serea Internet Download Manager (IDM) is a tool to increase download speeds by up to 8 times due to its smart dynamic file segmentation technology. Unlike other download managers and accelerators, Internet Download Manager segments downloaded files dynamically during download process, and it reuses available connections without additional connect and login stages to achieve the best possible acceleration performance. Comprehensive error recovery and resume capability will restart broken or interrupted downloads due to lost connections, network problems, computer shutdowns, or unexpected power outages. All popular browsers are supported IDM integrates seamlessly into Google Chrome, FireFox, Microsoft Edge, Opera, Safari, Internet Explorer, Maxthon and all other popular browsers to automatically handle your downloads. You can also drag and drop files, or use Internet Download Manager from command line. The program supports proxy servers, ftp and http protocols, firewalls, redirects, cookies, authorization, MP3 audio and video content processing. IDM includes web site spider and grabber IDM downloads all required files that are specified with filters from web sites, for example all pictures from a web site, or subsets of web sites, or complete web sites for offline browsing. It's possible to schedule multiple grabber projects to run them once at a specified time, stop them at a specified time, or run periodically to synchronize changes. Easy downloading with one click When you click on a download link in a browser, IDM will take over the download and accelerate it. You don't need to do anything special, just browse the Internet as you usually do. IDM will catch your downloads and accelerate them. IDM supports HTTP, FTP, HTTPS and MMS protocols. Changes in Internet Download Manager 6.43 Build 1: Added the ability to download MP4 files from web sites where previously only TS videos were available. IDM displays both TS and MP4 file formats in its video download button. If you only need MP4 files, disable TS in IDM Options -> General tab -> Customize IDM Download panels in browsers -> Edit button. Remove TS extension on "Customize IDM Download panel in browsres" dialog Fixed video downloading problems on several popular web sites Fixed bugs Download: Internet Download Manager 6.43 Build 1 | 11.9 MB (Shareware) Links: Internet Download Manager Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • This is of course "clickbait" WTF? It is literally your example but tech based. A "clickbait" title is a sensationalized headline designed to manipulate readers into clicking a link using things like "fear" rather than delivering objective facts. A "clickbait" headline also usually provides little value compared to the hype generated. How does this headline not qualify? It's a generic often reused headline that is overly sensationalized. Oh no! "millions" can't use this app anymore. It has no basic facts like what f*cking app. You read the article and it's the Samsung VPN which no one cares about and there is a million free VPNs. How are you defending this ######? Headlines like this (and among other things) make me read Neowin much less than I used to in the past. It's trash...
    • UniGetUI 2026.2.1 by Razvan Serea UniGetUI is an application whose main goal is to create an intuitive GUI for the most common CLI package managers for Windows 10 and Windows 11, such as Winget, Scoop and Chocolatey. With UniGetUI, you'll be able to download, install, update and uninstall any software that's published on the supported package managers — and so much more. UniGetUI features Install, update and remove software from your system easily at one click: UniGetUI combines the packages from the most used package managers for windows: WinGet, Chocolatey, Scoop, Pip, Npm and .NET Tool. Discover new packages and filter them to easily find the package you want. View detailed metadata about any package before installing it. Get the direct download URL or the name of the publisher, as well as the size of the download. Easily bulk-install, update or uninstall multiple packages at once selecting multiple packages before performing an operation Automatically update packages, or be notified when updates become available. Skip versions or completely ignore updates in a per-package basis. Manage your available updates at the touch of a button from the Widgets pane or from Dev Home pane with UniGetUI Widgets. The system tray icon will also show the available updates and installed package, to efficiently update a program or remove a package from your system. Easily customize how and where packages are installed. Select different installation options and switches for each package. Install an older version or force to install a 32bit architecture. [But don't worry, those options will be saved for future updates for this package] Share packages with your friends to show them off that program you found. Here is an example: Hey @friend, Check out this program! Export custom lists of packages to then import them to another machine and install those packages with previously-specified, custom installation parameters. Setting up machines or configuring a specific software setup has never been easier. Backup your packages to a local file to easily recover your setup in a matter of seconds when migrating to a new machine Devolutions UniGetUI 2026.2.1 changelog: This release brings several quality-of-life improvements, new troubleshooting features, privacy enhancements, and a collection of fixes and stability improvements across UniGetUI. New Features Added an operation counter to provide better visibility into ongoing package operations. Added a setting to automatically redact usernames from exported logs, making it easier to share diagnostic information while protecting personal data. UniGetUI now opens the release notes page after updating by default, helping users discover new features, improvements, and fixes. This behavior can be disabled from Settings. Expanded diagnostics and troubleshooting capabilities to simplify issue reporting and support. Improvements Improved update reliability and handling of update-related edge cases. Enhanced installer behavior when updating running UniGetUI instances. Improved package manager integrations and package metadata processing. Refined various user interface elements for a more consistent experience. Updated package screenshots, icons, and bundled resources. Improved logging and error reporting throughout the application. Bug Fixes Fixed multiple issues affecting application updates and self-update workflows. Resolved several package installation and upgrade edge cases. Fixed UI inconsistencies and unexpected behaviors across different pages. Improved handling of package manager responses and failure scenarios. Addressed issues affecting package discovery and metadata retrieval. Fixed a number of stability issues reported by the community. Performance & Stability Improved overall application stability during package operations. Reduced the likelihood of update interruptions and inconsistent update states. Various reliability and performance optimizations across the codebase. Download: UniGetUI 64-bit | Portable | ~200.0 MB (Open Source) Download: UniGetUI ARM64 | Portable Links: UniGetUI Home Page | GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • PDF4QT 1.6.0.0 by Razvan Serea PDF4QT is a free and open-source application created to provide a complete solution for working with PDF documents in a simple, flexible, and effective way. It offers all the essential tools you need to handle your files: you can view PDFs with smooth navigation, edit content, annotate pages, and highlight key sections for better collaboration. It also allows you to compare two versions of a document, making it easy to spot changes. Built-in security features give you control over protecting sensitive information and managing access. Applications PDF4QT Viewer Profi: Advanced PDF browsing with encryption, digital signature verification, annotation editing, regex text search, page-to-image conversion, and plugin support. PDF4QT Viewer Lite: Lightweight viewer with essential, user-friendly PDF viewing functions. PDF4QT DocPage Organizer: Merge, split, move, clone, or add pages easily with an intuitive interface. PDF4QT DocDiff: Compare two PDFs, highlight differences page-to-page, and export results to XML. Key Features Multithreading Support for faster PDF processing Hardware Accelerated Rendering for smooth, high-quality display Encryption to secure documents Color Management to preserve accurate color profiles Optional Content Handling to control visibility of content Text Layout Analysis for better text extraction and editing Signature Validation for verifying digital signatures Annotations and Form Filling for interactivity Text-to-Speech Conversion to listen to PDFs Advanced Annotation Tools (images, text, etc.) File Attachments Management to view and save attachments Optimization to reduce file size without losing quality Command Line Tool for automation Audio Book Conversion from PDFs Internal Structure Inspector to explore PDF structure Compare Documents to detect differences Redaction to remove sensitive information Document Signing for digital authentication PDF4QT 1.6.0.0 release notes: PDF4QT 1.6.0.0 brings a major image compression and optimization update, especially for PageMaster and assembled output documents. Image compression is now integrated into the assembly/export workflow, backed by new optimizer infrastructure, UI controls, feedback fixes, and tests. This should make PageMaster much more useful for producing smaller output PDFs directly from assembled or reorganized documents. The release also contains a large PageMaster refresh with improved drag and drop, recent files, crop pages, save/restore functionality, rotation and size indicators, a reworked icon set, and faster output preview rendering. Viewer and Editor workflows were improved with wildcard Advanced Find, Enter-to-search behavior, better outline keyboard selection, startup settings, fullscreen support, side-to-side scrolling, smoother scrolling, text selection, snapping, and expanded annotation controls. Compatibility and platform behavior were improved as well, including fixes for embedded files, fonts, checkboxes, invisible text, menu colors, highlights, XMP metadata, Windows color management, AppImage packaging, MSIX generation, installer behavior, translations, and newer compiler/Qt warnings. The commit history also includes a new scan-and-edit plugin foundation and color management performance work. Changelog: Highlights Image compression for PageMaster / DocPage Organizer and assembled output documents (#92) Major PageMaster UX refresh, including drag and drop, recent files, crop pages, save/restore, icons, and output preview performance (#383, #18) Improved image optimization feedback, including final resolution and DPI updates (#384) Better Viewer and Editor navigation: fullscreen, side-to-side scrolling, smoother scrolling, text selection, snapping, and outline keyboard selection (#242, #368, #136, #321, #250, #373) Advanced Find wildcard mode and Enter-to-search behavior (#379, #378) PDF compatibility fixes for embedded files, fonts, checkboxes, invisible text, form content suppression, and Windows color management (#225, #356, #256, #230, #326, #224, #385, #388) Startup settings, custom settings directory support, Linux double-click viewer separation, and packaging/build fixes (#382, #380, #381) Scan-and-edit plugin foundation and broader translation updates from the 1.6.0.0 development cycle Resolved Issues Issue #389: Adding hyperlink to internal object in PDF Issue #388: Update Windows color management system Issue #385: PDFTextLayoutGenerator::isContentKindSuppressed(ContentKind kind) is missing ContentKind::Form Issue #384: In the "Optimize Images" dialog, the info on the final image resolution and final DPI does not update Issue #383: UX improvements for PDF4QT PageMaster tool (v1.5.3.1) (ex. DocPage Organizer) Issue #382: Startup Settings Issue #381: Separated apps for double-click viewer in Linux Issue #380: Ability to run app with custom settings directory - executable parameter with path Issue #379: Advanced Find - Wildcard Mode Issue #378: Advanced Find - Should start searching if Enter key is pressed Issue #376: Deleting a note jumps to Outline Issue #375: Not enough maximum compiled page cache Issue #373: Ctrl/Shift keyboard selection for Outline Issue #372: Option to not color images Issue #370: Extracting pages within a range Issue #369: Keeping redact box on Issue #368: Side-to-side scrolling Issue #357: Bulk delete/add/edit of page labels Issue #356: Compatibility issues - font problems Issue #354: Color blend mode for highlights Issue #352: Icon size of the sidebar Issue #349: Add inherit zoom to bookmark zoom options Issue #338: Editor toolbox higher than editor window Issue #334: Impossible to set French language Issue #326: Checkboxes don't render in PDF4QT Issue #324: Menu text not rendered with correct color Issue #321: Select text in Viewer Issue #291: Support for editing XMP metadata or exporting to PDF/UA format Issue #282: Editor outline view: always zooms to around 50% Issue #256: PDF4QT cannot show some specific fonts correctly Issue #253: Undo/redo doesn't work in "edit page content" mode Issue #250: Snapping Issue #242: Full screen Issue #234: Setting font, font size and area of text annotations Issue #230: Garbled characters when opening PDF files with PDF4QT Issue #225: PDF4QT cannot open PDF files with embedded files Issue #224: Option to remove invisible text Issue #194: Change page size Issue #160: Color | Custom (green/black) does not work Issue #136: Smooth scrolling of document with mouse middle wheel - flywheel Issue #92: Add image compression to PDF DocPage Organizer Issue #18: Performance optimization - OutputPreview Renderer Download: PDF4QT 1.6.0.0 | Portable | ~30.0 MB (Open Source) Download: PDF4QT MSIX | 29.4 MB Links: PDF4QT Home Page | PDF4QT @GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Veteran
      branfont went up a rank
      Veteran
    • Reacting Well
      Almohandis earned a badge
      Reacting Well
    • First Post
      Cosminus earned a badge
      First Post
    • One Year In
      ThatGuyOnline earned a badge
      One Year In
    • Week One Done
      Jeroen Wilms earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      472
    2. 2
      +Edouard
      181
    3. 3
      PsYcHoKiLLa
      120
    4. 4
      Steven P.
      85
    5. 5
      neufuse
      73
  • Tell a friend

    Love Neowin? Tell a friend!