Release – Radare 3.0.0 (codename: its-still-radare2)
Portability
- Fix build for GNU/Hurd by removing the PATH_MAX usage
- Make r_sys_usleep use clock_nanosleep
- Make compilation on Raspberry Pi more user friendly
- Fix signbit build problems for android-arm
- Scripted dynamic building of alpine docker image
- Reimplement TCP Server with libuv and add configure/meson flags
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
- Parse CodeSign blobs and compute SHA1/SHA256 in Mach-0 binaries
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)
- radare2: Try to detect color support and set
scr.color
accordingly. - Fix – Implement internal less pager with
scr.pager=..
- 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
- Fix – Handle segfault signal in the macOS and iOS debuggers
- Use
PT_ATTACHEXC
andPT_SIGEXC
on mac to get BSD signals as XNU exceptions - Fix debugging in FreeBSD 11.2
- 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
- Improve MSP430 function boundaries analysis
- Detect function prefixed with
__libc_
and__GI_
- Add
aang
to recover function names from stripped Go binaries - C-Sky and MCore support for r2
- Improve ARM and X86 ESIL emulation
- Zignatures now support sha256 bbhash
- Fix – syscall calling conventions for x86-64
- print class name in
avra
- Fix ESIL x86-32 for ‘push esp’
- Implement API for loading interrupt handlers
- ESIL CHANGE: The
==
operation should not push any value back on the stack, use$z
andNUM
for this
Disassembly
- Add
asm.usercomments
to disobeyasm.comments
- Improved X86 assembler
- Fix
asm.describe=1
whenasm.cmt.right=0
- Make up graph with new UTF-8 character for the backward lines
Commands
- Command repeat (prefix syntax) is now ut64
- Handle partial address seeks directly from RNum
- Add commands to print ASN1/DER/PKCS7 in normal and quiet modes (better than openssl asn1parse), added more OIDs
- Fix – Implement
1u8
,1u16
,1u32
,1u64
in RNum - Updated help messages and new
?$?
variables - Fixes in
pCx
,pxr
,pd-
,pd--
,pae
,pade
,.. - Improve the
t
subcommands with JSON output - Fix – 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 - Implement the
_
(underscore command) to print the output of the last command
Refactoring
- Fix – Remove the use of RMemPool and update some comments for future discussion
- 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 – 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
- linux_heap_glibc :
dmha
anddmht
, check threaded arenas free status
Bugs
- syscall: do not reload sdb database if nothing changes
- Fix more crashes related to the RStrBuficization of RAsmOp
- Added main detection for linux64 endbr64
- Implement bruteforce block to find hash collisions
- Fix SHA digest alignment issues found by UBSAN
- Fix bitwise rotations in RNum
Directly related posts: