FileSystem Browser

Introduction

The file system browser is a generic tool for browsing and accessing the contents of filesystems or container files (such as zips, tars, firmware images, etc).

GHIDRA Tool File Menu Actions

Open File System

Opens a file system container file (ie. a zip, tar, iso, etc) in a new browser tree.
Subdirectories of your local computer's file system can also be opened in this manner.

Right-click Context Menu Actions

Get Info

Returns information about the selected file. Sometimes there will not be any available information. Generally, this information is not that useful. It will mostly consist of meta-data from the internal file system.

Expand All

Expands all folders below, and including, the selected node.

Collapse All

Collapses all folders below, and including, the selected node.

Open File System

Attempts to open the selected file as a sub-file-system. If this operation succeeds, the node will turn into a folder with one or more children. If this operation fails, the node will remain a leaf node. This operation could fail for many reasons, but generally it fails because the node does not represent a valid sub-file-system.

Open File System in new window

Attempts to open the selected file as a sub-file-system. If this operation succeeds, a new file system browsing tree will be shown with the contents of the selected file.

Open Program(s)

Opens the GHIDRA program(s) that correspond to the selected file(s). If no program in the current GHIDRA project is linked to the selected file, you will be able to import the selected file.

Import

Imports the selected file into GHIDRA as new program in your current project.

Batch Import

Imports the selected file(s) into GHIDRA as new programs in your current project using the Batch Import dialog.

Export

Writes a copy of the selected files to a directory you select on your local computer.

Export All

Recursively copies the contents of a selected folder to a directory you select on your local computer.

View As Image

Attempts to render the selected file as an image.

View As Text

Attempts to render the selected file as an text.

List Mounted File Systems

Displays a list of the file systems that are currently open and mounted. Selecting one of the file systems will display that file system's browser tree.

Clear Cached Passwords

Clears any cached passwords that previously entered when accessing a password protected container file.

Refresh

Refreshes the status of the selected items.

Close

Closes the currently highlighted file system root node. The file system itself will not be unmounted until all open browser windows to it are closed and a caching timeout period has passed.

Browser Dialog Actions

Open File System Chooser

Opens a new file system container file in a new browser tree. This is the same as "File | Open File System" in the main GHIDRA window.

Password Dialog

This dialog is used to prompt for a password when opening a password protected container.

If the password isn't known, the Cancel button will stop Ghidra from re-prompting for the password for the current file during the current operation (but the user may be re-prompted again later depending on the logic of the operation), and Cancel All will stop Ghidra from prompting for passwords for any file during the current operation.

Passwords can also be provided via a text file specified on the java command line, useful for headless operations. See ghidra.formats.gfilesystem.crypto.CmdLinePasswordProvider

How To Handle Unsupported File Systems

If you receive this message: No file system provider for the selected file.

It means one of the following two things:

  1. The file you attempted to open as a file-system is actually NOT a file-system
  2. GHIDRA does not have an implementation for that file-system

If the file does not really represent a file system, then you may want to try importing it.

Otherwise new file-systems can easily be written by implementing the ghidra.formats.gfilesystem.GFileSystem interface.

Known issues

Strong Crypto Support

Your Java JVM install may not have support for strong crypto currently installed.

In order to fix this issue, you must install Oracle's "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files"