Edit Anything

Professional text and hex editing
with Binary Templates technology.





What's New in Version 12.0

SweetScape Software is pleased to announce 010 Editor v12.0 with our new Mini Map. The Mini Map is an overview diagram on the right side of each editor that shows a zoomed-out view of a file.

Mini Maps work with text and hex files and can be resized, zoomed or moved to either side of the editor. Access options for the Mini Map by right-clicking on the Mini Map.

The dark theme can now be applied to dialogs and scrolls bars as well. How colors are applied can be controlled with the 'Theme/Colors' page of the Options dialog.

Disassembly can now be performed for X86, ARM, MIPS, PowerPC, SPARC, SystemZ and XCore using the Capstone disassembly library. Use 'Tools > Disassembler' to run the disassembler and disassembly can be done in Templates using the new 'Opcode' data type. Disassembly is also available in the Inspector.

For Templates, <read> and <write> attribute can now be written inline instead of having to write a separate function.

Old Method:

   typedef float Vec3f[3] <read=Vec3FRead>;

   string Vec3FRead( VEC3F v )
   {
       string s;   
       SPrintf( s, "(%g %g %g)", v[0], v[1], v[2] );
       return s; 
   }

New Method:

   typedef float Vec3f[3] <read=Str("(%g %g %g)",this[0],this[1],this[2])>;

As well the new Visualize tab provides the same information as the Mini Map but can be undocked, making it easier to find patterns in data.

To download the latest version please click the following link:

See also:

Version 12.0.1 - Oct 7th, 2021

  • Fixed SHA512 and SHA384 reported the wrong value on files of a particular length.
  • Fixed a possible crash in scripts that write a large amount of data to a file.
  • Fixed a popup dialog asking about Inspector.bt was hard to read when upgrading to v12 with a light theme enabled.
  • Fixed the program version number was not being picked up by Winget.

Version 12.0 - September 17th, 2021

The following is an overview of the new functionality in version 12.0 of 010 Editor:

  • Added an overview diagram called the Mini Map to the right side of each editor.
  • The Dark theme can now be applied to scroll bars and dialogs.
  • Added disassembler for X86, ARM, MIPS, PowerPC, SPARC, SystemZ, and XCore.
  • Special attributes in Templates such as <read> and <write> can now be written inline instead of writing a separate function.
  • Tabs and headers are now rounded by default (this can be changed in the Options dialog).
  • New 'Opcode' data type for doing disassembly in Templates.
  • New 'Visualize' tab displays the same information as the Mini Map but can be undocked.

The following is a list of all new features in version 12.0 of 010 Editor:

  • 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'.
  • Style
    • 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.
  • Disassembler
    • 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=<constant>> 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 <read> and <write> 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[0], test[1], 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.
  • Inspector
    • 'Opcode (X86-32)', 'Opcode (X86-64)', 'Opcode (ARM-32)' and 'Opcode (ARM-64)' have been added to the Inspector.
  • Options
    • 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.
  • General
    • 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.
  • Linux
    • 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.
  • Bug Fixes
    • 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.
    • Fixed a typo in the recent files list.

For a full list of changes in other versions of 010 Editor, please see the Release Notes.




Newsletter - Receive special offers, tips, tricks and news. Join now



010 Editor v15.0 is here!
What's new?


Navigation


Products

010 Editor














E-mail: info@sweetscape.com