Release Notes
Version: 5.9.4
Previous: 5.9.2
Commits: 276
Contributors: 18
curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.4/radare2-5.9.4.tar.xz | tar xJv
radare2-5.9.4/sys/install.sh
Highlights
More details
Authors
Adel Brandon Lin Claudio Jeker Enno T. Boland Francesco Tamagni Lars Haukli Richard Patel Sylvain Pelissier Xavi Artigas astralia aviciano condret ffg53 meme pancake pancake satk0 shurizzle
Changes
analysis
- Ignore NEVER bit in branch instructions on SPARC
- Fix SPARC call instruction branches
- Expose mem delta on store variables
- Improved default function names
- Add anal.flagends to stop a functions when flags are found
- Fix aac on rebased files
- Fix aae behaviour on invalid instructions
- Optimize RAnalOp.setBytes with extra sauce for NEWABI
- Fix help for 'abt?'
- Honor codealign in nopskiHonor codealign in nopskip
- Reuse R_PERM in RAnalVarAccess.type instead of custom enum
- Make anal.vinfun false by default
- Show jmptbl bb cases in
ab
output (not just for abj) - Initial support for MIPS jump tables (anal.jmp.tbl)
- Fix missing arm reference regression in aaaa
- Early stop with breakoninvalid reducing warning logs in 'aaaa'
- More type fixes
- Add more types from posix
- Fix missing entries in the afla matching with aflq
- Add anal.emu to run aaef in aaa and aef in af, for now optional
- Implement missing but documented abi and refactor ab/ap
- Only use anal hints in aac on arm 16/32
- Dont list vars in afij output
- Fix bb outputs computation in afij
- Fix #22995 - Dont list vars in afi, we have afv for this
- Register strtonum function type
- Improvements in aaa output and initial work towards twice afva checks
- The sixref command shouldnt change current seek
- Add op-count / bb-ratio info in afi/afij
api
- Implement r_base32 APIs for my future self
arch
- Initial support for the UXN machine
- Fix few instruction type issues for mips.gnu
- Expose missing cpus list in the ARM plugin
- Add support for sfence.vma instruction for riscv
- Missing read callbacks are now debug messages
bin
- Make dynsym and hash sections wordable
- Implement RBin.attr(str2bits)
- Implement RBinPlugin Commands in the new abi via i:
- Return earlier when bin.classes is false
- Use callAt instead of cmdAt for section formats
- Fix #23064 - Implemented iclc command
- Fix parsing dmp binaries on big endian systems
- Fix incorrect parsing of MZ headers in big-endian machines
- Tweak the custom swift demangler and fix tests
- Fix Objective-C classes Swift demangling
- Fix #23110 - Improve the swift demangler to handle more constructions
- Create sections for dyldcache stub islands
- Set dyldcache entry point to the first map
- Run the native swift demangler tests on darwin-x64 too
- Initial support for RBin->RIO redirections
- Early stop on corrupted macho method storage
- Early catch some missbehaves in the macho class parsing
- Fix iej/ilj on ob* and remove ieee (use ie;iee instead)
- Fix the symbol parsing in Plan9
- Add dir.sourcebase newabi + faster bin.dbginfo on macOS
- Fix RABIN2_SWIFTLIB and add tests from r2 and rabin2
- Fix dyldcache deps carving logic
- Make Mach-O size ut64
- Bring back the ig command to guess binary size
- Support resizing the BSS section with rabin2 -O
- Fix hash limit and fix segment hashing iSS
- Fix section hashing and clarify help
- Reduce memory dereferences in the macho parser and more cleanups
- More cleanups on the objc parser, with minor optimizations
- Minor optimizations in the ObjC demangler
build
- Also compile for WASI reactor
- Fix cwisstable on ppc-le
ci
- Muon build fixes
- Get rid of the deprecated macos-11 github targets
cons
- Reimplement internal cfg.editor line editor
- Few fixes for the line editor
- Highlight code modifier ~:))
- Support multiline RCons.message()
- Fix scr.html in pdc
core
- Avoid over-unsetting fixed arch / bits
- Add anal.fixed.* (move anal.gpfixed and add arch/bits ones)
- Don't ask sections if fixed arch / bits set
- Show io and core plugin version in the json listing
- Honor log callback return value on custom callback calls
crash
- Fix null deref in
r2 -d l
- Fix huge allocation when casting int to ut64
- Fix a recently introduced uaf in pdc
- Fix null deref in dbtj
- Fix null deref when running iS without any binobject loaded
- Fix stack overflow in strings search
- Fix infinite loop in the afla command spawned by a^5
- Fix #22972 - deadlock in :: fixed by handling ^C
- Each RLogCallback have its own user pointer
- Fix #22969 - segfault when running
axt@j>$f
crypto
- Expose the ELF hash algorithm in
rahash2 -a elf
- Initial support for Ed25519 signatures
debug
- Adjust OpenBSD code to set the process state to be less wrong
- Fix drr - register periscoping on arm-thumb
- Better output for dL command
- Fix infinite loops in the heap parser and fix 2 broken tests
- Initial support for native debugger on Linux/s390x
- Fix the double-increment in the debug traces, avoid double tracing
- Add missing rv64 case for the native debugger
decompilation
- Initial support for stm8 pseudo
decompiler
- Pseudo for arm64 replacing xzr with zero
- Fix unmatching brace in pdc output
- Add few missing arm64 fpu instructions for pseudo
- Minor fixes for the x86 pseudo parsing
- Remove empty lines and onelinify the comments in pdc
- Better syntax for conditionals and switch/case constructions
- Implement pseudo for arm64 br and ldruh
- One more orphaned basic block in pdc
- bhi and ldrsw for arm64.pseudo
-
- More refined goto statements in pdc and add and colorize missing returns
diff
- Check and early fail if symbol existance in radiff2-g
disasm
- Improve sparc.cs disasm replacing +- with -
- Add test and fix for the arm64 varsub issue
- Fix asm.emu derefenced word issue on big endian
- Fix improper display of IPv4 addresses in big-endian machines
- Store operations also deserve a place for asm.emu
- Honor cfg.json.num in pdbj
- Implement madd/msub/mneg support for arm64.pseudo
- Replace wzr with 0 in the arm.pseudo
- Fix asm.pseudo for arm64's movk
- Display instruction addresses on each switch blocks in pdco
- Initial support for small integer (SMI) anal hints in disasm (ahi)
- Add support for pascal strings meta type Csp
- Honor kernel crash hints in hexpairs for rasm2 -D
doc
- Add info about single module recompilation
emulation
- Use codeAlign instead of dataAlign for thumb stepping
endian
- Fix mdmp list sz
esil
- Fix dbg.trace behaviour with emulation
fs
- Build fs.squashfs with the make build system too
graph
- Remove non-id code from the gml graph output
help
- Fix afv help to make it accessible through tghe af?*
io
- Fix io.cache
- Add :iF command to dsc
- Initial support for the UF2 file format
- Improve :iP command usability in dsc
- Refactor the io/oi commands and fix io behaviour
- Add iP command to dsc to get authenticated pointer info
- Fix dsc subcache format detection
- Dont seek from the server side rap
json
- Improve the smile operator code tokenizer ~:)
- Use RCorePJ if possible instead of PJ
lang
- Support base64 encoded r2js scripts
- Python goes before Python2 in the rlang plugin now
- Fix TS usage by making the exports object point to globals
- Add R2_PAPI_SCRIPT env var for custom r2papi testing
panels
- Add manpage submenus under the Help
- Implement menu separators, project and analysis options
- Better key hints visualization
- Better key hints in for menu, tabs and title selected panel
- Honor hex.cols in pxb bitdump view
- Add phl/phL as an alias for Lh and update help
projects
- Implement prj.history to save/load the per-project command history
qjs
- Fix loading some r2frida-compiled scripts
r2js
- Fallback the default r2papi when not loaded from disk
- Update r2papi from git, use src from /tmp instead of npm
- Add Visual Studio "map" file parser script
r2pipe
- Add missing command to r2
?
- Fix r2pipe2 json format not being trimmed
- Add r2.cmd2[j] APIs for r2js
r2pm
- Do not check for updates when r2pm -r, -h and -H
ragg
- Fix ragg2 foo.c on macOS
refactor
- Replace other r_return_* uses and update DEVELOPERS.md
- Deprecate r_str_new and R_STR_DUP
scripts
- Add an r2js script to import il2cpp metadata
search
- Fix ^C in /ac
- Show offset of the truncated large strings
- Fix #22974 - minimum blocksize to reduce missing matches in /ad
- Reduce false positive on "java source" magic
- Add a magic file for flutter magics
- /ad supports glob matching now
shell
- Fix 'r2pm -r false' because
exit(system("false"))
is a lie - !! for session history, !. for history save
- Fix move cursor right with arrow keys issue in dietline
- Support '0x, not just '@0x and improve "'?'" help
- Add -D as an alias for iD
- Improve the multiline comment user experience
- Better parsing for the "join" command
- Fix 'rm $foo' and '$foo+=N'
- Improve argument parsing logic for 'tail'
- Fix the tail syscmd
- Rename ib as ooi
- Honor numeric argument in q!! and simplify command logic
- Add a warming help message under the
help
command - Fix appending redirection on internal alias files
- Fix 'Cannot redirect the same fd twice' bug in the command parser
- Add JSON support to the iD command and improved error handling
- Implement the new fD command to filter/mangle flagnames
- Remove trailing space in aflq output
- Consistent json output with no file, more tests and reorder i? help
- Remove ihh and iHH, no need for confusing swappable aliases
- iSm is no longer a valid command as it was doing nothing
- Handle 'make' as a valid shell command
- Better handling the v subcommands
- Better help and invalid subcommand handling for s
- Autocomplete with tab the "open" argument
- Fix wt, aht help messages and early catch badly formatted help messages
- Add help for aab
- Add help for aax and aaF causing a?* to be slow
- Fix s+0x1000000000
- Return proper json for some i*j subcommands when no file or rbin is opened
- Initial implementation of r2pipe2
- Add r2pm hint for r2ai if the package is not installed
socket
- Add curl post support and minor http fixes
tests
- Run the json tests when loading no files in r2
- Empty strings cant be considered valid json
- Add r2r -H and honor R2R_JOBS as an env replacement for -j
tools
- Fix arch selection when loading no files
--
with r2 -a -- - radiff2 -A = aa instead of aaa
- Add rax2 -q to be quiet when printing hexdumps
types
- Fix and unify [err/warn]{xc} function, improves decompilation
util
- Add support for "double" type in RTable
visual
- Improve Ve glitches on small terminals
- Honor cfg.editor when there's a comment in V;
- Fix bug in V;! not bringing back the mouse
- Add Bit Registers panel
- Initial implementation of ?iu for the onelinered custon UI
- Fix last memleaks, simplify Vz to toggle folding basic blocks
- Fix shift-tab and space behaviour in visual mode
- Improved space key behaviour for the hexdump
- Better error handling in vvs
- Always show function signature in visual disassembly
- Implement soft scrolling over varlisting in visual disasm
- Implement Vbw command to browse window types in visual
windows
- Fix #23093 - RStdin.slurp() on Windows
zignatures
- Make duplicated zignatures optional via zign.dups + tests
zinatures
- Add support for parsing next zignatures