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 32521367+08A@users.noreply.github.com
- Anton Kochkov anton.kochkov@gmail.com
- Aswin C realc@protonmail.com
- atodekangae atodekangae@gmail.com
- Azox 0x8008135@users.noreply.github.com
- condret condr3t@protonmail.com
- Cyrill Leutwiler bigcyrill@hotmail.com
- David CARLIER devnexen@gmail.com
- Dennis Goodlett dennis+git_swoops@hurricanelabs.com
- DharmaCode 1915998+DharmaOfCode@users.noreply.github.com
- Disconnect3d dominik.b.czarnota@gmail.com
- Eduardo Novella ednolo@inf.upv.es
- Eli Schwartz eschwartz93@gmail.com
- Fangrui Song i@maskray.me
- Florian Märkl info@florianmaerkl.de
- Francesco Tamagni mrmacete@protonmail.ch
- FXTi zjxiang1998@gmail.com
- Giovanni 561184+wargio@users.noreply.github.com
- gkpln3 gkpln3@gmail.com
- GustavoLCR gugulcr@gmail.com
- HoundThe kajm101@gmail.com
- Ian Huang imyxh@protonmail.com
- Ishi Tatsuyuki ishitatsuyuki@gmail.com
- Jerome-PS jerome.hamm@planete-sciences.org
- karliss karlis3p70l1ij@gmail.com
- Khairul Kasmiran kazarmy@gmail.com
- Les De Ridder les@lesderid.net
- Liumeo liumeo@pku.edu.cn
- Maxim Ivanov ulidtko@gmail.com
- mdolmen mathieu.dolmen@gmail.com
- meme meme@users.noreply.github.com
- meowmeowxw 43200867+meowmeowxw@users.noreply.github.com
- Michael Scherer mscherer@users.noreply.github.com
- NIRMAL MANOJ C nimmumanoj@gmail.com
- Ole André Vadla Ravnås oleavr@gmail.com
- Óscar Carrasco oxcabe@gmail.com
- pancake pancake@nopcode.org
- Paul I pelijah@users.noreply.github.com
- phakeobj 53140177+phakeobj@users.noreply.github.com
- RHL120 60626307+RHL120@users.noreply.github.com
- Riccardo Schirone sirmy15@gmail.com
- Sean Maher seanptmaher@gmail.com
- Sergei Trofimovich slyfox@gentoo.org
- Soatok Dreamseeker soatok.dhole@gmail.com
- Sylvain Pelissier sylvain.pelissier@gmail.com
- terrynini terrynini38514@gmail.com
- Vane11ope vane11opeschw33tz@gmail.com
- Yusef Karim 48184686+yusefkarim@users.noreply.github.com
- zawwwu 58145197+zawwwu@users.noreply.github.com
- Zi Fan zifan.tan@gmail.com