3.0 codename: its-still-radare2
Release 3.0.0 (codename: its-still-radare2)
Portability
- Fix build for GNU/Hurd by removing the PATH_MAX usage (#11816)
- Make r_sys_usleep use clock_nanosleep (#11410)
- Make compilation on Raspberry Pi more user friendly (#11379)
- Fix signbit build problems for android-arm
- Scripted dynamic building of alpine docker image (#11515)
- Reimplement TCP Server with libuv and add configure/meson flags (#11403)
Binaries
- Improvements for ELF section resizing
- Fix entrypoint resolution when program headers is missing
- Improve program headers handling in ELF
- bin/demangle: demangle names that end with
@@CXXABI
- Improve the language detection for Rust, C++ and LLVM block extensions
- Detect binaries compilers with sanitizers (#11479)
- Parse CodeSign blobs and compute SHA1/SHA256 in Mach-0 binaries (#11491)
rabin2 -OC
, WIP requires proper refactoring and redesign
IO
- Make
r_io_plugin_{read,write}_at
not seek character devices. - Add
r_io_{desc,fd}_is_chardevice
. - Add
r_io_desc_open_plugin
.
Visual
- Added window mode in visual panels
- Show column headers in RBin info (r2con) (#11444)
- radare2: Try to detect color support and set
scr.color
accordingly. (#11420) - Fix #11455 - Implement internal less pager with
scr.pager=..
(#11548) - Use full screen in
r_cons_less
(last line was not used before)
Debugger
- Watchpoints menu is back and Breakpoints menu is improved a bit (#11544)
- Fix #11509 - Handle segfault signal in the macOS and iOS debuggers (#11557)
- Use
PT_ATTACHEXC
andPT_SIGEXC
on mac to get BSD signals as XNU exceptions - Fix debugging in FreeBSD 11.2 (#11726)
- Introduce ptrace-wrap, to support multi-threaded debugging in Linux
Analysis
- Add initial documentation for ARMv8 PAC instructions
- Upgrade arm.gnu disassembler to support ARMv8.3 (#11691)
- Improve MSP430 function boundaries analysis
- Detect function prefixed with
__libc_
and__GI_
(#11663) - Add
aang
to recover function names from stripped Go binaries (#11594) - C-Sky and MCore support for r2 (#11448)
- Improve ARM and X86 ESIL emulation
- Zignatures now support sha256 bbhash
- Fix #11437 - syscall calling conventions for x86-64 (#11549)
- print class name in
avra
(#11486) - Fix ESIL x86-32 for 'push esp' (#11384)
- Implement API for loading interrupt handlers (thx @vifino)
- ESIL CHANGE: The
==
operation should not push any value back on the stack, use$z
andNUM
for this (#10006)
Disassembly
- Add
asm.usercomments
to disobeyasm.comments
(#11620) - Improved X86 assembler
- Fix
asm.describe=1
whenasm.cmt.right=0
(#11803) - Make up graph with new UTF-8 character for the backward lines (#11770)
Commands
- Command repeat (prefix syntax) is now ut64 (#11656)
- Handle partial address seeks directly from RNum (#11664)
- Add commands to print ASN1/DER/PKCS7 in normal and quiet modes (better than openssl asn1parse), added more OIDs
- Fix #11071 - Implement
1u8
,1u16
,1u32
,1u64
in RNum (#11765) - Updated help messages and new
?$?
variables - Fixes in
pCx
,pxr
,pd-
,pd--
,pae
,pade
,.. - Improve the
t
subcommands with JSON output - Fix #10290 - Support
R2_
and without prefix inr2 -H
- Add
pFo
, parse certs from Mach-0's cdhash and minor X509 cleanup - Added
cmd.load
: Run when binary is loaded (#11483) - Implement the
_
(underscore command) to print the output of the last command
Refactoring
- Fix #11616 - Remove the use of RMemPool and update some comments for future discussion (#11665)
- Enabled UBSAN (Undefined behaviour, improve stability on ARM/MIPS platforms)
- Enabled coverage checks in Travis CI, added Coveralls bot
- Enabled ASAN in Travis CI for passing tests
- Fix GCC 8 warnings
- Fix a lot of undefined behavior thanks to the
r_assert
API autogen.sh
now usesr2pm
to updateacr
- Use more
sys/indent.sh -i
(supportsclang-format
) - Fix a lot of memory leaks
- Fix #11112 - Rename
{srwx,flags,perms}
toperm.
(-21 LOC) - Unify
R_IO
,R_BIN
,R_BP
, .. intoR_PERM_*
using 1 letter syntax - Huge speed up thanks to updated SDB, which fixes the hashtable implementation making it use less memory and perform better
Heap
dmh
with glibc now works without symbols- linux_heap_glibc: fix
dmhf
and allowsdmhf @thread_arena
(#11441) - linux_heap_glibc :
dmha
anddmht
, check threaded arenas free status (#11390)
Bugs
- syscall: do not reload sdb database if nothing changes (#11801)
- Fix more crashes related to the RStrBuficization of RAsmOp
- Added main detection for linux64 endbr64 (#11731)
- Implement bruteforce block to find hash collisions (#11595)
- Fix SHA digest alignment issues found by UBSAN (#11596)
- Fix #10408 bitwise rotations in RNum (#11508)