[BinEd]  BinEd - Binary / Hex Editor

User Manual for BinEd IntelliJ Plugin

Binary/hex editor plugin for IntelliJ Idea IDE and other IDEs based on IntelliJ Platform from JetBrains written in Java.

Features

Application

Example look of the application's GUI:

Plugin Screenshot

For other variants please visit project's website:

https://bined.exbin.org

License

Project uses Apache License 2.0, see:

https://www.apache.org/licenses/LICENSE-2.0

Requirements

Plugin requires Jetbrains IntelliJ Platform application, latest version requires platform version 2022.2.1 or higher and Java 11.

Main aim is to support IntelliJ Platform IDEs, but other applications/IDEs using this platform should be also supported.

Installation

Choose one of the following options:

Plugin is available in JetBrains Marketplace:

https://plugins.jetbrains.com/plugin/9339

Plugin is available for download on the project's website:

https://bined.exbin.org/intellij-plugin

How to Use

In IntelliJ-based IDE:

Main Window

Main Window

Application consists of (from top to bottom):

Toolbar

Toolbar provides access to some of typically used actions.

Code Area

In basic mode, data are shown as matrix of numeric codes and also as regular text at the same time.

Optionally there is header, which represents position offset for the particular code on the given column.

Row starts optionally by row position. Row position can be represented by numbers in octal, decimal or hexadecimal base independent on code base.

Popup menu is available with actions which depends on which section of the code area was clicked on.

Parsing Panel

Content parsing panel provides analysis of the data at the cursor position.

Currently, only simple list of values is available. Values are updated when cursor in code area is moved.

It's possible to edit the values and overwrite content of the document on the cursor position with ENTER key.

Values panel supports options for big and little endian - this affects order of bytes for multibyte values.Support for signed and unsigned variants of some values - first bit is typically used for negativity sign.

Status Bar

Status bar is bottom section of the main window.

Status Bar

It has following 5 sections - from left to right:

Current Encoding

Left click cycles throw set list of encodings.

Popup menu provides ability to select specific encoding from the list or to manage it.

Document Size

Shows document size in specific code type and in brackets difference to size of the saved document.

If there is selection active in the document then it shows size of the selection to size of the document.

Tooltip shows document size in three numeral systems of base 8, 10 and 16.

Status Bar

Popup menu allows selecting code type or to copy the value.

Cursor Position

Shows current position of the cursor in the document as position in the document and position in the code.

If there is selection active in the document then it shows start and end position of the selection.

Tooltip shows cursor position in three numeral systems of base 8, 10 and 16.

Popup menu allows selecting code type or to copy the value.

Memory Mode

Shows currently used memory mode.

Modes are:

Tooltip shows full name of the memory mode.

Popup menu allows switching memory mode. This will close the document and reopen it in selected mode.

Edit Mode

Following edit modes are supported:

It's possible to switch between insert and overwrite with single click on the status bar or with INSERT key

Editing File

File is show in code area as a sequence of codes and preview characters.

You can edit numerical codes, or you can edit preview characters via keyboard or using available actions.

You can select specific range of data with using mouse while holding left button or holding SHIFT button while moving in code area.

Edit Mode

Two modes are supported:

In insert mode entering new codes or charaters inserts space at the current cursor position to insert new data. Inserting data from clipboard inserts this data at the current position (making additional space).

In overwrite mode data are replaced at the current cursor position. Inserting data from clipboards replaces data at the current position and only extends file if not enough space is available.

Undo Support

If changes you made to the file is not what you wanted to do, you can revert some number of last edit operations you performed.

Tools and Actions

Go to Position

Use this action to move cursor to specific position:

Context Menu / Go To

Go To Dialog

You can specify position relative to current position, start or end of the document.Position can be specified in octal, decimal or hexadecimal base.

Edit Selection

Use this action to specify exact selection range:

Context Menu / Edit Selection

Edit Selection Dialog

You can specify position relative to current position, start or end of the document.Position can be specified in octal, decimal or hexadecimal base.

Find or Replace Data

Use this action to find specific text or sequence of codes:

Context Menu / Find
Context Menu / Replace

This will open quick search bar:

Find Text Dialog

You can enter searched text or data and toggle match case and highlighting mode buttons.

You can switch between multiple matches if found.

Options button opens dialog with additional options:

Find Text Dialog

Insert Data Action

Use this action to insert data to current position:

Context Menu / Insert Data

Data will be inserted or will replace previous data depending on the current edit mode.

Insert Data Dialog

On left side there is list of available operations and on right side there are additional parameters and output preview.

Convert Data Action

Use this action to convert selected data or whole content into different form:

Context Menu / Convert Data

Data will be converted and replace previous data or into clipboard / new window.

Convert Data Dialog

On left side there is list of available operations and on right side there are additional parameters and output preview.

Bookmarks

Bookmarks allow to save specific position / range and mark them with color.

Bookmark functionality is accessible in main edit menu and provides list of quick access bookmarks to jump to and access to bookmarks manager.

Menu / Edit / Bookmark

First 10 bookmark records are available for quick access, so that they can be set, cleared and jump to with keyboard shortcuts.

Bookmarks manager allows to edit all bookmark records:

Bookmarks Manager Dialog

Macro

Support for macro operations allows to execute sequence of operations with single action.

Macro functionality is accessible in main edit menu and provides list of first 10 macro records, actions to control action sequence recording and macro manager.

Menu / Edit / Macro

Macro operation is sequence of steps available from fixed set of commands.

Syntax of command is: commandname(parameter1, .. parameterX)

Currently available commands are:

Parameters can be number, text string or direction (UP, DOWN, LEFT, RIGHT, PAGE_UP, PAGE_DOWN, ROW_START, ROW_END, DOC_START, DOC_END, SWITCH_SECTION), some parameters are optional.

Macro manager allows to edit steps of macro records.

Macro Manager Dialog

Compare Files Action

Use this action to compare content of two files:

Context Menu / Tools / Compare Files

Compare Files Dialog

Clipboard Content

Tool to show available content currently stored in system clipboard.

It provides list of available data flavors (variants of data representation) and allows to show available information about content.

Clipboard Content Dialog

Drag and Drop Content

Tool to show available content transferred by drag & drop operation.

It provides list of available data flavors (variants of data representation) and allows to show available information about content.

Drag and Drop Content Dialog

Not available

Debug View

Use "View as Binary" action in context popup menu in variables view in debug window or inspect view.

Plugin Screenshot

As the IntelliJ platform uses different handling depending on runtime environment, there are separate handlers for different values available switchable in dropdown on the top of the debug view window.

JavaValue (Java)

PyDebugValue (Python)

PhpNavigatableValue (PHP)

Cidr (C/C++)

DotNetNamedValue (.NET)

DlvXValue (GO)

VariableView (Javascript)

View Options

Some display options for code area are accessible via View menu.

View modes

Code Type

Position Code Type

In left side of the code area there are shown position in the file. It's possible to choose code type for this position as octal, decimal or hexadecimal.

Hex Characters Case

In hex code type codes above 10 are shown as characters A to F. You can choose if this codes will be upper or lower case.

Show Unprintable Characters

Some characters don't have visual representation in the preview section. For example characters like:

This provides option to display substitute characters with different color instead to better visualize this particular characters.

Code Colorization

This option provides ability to display some codes with different colors.

Currently, only single mode is available:

Choose Font

You can change font used in code area.

Options / Appearance / Text Font

Select Font Dialog

You can select specific family of the font, size in pixels, style parameters like bold and italic.

In preview section you can see how the selected font will look, or you can enter other text of your choice there.

Encoding

Text preview section is showing data decoded to textual characters according to currently selected encoding. Method of conversion between RAW data and characters is described in so called encoding. Java supports universal UNICODE encodings as well as various ISO and platform specific encodings often tailored for specific country/language.

Encodings can be either fixed where single numeric code is represented as single character. Some encodings like for example UTF-8 uses codes with different length of codes to represent characters. Each character in textual preview section is decoded from particular position, therefore characters longer than single byte will overlap.

User can set list of encodings available for quick switching in encodings manager dialog.

Manage Encodings Dialog

It's possible to move/reorder encodings in the list and add another encoding.

Add Encodings Dialog

Encodings can be filtered by name and/or country code.

Active encoding can be either selected by popup menu or cycled through by single click in the status bar.

Options Dialog

Options Dialog

Main section provides options for overall look of the application. Application supports languages switching depending appropriate language plugin is available.

It's also possible to choose visual style of the application and tweak rendering options related to antialiasing and scaling.

Code Area

Code area section allows setting various options related to code area.

Code Area Options

Maximum bytes per row allows setting how many codes / preview characters will be visible on the page.

In default mode (16) code area always shows 16 codes per row.

Alternative mode is to use (0) in which code area will fit as many codes per page to fit visible area.

Row position length parameters allows setting of behavior of row position codes.

In default mode (0, 0) row positions will have as many digits as needed for current size of the document.

Status Bar

Section for status bar allows to set same options as available in popup menu actions in status bar.

Code Area Options

Layout

Multiple layout profiles are supported. You can define your own or use one from templates.

Layout Profiles Options

Layout options specify positions of the displayed data. Primary capability is to specify size and frequency of spacing between characters.

Add Layout Profile

Decorations

Multiple decoration profiles are supported. You can define your own or use one from templates.

Theme Profiles Options

Decoration options allow specifying additional cosmetic entities, namely lines and shapes.

Add Theme Profile

Colors

Multiple color profiles are supported. You can define your own or use one from templates.

Colors Profiles Options

It is possible to specify colors of text, background, decorations and make it specific for areas like selection or found matches.If color is not specified, default color from current Look and Feel is used.

Add Colors Profile

Help

This online manual is available when clicking on Online Help in context menu or in toolbar.

About Dialog

You can show basic information about application with:

Context Menu / About

About Dialog

Participate in the Development

As the project is free and open source, you can participate in the development in many ways:

See. https://bined.exbin.org/?participate for more details.