Bugfix/Analysis: Resolving PE imports from ordinal to the expected symbol may fail.
Bugfix/Analysis: Incorrect register sizes may be identified for memory operands during function data type analysis.
Bugfix/Analysis: Honor the analysis option 'Generate Data Types from Mangled Names' for TDS symbols.
Bugfix/Analysis: ASCII strings with a length less than a native pointer size may fail to be identified.
Bugfix/Analysis: For mangled function names with no explicit return type, use FDTA to discover potential return type.
Bugfix/Decompiler/TCG: Phi simplification to handle multiple dependent phi instructions.
Bugfix/Decompiler/TCG: Dead store elimination may eliminate an aliased store.
Bugfix/Decompiler/AST: AST can fail to emit expected anonymous member access.
Version 3.1.0 (20 April 2020)
Bugfix/GUI: Exception thrown if Windows Start setting 'Show recently opened items in Jump Lists' is disabled.
Version 3.0.4 (16 April 2020)
Analysis: Handle conditional return instructions as expected.
Analysis: Update Windows IMAGELOADCONFIG_DIRECTORY parsing from latest SDK.
Analysis: Disassembler support for Intel Control flow Enforcement Technology (CET) opcodes.
GUI: Call graphs can now specify node size as either fixed, absolute name width or relative byte size.
GUI: Support diffing the pseudo code of two matched functions.
Plugin: Add loader plugin for Motorola S-Record (SREC) binaries.
Plugin: Add Relyze::ExecutableFileModel::FunctionDataType.diff to diff a single function against another function.
Plugin: Refactor plugin @information :minapplicationversion and :maxapplicationversion to :minappver and :maxappver.
Plugin: Add helper method Relyze::Application::archs to return an array of all supported architectures.
Plugin: Define a global variable RELYZE of type Relyze::Application, for static methods that cannot access the class instance @relyze.
Plugin: By default, query the models default pre compiled header when getting a data type not found in the data type factory.
Build: Relyze is now known as Relyze Desktop.
Bugfix/TCMalloc: Access violation on older systems during application startup when accessing environment variables.
Bugfix/GUI: Access violation due to lack of locking when generating a second call graph.
Bugfix/GUI: Exporting a graph to either SVG or DOT should use current themes font name and size.
Bugfix/Analysis: The x86 Windows kernel DDK pre compiled headers should default to __stdcall.
Bugfix/Analysis: A functions noreturn modifier was not being propagated as expected.
Bugfix/Decompiler/TCG: SSA destruction may introduce incorrect program behavior.
Bugfix/Decompiler/TCG: Native instructions that cannot be translated to TCG will be lifted to an intrinsic call.
Bugfix/Decompiler/TCG: Copy propagation may propagate to an aliased location unexpectedly (regression from 3.0.2).
Bugfix/Decompiler/TCG: Peephole conditional rule could produce incorrect results.
Bugfix/Decompiler/AST: AST may emit incorrect structure member access.
Bugfix/Decompiler/AST: AST may unexpectedly emit signed decimals as hexadecimal or vice versa.
Version 3.0.3 Beta (4 February 2020)
Analysis: Add disassembler, assembler and decompiler support for ARM64.
Analysis: Add ARM64 static library packages for MSVC 2017 (15.9) and MSVC 2019 (16.0 and 16.4).
Analysis: Add ARM64 PE and COFF loading support including exception directory and relocations.
Analysis: Add ARM64 ELF loading support including relocations.
Analysis: Add x86, x64 and ARM static library packages for MSVC 2019 (16.4).
GUI: Holding Tab in the pseudo code view will flash the displaying of casts.
GUI: Allow editing a structure or union member's name or type in the pseudo code view.
Bugfix/Core: Deserializing RLZ archives generated by version 3.* whose build platform differed from the current build platform (win32/win64) could fail.
Bugfix/Core: Editing a function prototype which has the same parameter types but different parameter names fails to update the parameter names.
Bugfix/Core: An x86 cdecl function may be incorrectly identified as thiscall under certain circumstances.
Bugfix/Core: Changing the data type for an implicit function parameter would fail.
Bugfix/Decompiler/TCG: Several peephole optimizations produce unexpected results for size extended comparisons.
Bugfix/Decompiler/TCG: Pointer analysis could process a negative offset incorrectly under certain conditions.
Bugfix/Decompiler/TCG: Copy propagation may fail to propagate a graph local.
Bugfix/Decompiler/TCG: Dead code elimination may eliminate a graph local which is aliased.
Version 3.0.2 Beta (11 December 2019)
Analysis: Add x86, x64 and ARM static library packages for MSVC 2019 (16.0).
Analysis: Improve function local analysis multi threaded performance.
Analysis: Avoid excessive saving of state during some analysis passes leading to improved memory performance.
Analysis: Remove the notion of strict static library analysis.
Analysis: Implement all ELF RARMTHM_ type relocations.
Analysis: Allow the function prototype used at an indirect call site to be edited.
Analysis: Add typedefs for the most common fixed width integer types to a models data type factory.
Diff: Add a signature for matching an instructions matched neighbors.
Plugin: Add support for custom binary loader plugins.
Plugin: Add loader plugin for MCLF binaries.
Plugin: Add methods addentropymarker and entropy_markers to interact with a models entropy markers.
Plugin: Add ability to optionally include or exclude a set of functions during differential analysis via the options hash parameter in Relyze::ExecutableFileModel::diff.
Plugin: Add Relyze::ExecutableFileModel::signatures to iterate the Static Library Signatures applied during Static Library Analysis.
GUI: Add a mini map overview to the pseudo code view.
GUI: List cross references to local variables in the pseudo code view.
GUI: Display a references flags in the cross references dialog.
GUI: Display the Static Library Signatures applied during Static Library Analysis.
GUI: Add right click menu item to edit a bookmark item or click bookmark icon to edit.
GUI: Add right click menu item to disable displaying of cast expressions in pseudo code view.
GUI: Add right click menu item to edit a direct or indirect call site function prototype.
GUI: Add Windows task bar jump list support for recent files.
Build: Ship a dedicated console application RelyzeCLI.exe
Build: Rename the user interface application from Relyze.exe to RelyzeGUI.exe
Build: Update SQLite3 from 3.26.0 to 3.30.1.
Build: Update Ruby from 2.5.1 to 2.6.5.
Build: Update Capstone from 3.0.5 to 4.0.1.
Build: Update LibClang and RelyzeLLVM from 7.0 to 9.0.
Bugfix/Analysis: Function graph walker should expose ordered list of blocks visited.
Bugfix/Analysis: Basic blocks should store their references in a fixed order.
Bugfix/Analysis: COFF object file section may be aligned incorrectly.
Bugfix/Analysis: Incorrect detection of a function prototype during function data type analysis.
Bugfix/Analysis: A function prototype's partial register parameter location could be incorrect for x64.
Bugfix/Analysis: Indirect call analysis may incorrectly convert an import data block to code.
Bugfix/Analysis: A NullReference object may be destroyed twice under certain conditions.
Bugfix/Analysis: FDTA may fail to recognize a return value when analyzing a functions call site.
Bugfix/Analysis: A functions register based parameter names were not enforced to be unique.
Bugfix/Analysis: When adding entries to the .extern segment, query the exports symbols DB for a suitable data type.
Bugfix/Analysis: Potential double free when clearing an existing data type via the UI.
Bugfix/Analysis: Handle tail calls in a functions flow graph as expected.
Bugfix/Diff: Fix how we preference mangled and unmangled symbol names for comparing binaries with conflicting symbol naming conventions.
Bugfix/Diff: Should not cache matched call targets and exception ref owner signatures.
Bugfix/Diff: A functions referenced data blocks should ignore pointers.
Bugfix/Diff: Computing an instructions difference value could be incorrect.
Bugfix/Diff: An instruction signature should not use a raw byte hash.
Bugfix/Diff: Incorrectly caching some instruction signatures.
Bugfix/Diff: Uncached signature we failing to be regenerated in certain conditions.
Bugfix/Decompiler/TCG: Instruction propagation should propagate to phi operands.
Bugfix/Decompiler/TCG: Set a default value for the x86 and x64 direction flag.
Bugfix/Decompiler/TCG: Handle generating a TCG graph containing branches into uninitialized code blocks.
Bugfix/Decompiler/TCG: Edge condition reduction could fail for certain case table based switch statements.
Bugfix/Decompiler/TCG: Pointer analysis could fail for a stack local under certain conditions.
Bugfix/Decompiler/TCG: Array like indexing into address taken locals or structure data types could fail to analyze as expected.
Bugfix/Decompiler/TCG: Edge condition immediate propagation could incorrectly propagate an immediate.
Bugfix/Decompiler/AST: Statement duplication could leave redundant statements after a return.
Bugfix/Decompiler/AST: Type analysis may fail to infer or propagate a type as expected.
Bugfix/Decompiler/AST: Type analysis may resolve a pointer dereference to an incorrect LvalueExpression.
Bugfix/Decompiler/AST: Propagate a call site targets parameter names where possible.
Bugfix/Decompiler/AST: Pointer arithmetic must honor type size.
Bugfix/GUI: When loading a binary, don't display plugins that are not capable of being run against the binary (as specified by the plugins require :type or :arch).
Bugfix/GUI: Right click not displaying pop-up menu for custom colors in library tags or application themes for Win64 build.
Version 3.0.1 Beta (9 July 2019)
Bugfix/Analysis: Reduce memory consumption during analysis with improved copy on write containers.
Bugfix/Analysis: Excessive memory consumption due to stack segment data type splitting.
Bugfix/Analysis: Potential memory leak if a data type fails to join to its adjacent type.
Bugfix/Analysis: Memory leak in function stack pointer analysis pass.
Bugfix/Analysis: Memory leak when destroying references during a basic block split.
Bugfix/Analysis: Non deterministic use after free during concurrent access to a FunctionDataType local symbols.
Bugfix/Decompiler/TCG: Dead code elimination eliminates a local unexpectedly.
Bugfix/Decompiler/TCG: Dead code elimination should eliminate unused spilled registers.
Bugfix/Decompiler/TCG: Variable coalescing can swap and coalesce a graph local into a temp.
Bugfix/Decompiler/TCG: Phi simplification was failing to eliminate dead edges correctly.
Bugfix/Decompiler/TCG: Incorrect behavior during phi operand copy propagation.
Bugfix/Decompiler/AST: Memory leak in LvalueExpression.
Bugfix/Decompiler/AST: Memory leak in IfStatementSimplify.
Bugfix/Decompiler/AST: Memory leak in TCGGraphStatementGenerator.
Bugfix/Decompiler/AST: Memory leak in StatementVisitor.
Bugfix/Decompiler/AST: Memory leak in expression generation for a setcond with condition always.
Bugfix/Plugin: Potential null pointer dereference in method Relyze::Graph::Graph.create_graph.
Bugfix/GUI: Mouse wheel scrolling and Ctrl + mouse wheel to zoom not working for Win64 build.
Bugfix/GUI: Scrolling to a destination graph node via double clicking an edge or label was incorrect in high DPI.
Bugfix/GUI: File handle leak in batch analysis UI when processing a directory fails.