Skip to content

Releases: redasm-dev/redasm

v4.0.0-beta2

Choose a tag to compare

@Dax89 Dax89 released this 05 Aug 12:12
  • Full editing: patch instructions, make code/data, undefine, reanalyze
  • Rendering now supports immediate updates: no internal rebuilds/resync needed
  • x86 encoder + assembler
  • Reworked type system, function signatures with unknown args/ret
  • MSVC RTTI analyzer (experimental)
  • PE Rich Header parsing & compiler classification
  • Lots of fixes and stability improvements

Full Changelog: https://github.com/redasm-dev/redasm/blob/v4.0.0-beta2/CHANGELOG.md

v4.0.0-beta1

Choose a tag to compare

@Dax89 Dax89 released this 23 Jun 13:06

The first public release since 2021.
REDasm has been completely rewritten with a brand new engine written in C and clean Qt6 GUI.

This is a BETA, expect rough edges, please report crashes, incorrect disassembly or any kind of bugs you encounter.

Highlights

  • core total rewrite in C
  • RDIL intermediate language for binary lifting
  • save and load the analysis session
  • the analysis database can be now exported for external tools inspection
  • cross platform: redasm is now continuously tested on Windows and Linux
  • renderer is now unicode aware
  • GPG signed releases straight from CI pipeline

Loaders

  • DOS COM
  • all MZ family (MZ, NE, LE/LX with dedicated VxD device driver analysis)
  • PE
  • ELF
  • Playstation 1 executables (PSX-EXE) and BIOS
  • XBE (original XBox executables)

Processors

  • x86 family (16/32/64-bit)
  • MIPS32 (BE/LE) with delay slot handling and register tracking
  • ARM, Thumb, AArch64

Analysis

  • function noret propagation
  • VB5/6 detection and structure analysis (eg. event handlers)
  • autorenamer in finalization pass
  • wide string detection (opt-in by loader plugin developers)

Known limitations for beta1

  • macOS is not yet supported because I don't own that hardware and I cannot test it
  • it's not possible to patch bytes or reassemble instructions
  • .map exporter is not available
  • currently stripped ELF binaries have limited test coverage

Nightly Build (2026-08-23)

Pre-release

Choose a tag to compare

@Dax89 Dax89 released this 06 Jun 05:57

core:

  • 08fef51 feat(RDScratchBuffer): added rd_scratch_each macro
  • 4596c69 fix: prefer u8 for overlay flags
  • 055e55e feat: improved RDBuffer I/O performance and reliability
  • c8cbd57 feat(hmap): improved and fixed implementation
  • 49ce528 feat!: reworked schema for big performance improvements
  • 198c354 feat!: extended comment support
  • 54607d1 fix(Renderer): allow empty lines
  • 2b05161 feat(RDScratchBuffer): extended APIs
  • e447750 feat!: instance_size field to RDProcessorPlugin and RDLoaderPlugin
  • 6af558b chore: disable jobs on forked repos
  • ab05526 feat(RDOperand): added RD_OP_STUB
  • fce2843 fix: byte-sized autogenerated names spitting
  • 6ce2560 fix: relax rd_integral_from_size failure
  • 029d31d feat: NULL check rd_i_typedef_find
  • 8c8b383 fix(RDSurfaceGraph): major performance regression since BETA1
  • f7381d9 fix: HaikuOS support
  • fc0aaef fix(RDIL): relax invalid operands
  • b9d6b3d fix: inserter when > 1 analyzers are available
  • 8dd5896 feat!: register handling rewrite
  • 4ccf1e3 feat: added RDProcessorPlugin.setup, refactoring

redasm:

  • df78de4 fix: reanalyze now invalidates current surface
  • 3ece424 fix(PatchDialog): resize to content
  • 54e60d7 feat(SurfaceGraph): jump_to_ep relies on rd_get_entry_point
  • 967aed9 fix(SurfaceGraph): always ask RDGraph
  • c97db8a fix(SurfaceGraph): do object equality, not pointer one
  • f063f1c chore: added CHANGELOG.md
  • 8e935aa feat: decouple name/function relationships
  • d52a734 fix(FunctionsModel): follow core notifications, don't brute force
  • db5f345 fix: hex character casing
  • 006be2f chore: reworked readme
  • 39423de fix: prefer QPlainTextEdit for logging
  • d619b92 fix(ContextView): column resizing
  • 557677a fix: simplified font settings
  • fd3c98b feat(surfacerenderer): optimized rendering pipeline
  • 2f06b88 feat: sync to core changes
  • 3777147 chore: disallow jobs on forks
  • 06e33de feat: sync to core changes
  • 9dc2782 chore: refactoring
  • 65cfa19 feat(SurfaceGraph): don't flood renderer on mouse-move and mouse-click
  • 113245e fix: local actions promoted to application wide

loaders:

  • c5dd6ec feat: ZX Spectrum loader plugin (WIP)
  • 2ad0359 feat(SNA): initialize z80 registers
  • ff48396 feat(SNA): improved mapping, load 48k ROM definitions
  • f563503 feat(SNA): organize code for various from ROM sizes
  • cd97484 feat(SNA): report EPs that lives inside ROM segment
  • 9811ebf feat(SNA): label stack
  • 8dbae5e feat(SNA): better validation
  • cc25bd6 fix(SNA): loading & mapping
  • 33baa84 fix(SNA): input mapping
  • 787f5da fix(ZXSpectrum): updated CMakeLists.txt
  • 1081a95 feat(ZXSpectrum): added Z80 format v1/v2/v3
  • a8e29ee feat(Z80): initialize registers
  • 7fea983 feat(ZXSpectrum): added TAP format
  • f60d375 feat!: prefer instance_size instead of custom allocators
  • bc4d077 chore: disable jobs on forked repos
  • ee9a478 feat: initial support for NES roms
  • 06cca28 feat(NES): map NES memory
  • 4c20018 feat(ELF): detect 'xtensa' architecture
  • 823b6b7 fix(PE): pdb file name reporting and labelling
  • e165535 feat(PE): parse TLS directory

processors:

  • b637226 feat(x86): completed encoder
  • 26a4bc6 feat(x86): use rd_format_to instead of RD_LOG_FAIL_TO
  • 42d5a55 chore: lower cmake requirements to 3.20
  • 17f04fc fix(x86): split decode/emulate interrupt hooks
  • e0e5e8e feat: removed 'int_size' field usage
  • 255ab52 feat: Z80 processor plugin
  • 5b3cba6 fix(z80): addressing is 16 bit wide
  • b223519 feat(Z80): track registers, generate xrefs
  • 089eea6 fix(z80): don't label 0 immediate constants
  • 8bc9799 chore: disable jobs on forked repos
  • 329a54c chore: bump to capstone 6.0.0-Alpha10
  • 9ec4bfa chore: refactoring
  • 719ff26 feat(mos6502): initial implementation
  • 918fb88 feat(MOS6502): improved support
  • f3974dc feat(MOS6502): analyze DISPL operands
  • 22dee5e feat(MOS6502): autotype references
  • 077aa58 feat(capstonebundle): conditional register processor plugins
  • 346abce feat(Xtensa): added support, keep it disabled for now
  • 17a6ba3 feat!: sync to core changes
  • 467ab18 chore: removed unused function

commands:

  • 1674f4f feat: explicit module version
  • ca93d41 chore: moved install step from workspace
  • f3eedd3 chore: lower cmake requirements to 3.20
  • 40f7f2b feat: decouple name/function relationships
  • 8fe19a6 chore: disable jobs on forked repos

analyzers:

  • 9dd5d64 feat: added 'compilers' analyzer module
  • 332fa68 feat(rtti): better vtable typing
  • 3be61b4 feat(rtti): deeper class detail propagation
  • 9dc63d8 fix(msvc_rtti): wrong typedescriptor, unchecked by default
  • cb19b00 chore(VB): refactoring and match KB names
  • 17910fb feat: mark MSVC RTTI plugin as experimental
  • 2552479 chore: lower cmake requirements to 3.20
  • 9b36a99 feat: decouple name/function relationships
  • 614fa20 fix: hex character casing
  • feb53c0 chore: disable jobs on forked repos
  • 7695d63 chore(compiler): reorganized source tree
  • c05f9e5 feat(compiler): added MSVC exception handling analyzer
  • e28bb8d feat(compiler): scan for FuncInfo structs

kb:

  • 6794839 chore: moved install step from workspace
  • 0e7b8de feat(coredll): added libc functions dependency
  • 59d43e1 feat(win32): added MFC ordinals
  • f0dced4 feat(PE): added PE_LOAD_CONFIG_DIRECTORY
  • c851244 feat(compiler): added MSVC RTTI types
  • ae2a2b0 feat: reorganized and renamed VB related types and dependencies
  • 9df78b1 chore: lower cmake requirements to 3.20
  • f6ee872 feat(PE): removed IMAGE_DOS_HEADER
  • 29ba576 feat!: reworked and simplified KB format
  • 0c8c1f0 feat: sync to type system changes
  • 2905057 feat(PSX): added missing bioscall B(0x5b)
  • 54ed811 feat(ZX Spectrum): added 48k ROM definitions (WIP)
  • 42a4676 feat(zxspectrum): categorized and extended ROM 48k routines
  • a22181a feat(ZXSpectrum): full 48k ROM coverage
  • b9c9877 feat(win32): added ws2_32.dll ordinals
  • 6eb702b feat(compiler): added MSVC exception handling types
  • 5d8a2fe feat(PE): added TLS directory definitions
  • 2e18573 feat: updated PE and MSVC EH implementations

REDasm 3.0 BETA 5

Choose a tag to compare

@Dax89 Dax89 released this 16 May 17:37

REDasm

  • Fixed Dialog plugins implementation (QtDialogUI)
  • Improved QHexView integration (still WIP)
  • Code cleanup
  • Minor Fixes

LibREDasm

  • Redesigned internal address space representation (for performance)
  • Redesigned and simplified Document API
  • Improved surface rendering performance
  • Improved analysis accuracy and speed
  • Fixed Control Flow Graph generation
  • Separate comments from autocomments
  • Expanded Type System and its APIs
  • Drastically reduced memory usage
  • Improved string detection performance
  • Analyzers can now be hidden from plugins
  • Code cleanup
  • Minor Fixes

Plugins

  • Implemented DEX Loader
  • Implemented Dalvik Assembler
  • ELF: Fixed segmentation fault

REDasm 3.0 BETA 4

REDasm 3.0 BETA 4 Pre-release
Pre-release

Choose a tag to compare

@Dax89 Dax89 released this 14 Feb 18:19
  • KDDockWidgets integration
  • Removed IDA Like animation for performance and stability
  • Added analysis Dashboard (still work in progress)
  • Fixed arrow rendering in listing mode
  • PE: Fixed classification, detect MinGW
  • PE: Demangle Imports
  • MIPS: Decode COP instructions (some are still missing)
  • MIPS: Added more support for macro instructions
  • MIPS: Initial support for binary lifting
  • MIPS: Added MIPS64
  • ARM: Improved support
  • Added Jump/Call Table Support (available only for x86 atm)
  • x86: Added prologue analysis for x86_64 too
  • Improved XBox 1 Executable analysis
  • Improved analysis reliability
  • Improved listing rendering for readability
  • Reimplemented hex conversion for maximum performance
  • Fixed Binary loader
  • Added more unit tests
  • Minor fixes

REDasm 3.0 BETA 3

REDasm 3.0 BETA 3 Pre-release
Pre-release

Choose a tag to compare

@Dax89 Dax89 released this 31 Jan 20:46
  • Improved string detection
  • Implemented ESP32 ULP Assembler Plugin
  • Improved Listing appearance
  • MIPS: Added macro instructions analysis in order to generate cross references
  • Merged Capstone based plugins (only ARM64 and ARM atm)
  • Disassembler Engine's fine tuning
  • API Refactoring
  • Restored VB Decompiler
  • Added and Restored unit tests
  • Minor Fixes and Regression Fixes

REDasm 3.0 BETA 2

REDasm 3.0 BETA 2 Pre-release
Pre-release

Choose a tag to compare

@Dax89 Dax89 released this 16 Jan 18:16
  • Reimplemented cross references analysis
  • Implemented Tensilica Xtensa and ESP32 support
  • Added support for Xtensa ELF executables
  • Implemented COFF plugin
  • Improved build system
  • Restored RDCommandPlugin (WIP)
  • Fixed UI related APIs
  • Minor fixes

REDasm 3.0 BETA 1

REDasm 3.0 BETA 1 Pre-release
Pre-release

Choose a tag to compare

@Dax89 Dax89 released this 09 Jan 21:25
88c8d67
  • New User Interface
  • Brand new Disassembler Engine
  • Plugin interface
  • Plain C API
  • C++17 Core
  • Support for x86 and x86_64, ARM64 and MIPS architectures
  • Support for PE, ELF, PSX and XBOX1 executables
  • 32 Bit MSVC RTTI support

REDasm 2.1.1 Fix

Choose a tag to compare

@Dax89 Dax89 released this 09 Jan 16:01
b8c52e6

Added missing include for the legacy version

REDasm 2.1.1

Choose a tag to compare

@Dax89 Dax89 released this 23 May 15:25

(Quality Release)

  • Reimplemented GotoModel.
  • Fixed crashes and undefined behaviors on ARM.
  • Fixed out-of-buffer access.
  • Fixed Goto Action.
  • Removed some u64 <-> size_t silent conversions.
  • ListingItemModel: Fixed invalid memory access.
  • DisassemblerTextView: Fixed text selection.
  • 32-bit OS support (WIP).
  • Minor fixes.