Interactive Software Analysis

Relyze lets you reverse engineer and analyze native x86, x64 and ARM software

Download Free Trial
Windows 7+ Windows 7+

Relyze 2.1 with force directed layouts, custom segments and more!

Today we are releasing Relyze 2.1 with several feature additions as well as multiple bug fixes and improvements. For a full list of the changes, see the download page.  The primary feature addition is our new parallel force directed layout algorithm, which is available in the call graph view and also via the plugin framework. The below screen capture shows it in action:



Force layout are well suited for visualizing things like call graphs and it's a great addition to our existing circular and hierarchical layouts.

This release also add the ability to add custom segments to an analysis, useful if you have to manually unpack code from a binary. You can use either the UI or plugin framework to add a new segment, it only takes a few lines of code:

We are also shipping a plugin to import and export databases containing bookmarks, comments and labels for the popular debugger x64dbg. Great to help you keep your dynamic analysis in sync with your static analysis.

Head on over and download our free trial! Existing users can use the builtin update feature to receive the latest version.


Relyze 2.0 now with ARM support, Call Graphs and more!!

Today we are excited to release Relyze 2.0! The primary feature addition in this release is support for analyzing ARM (and Thumb) based ELF or PE binaries. We have also made several user interface changes for a greatly improved experience. For a full list of changes see the download page.


We now support analyzing ARM based binaries and this includes Thumb and Thumb2 support. The analysis is on par with our x86 and x64 support and includes jump table analysis, function data type analysis, stack pointer analysis, static library analysis and binary diffing support. We support automatically detecting the processor mode for binaries that switch between ARM and Thumb but you can also specify an explicit mode if you need to.

A small yet useful addition is the inclusion of a 'Perform Initial Analysis in Background' option when analyzing a binary in the GUI. This lets you drop straight to the UI so you can begin to explore a binary while the initial analysis runs in the background. Previously we blocked the UI until the initial analysis was complete but now you can start getting stuck in straight away. We have also greatly improved the performance of parallel analysis via the plugin framework for everybody with a Professional license.

We have taken the opportunity to revamp the user interface, primarily with the removal of the large pivot menu which was used to navigate between the views. We now use a more compact left aligned viewer style menu. This reclaims quite a bit of screen real estate and looks good. We have also added menu items for the plugin editor and data type manager so you can quickly bring them up when you need them.

We have completely rewritten the graph user interface subsystem from scratch and now have a DirectX based hardware accelerated graph subsystem that is buttery smooth for large graphs and has a slew of additional features on top of our existing graph feature set. This includes the ability to find nodes in a graph containing some text, which is great for poking around a large graph for some interesting information. We also added the ability to export any graph to either SVG or DOT formats so you can easily integrate with other graph tools or content.

To take full advantage of this shiny new graph subsystem we have added a ton of features to the plugin framework for generating, manipulating and laying out custom graphs from withing the plugin framework. You can then either display these custom graphs in the GUI or export them as either SVG or DOT formats. We currently expose both a circular and hierarchical layout algorithm and will be adding more in the future.

We didn't want to stop there so we have added a new viewer in the UI for quickly generating and displaying the call graph of an analysis so you can search for paths, find nodes and jump around an analysis via its call graph. Its a great addition and works best when you enable the split view (as shown in the screen shot above).

Why not give Relyze a spin and download the latest trial! Existing users can use the builtin update feature to receive the latest version.


Relyze 1.6 with ELF binary support!

Today we are excited to release Relyze 1.6! The primary feature addition in this release is support for loading, analyzing and diffing ELF binaries. For a full list of changes see the download page.

Our shiny new ELF loader is capable of loading 32-bit and 64-bit ELF relocatable, executable and shared object binaries. Embedded STAB symbols are also fully supported. We have also added a new platform 'POSIX' in addition to the existing 'Windows' platform. This lets an analysis leverage the built in export and pre compiled header symbols that are shipped with Relyze in order to help resolve function declarations and types during analysis.




Why not give Relyze a spin and download the latest trial! Existing users can use the builtin update feature to receive the latest version.


Relyze 1.5 with static library analysis, performance improvements and more!

Today we are happy to release Relyze 1.5.0 which contains a number of new features, performance improvements and bug fixes. For the full list of the changes please see the download page.

Static Library Analysis

The main addition for this release is static library analysis, which allows for the identification of statically linked library code, such as compiler run-times, during analysis. We describe a functions structural properties via static library signatures which are then grouped together and held in static library packages. During static library analysis these packages are processed via Relyze's differential analysis engine, which is really a comparison engine based on graph isomorphisims, allowing packages to be identified which contain similar functions to that of the binary being analyzed. The signatures from these packages are then matched and subsequently applied during analysis, renaming the identified functions in the binary being analyzed with their newly discovered names and flagging them as library code (As can be seen in the before and after screenshots below).



Relyze is shipping with several static library packages for some common compiler run-times, including the MSVC, PellesC, DJGPP and MinGW based compilers. We will be adding more based on customer feedback. The ability to create and apply packages is exposed via the plugin framework, allowing you to create and manage your own packages and we will touch on this in more detail in a later blog post.

Analysis Options

This release also exposes enabling or disabling several analysis features from both the GUI as well as the plugin framework. This will let you speed up the initial analysis of a binary by disabling any features you don't require.





Try Relyze for yourself and download the latest trial! Existing users can use the builtin update feature to receive the latest version.


Relyze 1.4 available and Licensing update

Today we are releasing Relyze 1.4! This release adds support for loading AR library files, loading and analyzing COFF object files and several other smaller changes and bug fixes. The full change log can be found over on the download page.

We are also taking this opportunity to make some slight changes to how we are licensing Relyze, primarily by reworking the Personal license into a Standard license which now allows for commercial usage. You can check out the full details over on the purchase page.

To try Relyze for yourself, download the latest trial. Existing users can use the builtin update feature to receive the latest version.


Relyze 1.3 now available!

Today we are releasing Relyze 1.3 which contains several bug fixes and user interface improvements. The full change log is below:

  • Relyze now shipped as either a 32 bit or 64 bit Windows application. Both builds are feature compatible.
  • Reference graphs now use a separate pivot entry for each graph. You can close and move them via right clicking the pivot.
  • Moved the reference graph overview into the reference graph for consistency with function graphs.
  • Improve the reference dialog, now using a virtual list view for performance and can filter by text.
  • Handle analysing PE files whose entry point is in a non executable section.
  • Improve how the diff algorithm matches functions.
  • Improve how the diff algorithm matches duplicate blocks from a switch statement.
  • Bugfix, improve parsing scope table entry handlers in PE32+ exception directories.
  • Bugfix, resolved several memory leaks.
  • Bugfix, plugin editor control updated, resolving several issues.
  • Bugfix, application crash during shut down under certain conditions.
  • Update SQLite3 to 3.8.11.1.
  • Update OpenSSL to 1.0.1p.

In addition we are now shipping Relyze as both a 64 bit and 32 bit Windows application, with a separate installer for each build. The 64 bit and 32 bit builds are feature compatible, but we recommend users install the 64 bit build. There is a small performance benefit to this as well as being able to access the larger 64 bit address space if you are analyzing or diffing very large binaries.


To try Relyze for yourself, download the latest trial. Existing users can use the builtin update feature to receive the latest version. If you wish to move over to the 64 bit build from an existing 32 bit installation of Relyze you must manually download and run the installer.


Relyze 1.2 with plugin support for binary diffing

Today we are releasing Relyze 1.2.0 which focuses largely on the plugin framework and contains a number of important updates, including the addition of plugin support for binary diffing. The full change log can be found on the download page.

An example plugin is included to copy all matched block names and instruction comments from one side of the differential analysis over to the other side, which is both useful as well as a nice example of how to interact with the diff results via the plugin framework. The contents of this plugins run() method can be seen below. If you are reading along it may be useful to consult the SDK documents as you go.

Some additional updates in this release also include access to plugin shortcuts via a right click menu in the GUI and the ability to run plugins, via the command line, through a completely headless instance of Relyze.

To try Relyze for yourself, download the latest trial. Existing users can use the builtin update feature to receive the latest version.