SweetScape 010 Editor is a professional-grade text editor and hex editor designed to quickly and easily edit any file or drive on your computer. Combining an easy-to-use interface with a whole range of editing tools, 010 Editor is a valuable tool for anyone working with text or binary files. One of the most powerful features of 010 Editor is the ability to parse virtually any binary file using a Binary Template. Instead of browsing through a long range of hex bytes as with traditional hex editors, Binary Templates allow a file to be understood. Templates are easy to write and can be used to completely parse any data format, such as BMP or ZIP files (Templates for reading these files are included with 010 Editor).
A Binary Template looks similar to a C/C++ structure, but is actually run as a program. Every time a variable is declared in a Template, that variable is mapped to a set of hex bytes in a file. Data in the file can then be read or written by modifying the variable. Because the Template is run as a program, if, for, or while statements as well as functions or complex expressions can be used. When a Template is run, the defined variables can be edited using the Template Results, as shown on the left. New Templates can be added to 010 Editor and can even be configured to run automatically when a file is loaded.
View and edit any binary file on your hard drive (unlimited file size) and text files including Unicode files, C/C++ source code, etc.
Unique Binary Templates technology allows you to understand any binary file format.
Find and fix problems with hard drives, floppy drives, memory keys, flash drives, CD-ROMs, processes, etc.
Analyze and edit binary data with powerful tools including Find, Replace, Find in Files, Binary Comparisons, Checksum/Hash Algorithms, Histograms, etc.
Powerful scripting engine allows automation of many tasks (language is very similar to C).
Import and export your binary data in a number of different formats.
WHAT’S NEW Version 12.0.1: Mini Map
Added an overview diagram called the Mini Map to the right side of each editor.
The Mini Map shows a zoomed out view of each file and works for both text and hex files.
The Mini Map can be hidden, resized, zoomed, or moved to either side of the editor.
Scrolling the editor automatically scrolls the Mini Map.
Bytes selected or highlighted in the Editor are highlighted in the Mini Map.
View options for the Mini Map by clicking ‘View > Mini Map > Mini Map Options’ or by right-clicking on the Mini Map.
The Mini Map can also be viewed in the new Visualize tab, located in the Inspector tab group.
Can click and drag on the line separating the Mini Map and Editor to resize the Mini Map.
The Hex Editor Mini Map takes each color of the file and lightens or darkens the color depending upon the byte value (byte values closer to zero darken the color and byte values closer to 255 lighten the color).
The amount of lightening or darkening can be controlled with the Contrast and Brightness sliders in the Mini Map Options dialog.
Colorize algorithms can be performed on the Hex Editor Mini Map to apply color maps to the data.
Choices for colorize include ASCII Sections, Rainbow, Heat, Ocean, Gray and Custom.
The number of bytes per line of the Mini Map can be controlled with the Hex Editor Mini Map Options dialog.
The Hex Editor Mini Map automatically changes the line width when the control is resized.
Line width of the Hex Editor Mini Map can be snapped to certain values with the Auto Snap setting (e.g. by default the width snaps to values of 16, 32, 48, 64, etc.).
Hovering the mouse over the Mini Map shows a highlighted rectangle, indicating the portion of the Mini Map that is visible in the Editor.
Clicking and dragging on the highlighted rectangle scrolls the Mini Map and Editor.
Clicking on a line of the Mini Map that is not in the highlighted rectangle centers the editor on that line.
After clicking on a line outside the highlighted rectangle, keep the mouse button down and move the mouse up or down to perform a velocity scroll (useful for large files).
Clicking the Reset button in the Mini Map Options dialog returns the Mini Map to its initial state.
The Mini Map supports high-DPI displays.
Some colors for the Mini Map can be controlled with ‘Tools > Options > Theme/Colors’.
The Dark theme can now be applied to scroll bars and dialogs.
Tabs and headers are now rounded by default (this can be turned off using ‘Tools > Options > Theme/Colors’ and under ‘Options’ uncheck ‘Rounded Tabs’).
Can customize the colors of scroll bars, main menu/right-click menus, tool tips, and dialogs using the ‘Theme/Colors’ page of the Options dialog.
Can change the color of the open/close children arrows in Tables.
Changed the drawing of splitter buttons in scroll bars.
The scroll bar for text files now hides the bottom splitter button by default.
The Mini Map is now integrated with the scroll bars.
Added disassembler for X86 (64-bit/32-bit/16-bit), ARM (64-bit/32-bit), MIPS (64-bit/32-bit), PowerPC (64-bit/32-bit), SPARC, SystemZ, and XCore.
New Disassembler Tool on the tools menu for disassembling a section of hex data.
Results are displayed in the Disassembler Output Window as a new tab in the Output panel.
Selecting an opcode in the Disassembler results selects the hex bytes for the opcode in the Hex Editor.
Uses Capstone disassembly framework for performing disassembly.
Disassembly can be done in Templates using the ‘Opcode’ data type.
Disassembly of single instructions added to the Inspector for X86 (64-bit/32-bit) and ARM (64-bit/32-bit).
Added an icon to the Tool Bar for running the disassembler.
Has disassembler options for ARM v8, ARM MClass, ARM Thumb Mode, MIPS Micro, MIPS 32r6, MIPS ii, MIPS iii, PowerPC QPX, SPARC v9.
Endianness is supported for ARM, MIPS, and PowerPC.
Define the architecture for an Opcode in a Template using DisasmSetMode or <disasm=> after an Opcode.
Can include options for disasm using ‘|’, for example “<disasm=(DISASM_ARM_32|DISASM_OPTION_ARM_THUMB)>”.
Opcode variables can be a variable number of bytes.
Use the ‘sizeof’ operator to query the size of an Opcode.
Can display disassembly results in Intel or AT&T syntax (‘mov rbx, rcx’ versus ‘movq %rcx, %rbx’).
Added new functions DisasmNumOps, DisasmOpString, DisasmGetMode, DisasmSetMode, DisasmOpSizeFromFile, and DisasmOpStringFromFile.
Special Opcode array can be used to perform disassembly on a large block of data at once.
When defining an Opcode array, place the number of bytes between the brackets ‘[‘ and ‘]’ (the number of resulting Opcodes can be queried with DisasmNumOps).
Note local opcodes are not currently supported but the DisasmOpSizeFromFile and DisasmOpStringFromFile functions can be used to do disassembly in a script.
Can right-click on the Disassembly results and choose ‘Clear’ to clear the table.
Templates and Scripts
Special attributes such as and can now be written inline instead of writing a separate function.
Inline functions can be written by calling a function and then including arguments inside brackets ‘(‘ and ‘)’ where each argument can be an expression. For example: <read=Str(“%lg”, this / 256.0)>
Inline functions can also be written by enclosing an expression inside brackets ‘(‘ and ‘)’. For example: <comment=(“ID = ” + id)>
New ‘Str’ function which works like Printf but returns a string instead of writing it to the Output Window.
fgcolor and bgcolor attributes can now be a function or expression.
When writing inline functions, use ‘this’ to refer to the current variable (or this, test, etc. if this is an array).
Inline functions are supported for read, write, comment, size, name, fgcolor, bgcolor and disasm attributes.
Inline write functions should assign to a variable and should use ‘value’ to refer to the input string.
New ‘Opcode’ type to support using the Disassembler in Templates and see the Disassembler section above for other changes to Templates.
New ‘disasm’ special attribute for setting the architecture to use when performing disassembly.
Added ‘Log10’ function.
‘Opcode (X86-32)’, ‘Opcode (X86-64)’, ‘Opcode (ARM-32)’ and ‘Opcode (ARM-64)’ have been added to the Inspector.
Can now control colors for the Dialogs, Menu/Right Click Menu, Scroll Bars, and the Mini Map on the ‘Theme/Colors’ page.
Theming of dialogs or scroll bars can be turned on or off using the ‘Native Dialogs’ or ‘Native Scroll Bars’ toggle in the Options drop-down list.
Rounding for Tabs or Headers can be turned on or off using ‘Rounded Tabs’ or ‘Rounded Headers’ in the Options drop-down list.
Added SHA-384 to Checksum algorithms.
Updated app icon.
Updated EULA for libraries.
Changed style of Hex Operations dialog.
Selecting a row in the Find results table shows the index of the row in the status bar, for example “(3/9)” means the third out of 9 rows was selected.
Added ‘Hide my license’ option to the Register dialog.
Added section to the manual about Multi-Line Regular Expressions.
Some versions of Linux were crashing when copying large blocks of data from 010 Editor to other applications. A limit to the number of bytes that can be copied was added to the ‘General’ page of the Options dialog and this limit can be turned off on the same page.
Some versions of Linux were having issues with certain Input Method Editors (IMEs). As such, IMEs are turned off by default on Linux but can be re-enabled using the ‘Allow Input Method Editors’ toggle on the ‘Editor’ page of the Options dialog.
Fixed a bug with regular expressions possibly finding a double match when a find result was over a 64K barrier.
Fixed a problem editing some Template variables while a breakpoint is hit.
Fixed loading files on Unix containing backslash ” characters.
Fixed issues with the ruler drawing on some high-DPI systems.
Fixed a crash with certain scripts that write to text files.
Fixed changes to fonts sometimes were not properly updated in the dialogs when pressing ok in the Options dialog.
Fixed some Scripts were not working properly when run with -noui.
Fixed the Open Process dialog was showing some heaps as having modules that did not belong to a module (Process tab was ok).
Fixed the Open Process dialog was not showing some 64-bit addresses correctly (Process tab was ok).
Fixed issues displaying Templates or Scripts that have been deleted from the Repository.
Fixed when importing Motorola S19/S27/S37, data after a S7/S8/S9 record is now properly read.
Fixed the printer dialog was not working on some Linux systems.