Skip to content

Latest commit

 

History

History
179 lines (162 loc) · 7.01 KB

CHANGELOG.md

File metadata and controls

179 lines (162 loc) · 7.01 KB

Changelog

v4.0.0-beta3 - 2026-09-02

GUI

  • Added Hex View alongside Listing and Graph views.
  • Optimized rendering.
  • UX improvements.
  • Fixed: Don't bruteforce-query functions list from the core.
  • Fixed: Don't relayout graphs on mouse events.
  • Fixed: Actions keybinds.

Core

  • Decoupled name/function/entry relationships.
  • Added initial support to calling conventions.
  • Implemented callback and arguments resolution using KB (eg. window procedures).
  • Resolved callbacks follows KB and gets typed correctly.
  • Report when mapping fails.
  • Customizable string terminators.
  • Cleaned, improved and hardened KB parser.
  • Added void builtin type.
  • Changed hex character casing to uppercase.
  • Reworked Hooks implementation.
  • Expanded comments implementation for more detailed listings.
  • Listing now support empty lines.
  • Added RD_OP_STUB operand kind (for plugin development).
  • Added rd_reader_skip.
  • Added rd_scratch_putchar, rd_scratch_first, rd_scratch_last and rd_scratch_each.
  • Added rd_lift_prev and rd_lift_instruction.
  • Added rd_function_get_type.
  • Lifter now reports failed decodings.
  • Type-Checked printf formatting.
  • Optimized SQLite schema for performance.
  • Optimized I/O performance.
  • NULL check rd_i_typedef_find.
  • MacOS support.
  • FreeBSD support.
  • HaikuOS support.
  • Fixed: Major graph performance regression since BETA1.
  • Fixed: rd_integral_from_size failures.
  • Fixed: Assertion when graph block ends exactly at segment end.
  • Fixed: Don't render arrows when destination is in the middle of an instruction.
  • Fixed: Byte-sized autogenerated names parsing.
  • Fixed: Crash in analyzer inserter predicate.
  • Fixed: Typedefs serialization.
  • BREAKING: Projects now follows API version.
  • BREAKING: RD_MODULE_EXPORT replaces rd_plugin_create/destroy/version.
  • BREAKING: Reworked registers handling.

Processors

  • Z80.
  • MOS6502.
  • BREAKING: Added instance_size field to RDProcessorPlugin (auto-allocation when create is unset).

Loaders

  • ZX Spectrum (SNA, Z80, TAP).
  • NES (NROM only).
  • PE: PDB name logging.
  • PE: Read TLS directory.
  • ELF: detect xtensa architecture.
  • ELF: load os/unix/libc/<arch> KB.
  • BREAKING: Added instance_size field to RDLoaderPlugin (auto-allocation when create is unset).

Analyzers

  • MSVC Exception Handling types (EXPERIMENTAL).

KB

  • Implemented symbols. namespace.
  • Implemented prototypes. namespace.
  • Added os/unix/libc definitions.
  • Updated os/win32 definitions.
  • Added x86 calling conventions.
  • Added calling conventions to Win32 API.
  • WS2_32 ordinals.

Workspace

  • Added MacOS CI workflow.
  • Added FreeBSD CI workflow.
  • Added HaikuOS CI workflow.

v4.0.0-beta2 - 2026-08-05

GUI

  • Loaded types are now visible in a dedicated dialog.
  • Implemented patching and general editing in UI.
  • Detect Tiling WMs on Linux in Debug builds and lock main window's size.
  • Improved cursor movement behavior in listing and graph views.
  • Added load file from command line support.
  • Added SELECT_ALL action, reworked Edit menu.
  • Added Reanalyze action.
  • Added UNDEFINE, CODE, DATA and Create function menu actions.
  • Adjusted rendering mode ordering.
  • Updated welcome page.
  • Cleaned UI.
  • Smoother UX.
  • Bumped QHexView to v5.1.3.
  • Fixed: Missing CTRL+Enter in comments dialog (#8).
  • Fixed: Don't show reference dialog when no xrefs are available, log instead.
  • Fixed: Don't use native dialogs for QFileDialog::getExistingDirectory.
  • Fixed: LoaderDialog premature deallocation when RD_ACCEPT_FAIL_WRITE happens.
  • Fixed: Debug builds when ASAN or LSAN are not enabled.
  • Fixed: SplitWidget stability (dangling pointers) and better UX.
  • Fixed: Missing highlighting in EXPERIMENTAL flagged analyzers.
  • Fixed: Detach some actions from QMainWindow.
  • Fixed: Don't store RDFunction in FunctionsModel.
  • Fixed: Autojump on EP only after first analysis.
  • Fixed: Give detached dialogs a valid size.
  • Fixed: Stale RDGraph in GraphView after mutations.
  • Fixed: Manual addressing.

Core

  • Implemented rd_version_parse API.
  • Implemented rd_patch_instruction API.
  • Implemented rd_make_code API.
  • Implemented rd_get_flags API.
  • Implemented rd_encode_instruction and rd_encode_instruction_to APIs.
  • Implemented rd_typedef_is_builtin API.
  • Implemented RDLexer type.
  • Implemented RDScratchBuffer type.
  • Implemented general byte level edit and patching capabilities.
  • Added bool, function, isize and usize builtin types.
  • Added rol and ror API set.
  • Added rd_read_str API.
  • Added rd_resolve_name API.
  • Added PLACEHOLDER confidence level.
  • Added RECONCILE step in worker.
  • Notify reconciling to core peers.
  • Improved RDFunction creation, handling and internal storage.
  • Improved noret detection and propagation.
  • Reworked logging APIs.
  • Reworked RDType and RDTypeDef for future proofing and stability.
  • Implemented Encoding APIs.
  • Renderer now uses grouping instead of character matching.
  • Redesigned hex dump behavior and alignment.
  • Functions with unknown return type and/or arguments are now allowed.
  • Expanded surface APIs.
  • Prefer system-wide miniz if available.
  • BREAKING: Reworked internal FLAGS layout.
  • BREAKING: Removed int_size field in RDProcessorPlugin.
  • BREAKING: Removed unit field in RDSegment.
  • BREAKING: Simplified and cleaned up SQLite schema.
  • BREAKING: Removed RDListing type, rendering is now direct.
  • BREAKING: Projects now validate against core version.
  • Fixed: Crash in binary loader (#4).
  • Fixed: USER confidence in rd_i_set_type.
  • Fixed: Restore min_string on project load.
  • Fixed: Autorenamer confidence propagation.
  • Fixed: Analyzer plugins sorting.
  • Fixed: Ignore empty comments.
  • Fixed: String detection.

Loaders

  • PE loader now handles Load Config Directory.
  • Implemented Rich Header parsing and classification for PE files.
  • Improved PE classification logic.
  • Fixed: MZ loader now respects x86 decode/emulate hooks.

Processors

  • Implemented x86 encoder.
  • Improved x86 logging.
  • Fixed: x86 instruction hlt now propagates 'noret'.

Analyzers

  • Implemented MSVC RTTI plugin (experimental).
  • Moved VB decompiler from PE loader to "compiler" analyzer plugin.

KB

  • BREAKING: Reworked and simplified definition format.
  • Reorganized VB types and dependencies.
  • Added PE_LOADER_CONFIG_DIRECTORY struct.
  • Added MSVC RTTI types.

Workspace

  • Lowered CMake requirements to 3.20.
  • Updated unit tests, stricter requirements.
  • Added GCC 11 support.

v4.0.0-beta1 - 2026-06-23

See GitHub Releases page