4.5.0 Codename: Organized Chaos
Release Notes
Version: 4.5.0
Previous: 4.4.0
Commits: 426
Contributors: 58
Highlights
Analysis
- Initial API for base type kinds (enum, struct, union)
- Rename PowerPC to PPC
- Improve RISC-V analysis for compressed instructions
- Add endbr64 as a function prelude for x86-64 binaries
- Improve BP vars/args detection
- Detect register args used only by callee
- Match args name/types from function definition
- Improve itanium RTTI parsing and vtable search
- Refactor Variables out of SDB
- Implement basic concept of signature bestmatch
asm
- Add support for WebAssembly SIMD extension
- Boolify
r_asm_is_valid
andr_asm_set_syntax
API - x86_64/x86_32: Implement assembler endbr32 and endbr64 instructions
- x86_64: Support
mov r64, 0xffffffffffffffff
- x86_64: Fix
mov r32, -imm32
encoding - Move inferior GNU Hexagon plugin to extras
bin
- Apple Symbols file
- Improve Xcode symbols parser
- COFF
- Improve relocation support on COFF file format
- DEX
- Fix several crashes when loading corrupted files
- Performance improvements in DEX parsing
- DWARF
- DWARF 4 and 5 line parsing additions
- Several improvements/fixes in parsing
- ELF
- Use Dynamic segment entries instead of sections to find relocations
- Add support for BA2 ELF
- Add support for relocation entries for AARCH64 and PPC
- Print a warning when the entrypoint cannot be found and it is automatically set somewhere else
- Make glibc heap commands faster by resolving main_arena symbol
- Add support for glibc heap tcache pre/post glibc version 2.30
- Add missing reloc definitions for C-SKY, RISCV and AARCH64
- kernelcache
- Fix rebasing offset
- Mach-O
- Fix symbol names truncation issue when dealing with overly long strings
- Support arbitrary length identifiers
- Fix relocations on ARM Thumb
- Support Mach-O threaded binding for arm64e
- Rebase and strip pointers on Mach-O arm64e
- Fix parsing of objc class data pointer
- Do not automatically set the entrypoint of libraries
- PDB
- Add support for multiple PDB symbol servers
- Add function for reading PDB from buffer
- Fix command injection on PDB download (CVE-2020-15121, advisory GHSA-r552-vp94-9358)
- Pyc
- Move to radare2 core repository and improve/clean it
- PE
- Fix crash when resolving corrupted ordinal exports
- Speedup parsing PE exports
build
- Various fixes for Haiku
- Add support for binr/blob and fix android build in meson
- Add
--without-dylink
configure flag to disable libdl features - Add Debian 8 Jessie to GitHub CI
- CentOS tree sitter fix using gnu99 when available
- Fix the static build by dynamically resolving libutil symbols
- Add release Github workflow to create all the release artifacts
- Introduce
--without-r2r
configure option to disable compilation of r2r
cons
- Add VT sequences input support for Windows
crypto
- Remove hardcoded supported encoders names (e.g. base64, base91, punycode)
debug
- Fixes for windows debugger
- Improve exception logging
- Fix inconsistencies in killing/restarting a process
- Fix detaching without killing debuggee
- Expose exception reason for
di
io
- Add new
fd://
(handle://
on windows) plugin - Support
self://
plugin for Solaris and Haiku OS - Fix regression while loading large files (>2GB) on 32bit systems
lang
- Fix C/Cpipe when non standard library paths are used
- Implement RLang.spp for templated scripting
- Move #!v out of core (it's now available via r2pm)
- Fix usage of #!python, #rust, and #cpipe
- Do not include C/cpipe RLangPlugins on windows
magic
- Add Android boot image signature
socket
- Fix socket connect with SSL
util
- Move RAnnotatedCode API from r2ghidra to r_util so it can be reused
- Refactor r_big for gmp and SSL
- Remove unused RConstr API
- Remove unused RRangeTiny API
- Add support for weakref RStrBuf and add r_strbuf_setptr API
- Add r_vector_fini and r_pvector_new_with_len API and add bound checks on all RVector APIs
- Add support for n# in pfc
- Add generic reference counting implementation
rabin2
- Fix go detection in non-elf binaries
radare2
- Config variables
- Renamed variables
asm.jmpsub
->asm.sub.jmp
asm.var.submin
->asm.sub.varmin
asm.tailsub
->asm.sub.tail
asm.section.sub
->asm.sub.section
asm.var.subonly
->asm.sub.varonly
asm.regsub
->asm.sub.reg
asm.relsub
->asm.sub.rel
anal.in=raw
->anal.in=range
asm.bytespace
->asm.bytes.space
scr.ansicon
->scr.vtmode
(only on Windows build)
- New variables/options
anal.vars.stackname
: (true/false) Name variables based on their offset on the stackasm.bytes.right
: (true/false) Display the bytes at the right of the disassemblybin.str.enc=ascii
is a new option
- Renamed variables
- Commands
- Add
axv
andafvx
andafv=
commands to visualize var R/W accesses - Add
afvxj
to print JSON output ofafvx
- Add
dmia
command to list all info of a target lib and accept more print modes indmi
- Fix invalid json output for
drtj
command - Add key to highlight and go-to highlighted text in graph mode
- Add JSON print to
/E
command with/Ej
- Add
zb
command to find n closest matching graph zignature
- Add
- Initial refactoring to generate commands help automatically and support argv-style command handlers (
e cfg.newshell=true
) - Add API to print decompiled code
- Optimize
aao
objc analysis - Display file associated to the current file in the visual title
- Fix runaway scrolling in Visual mode after mashing down movement key on Windows Terminal
- Add F9 continue key to ESIL
rafind2
- Implement
rafind2 -F
to find the contents of the file
rasign2
- Add dumping of FLIRT signatures to rasign2
- Move main code to r_main
r2pm
- Initial support for git tags in r2pm
Details
More details
This release could not be done without the help of several people, who
contributed with many fixes and improvements. Above you can only find some short
highlights of what was done in this release, but many more important changes
have been committed and you can find them in our git log.
Authors
- Alexis Ehret [email protected]
- Anton Kochkov [email protected]
- Aswin C [email protected]
- atodekangae [email protected]
- Azox [email protected]
- condret [email protected]
- Cyrill Leutwiler [email protected]
- David CARLIER [email protected]
- Dennis Goodlett [email protected]
- DharmaCode [email protected]
- Disconnect3d [email protected]
- Eduardo Novella [email protected]
- Eli Schwartz [email protected]
- Fangrui Song [email protected]
- Florian Märkl [email protected]
- Francesco Tamagni [email protected]
- FXTi [email protected]
- Giovanni [email protected]
- gkpln3 [email protected]
- GustavoLCR [email protected]
- HoundThe [email protected]
- Ian Huang [email protected]
- Ishi Tatsuyuki [email protected]
- Jerome-PS [email protected]
- karliss [email protected]
- Khairul Kasmiran [email protected]
- Les De Ridder [email protected]
- Liumeo [email protected]
- Maxim Ivanov [email protected]
- mdolmen [email protected]
- meme [email protected]
- meowmeowxw [email protected]
- Michael Scherer [email protected]
- NIRMAL MANOJ C [email protected]
- Ole André Vadla Ravnås [email protected]
- Óscar Carrasco [email protected]
- pancake [email protected]
- Paul I [email protected]
- phakeobj [email protected]
- RHL120 [email protected]
- Riccardo Schirone [email protected]
- Sean Maher [email protected]
- Sergei Trofimovich [email protected]
- Soatok Dreamseeker [email protected]
- Sylvain Pelissier [email protected]
- terrynini [email protected]
- Vane11ope [email protected]
- Yusef Karim [email protected]
- zawwwu [email protected]
- Zi Fan [email protected]