Radare2: 3.0 codename: its-still-radare2

10/15/2018 10:35 pm

Radare2: 3.0 codename: its-still-radare2

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 and PT_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 and NUMfor this

Disassembly

  • Add asm.usercomments to disobey asm.comments
  • Improved X86 assembler
  • Fix asm.describe=1 when asm.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 in r2 -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 uses r2pm to update acr
  • Use more sys/indent.sh -i (supports clang-format)
  • Fix a lot of memory leaks
  • Fix – Rename {srwx,flags,perms} to perm. (-21 LOC)
  • Unify R_IO, R_BIN, R_BP, .. into R_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 allows dmhf @thread_arena
  • linux_heap_glibc : dmha and dmht, 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: