Release Notes
Version: 5.6.0
Previous: 5.5.4
Commits: 254
Contributors: 16
Highlights
- ABI breaks - RAnal api is the new home for the RAsm plugins, reduce installation size
- Add an initial and working native reimplementation of r2pm in plain C (no posix shell required)
- Windows support will come later, needs more testing and user feedback.
- Initial release with support for threads (one RCore per-thread is supported for now)
- Remove or make TLS globals, add atomic support, fix mutexes and threads
- r2r testsuite now runs with the thread sanitizer enabled builds
- Remove all uses of
sdb_fmt
in exchange of the thread safetyr_strf
- More tests for ESIL and improve quality on x86, arm64, riscv, v850 and more!
- Improved usability and fixed some buggy interactions in panels, better help messages and improved color themes.
- Support latest capstone, and prefer system wide installation for better offline builds
- Add project loading in sandbox mode and add
dirty
bit to avoid saving things when nothing changed. - New commands: pdu, r-/r+, fc, aafs, pcc, /aF, isqq.
iS,
,axl
,/e
,pFB
,ws#
for more pascal string types support - Binary PLIST printing (pFB) which combines great with (pFA - for android binary xml)
- Orders of magnitude faster analysis with
aafs
andsixref
- Honor flag colors in hexdump and instruction tokenization in disasm
- Fix 3 CVEs since 5.5.4, lots of memory leaks and all the coverity critical issues
- Improve code quality by using new tools and stdint basic types
- Support arm32 debugging on native arm64 linux hosts
- Extend scripting support to quickjs and wren programming languages
- Add
time
measurement directive torarun2
- Add Rabin Karp faster search algorithm (/e) and fix some bugs in the search loops
- Add new arch plugins: loongarch, evm.cs, v850.np and chip8
More details
Authors -------
Adrian Laskowski Apkunpacker Claudemirovsky Dennis Goodlett Francesco Tamagni Lazula RHL120 Roman Valls Guimera Sylvain Pelissier aemmitt-ns gogo2464 junchao-loongson lasek0 meme pancake pancake
Changes
abi
- Move asm/wasm into anal, and add new opasm() callback
anal
- Simpler var counting API
- Add support for x86-32 callpop artifacts
- Add ablc, ab-, Fix and optimize in af- and aafs
-
- Add ablc, ab-, Fix and optimize in af- and aafs
- Fix 'afls' and add tests
- Fix heap overread in loongarch when len < 4
- Add axl command for consistency with afl for 'axlc'
- Fix reference order and use the API in sixref (2x faster)
- Initial implementation of the 'aafs' command
- Add support for the new loongarch architecture
- Improve the v850.np analysis, fix all call refs
analysis
- Simpler var counting API
- Add support for x86-32 callpop artifacts
- Add ablc, ab-, Fix and optimize in af- and aafs
-
- Add ablc, ab-, Fix and optimize in af- and aafs
- Fix 'afls' and add tests
- Add axl command for consistency with afl for 'axlc'
- Fix reference order and use the API in sixref (2x faster)
- Initial implementation of the 'aafs' command
- Add support for the new loongarch architecture
- Improve the v850.np analysis, fix all call refs
api
- Add r_core_help_match() to get help for a specific command
arch
- Initial import of the evm.cs plugin
asm
- Handle instruction operands in wasm.asm
- Refactor, improve and move chip8 support out of libr/asm
bin
- Parse relocs from Mach-O chained binds if no opcodes
- Add support for rebasing ARM64E_USERLAND24 chained format
- Fix isqq. command
- Fix #19541 - Fix null deref and stack exhaustion bugs in the kernelcache
- Implement iS, command (table query format for section listing)
build
- Fix #18621 - Specify ABI version to be X.Y instead of X.Y.Z
- Add 16GB pagefile for the windows ci
- Simplify meson logic and use ole's PR to fix Windows
- Add CI job to verify builds with system-wide capstone
- Use system capstone if available in sys/install.sh
- Fix ios-sdk compilation
- Bring back the 32bit builds for Cydia
- Use api9 for android-arm builds to bring back Kitkat support
charset
- Add iso8859_1
cleanup
- Remove globals from tcc code
cons
- Use static RThreadLock in cons
- Dont SIGINT in RCons when used in a thready way
- Improve the 'fc' command to unset and get color flags easily
- Add scr.theme and Lt commands as alias for 'eco'
- Improve the basic theme
- Fix all the known issues in the ayu theme
- Honor jmp/call argument colors by type
core
- Fix #19628 - wx+ as an alias for wxs
- Mark all globals (or most of them) as TLS variables
- Make RCons thread-friendly
- Fix race conditions in RCoreTasks
- Rewrite r_list_uniq with a faster algorithm
crash
- Fix null deref in xnu.kernelcache
- Optimize and fix heap overflow in asm.tabs using RStrBuf
debug
- Expose the 32bit arm reg profile on 64bit hosts
disasm
- Workaround to handle seg:off on x86_16 due to a capstone bug
- Fix #15473 - Align meta dwords in the middle of instructions
- Improve reg detection in asm highlighting + add test
- Fix reg/flag detection in disasm colorization
- Initial import of the v850.np plugin
- Handle anal.cpu=? and fallback for asm.cpu when no asm plugin
- Add asm.bytes.opcolor configuration option
doc
- Add 'first session' example in the README
esil
- Disable ESIL macros and add reproducer test
- Add helper function for pending macro handling
- Improve EVM analysis and update tests
- Macrofication of the '+=' and '-=' esil operations
- Add support for list12 logic in the v850.np distillation
- Fix esil for bnd jmp x86 instrs and cmn arm instrs
- Implement ESIL on more instructions for v850.np
- Handle ESIL in more v850.np instructions
help
- Fix helps for aan? aaf? and aes?
- Fix help for the 'aaa' subcommands
io
- Fix use-after-free in iobank rbtree usage
panels
- Autoset cache flag on whitelisted panels on create
- Fix #19410 - Fix cursor mode regression
parse
- Use static RThreadLock in TCC
ports
- Add basic support for loongarch
- Add 'pFB' command to use the new BPLIST parser
- Add scr.color.ophex to colorize 'px' with opcode type
- Honor flag colors in 'px' hexdump
- Fix pxa@e:hex.compact=true and add tests
- Improve the way color flags are handled
- Improve pcc output and add a test
- Add 'pcc' command to print block as C char*string
- Fix pdsf?, forbid V? and remove newlines in pxA?
projects
- A better way to check if a project has been saved
- Add prj.sandbox to enable experimental sandboxed project loading
r2pm
- Initial implementation of r2pm.c
refactor
- Use stdint like if there was no yesterday
- Remove asm.hexagon, anal one is enough
- Remove asm.ebc and merge disasm into the anal
search
- Implement /aF and /aFd to search for instructions in functions
- Add Rabin Karp algorythm to
- Add r_search_maps to
- Search adjacent maps together
- Move /e to new search API
- Fix bug in regex searching
- Add longest field to RSearch
- Add r_search_upate_read API
security
- Implement fine grained sandbox control
shell
- Implement rarun2 time=true attribute
tests
- Initial implementation of the dummy benchmark
tools
- Fix R2PM_DEPS handling in r2pm -ci
util
- Fix: Mark r_print_format globals as TLS
- Add atomic primitives for Windows
- Add safe static lock initialization
- Improvements and fixes for the threading APIs
- Introduce r_strf and stop using sdb_fmt
visual
- Fix #19409 - Close menu after creating a new panel from it
- Handle vE as in VE - edit color theme
- Fix fast jump with ahc on register calls
windows
- Use I64x instead of llx format strings for mingw builds too
write
- Add ws1, ws2 and ws4 commands for variable size pascal strings