Radare2: r2-3.7.0 – Codename TopHat

08/01/2019 3:16 am

Radare2: r2-3.7.0 – Codename TopHat

Radare2 3.7.0 Codename TopHat – New Features & Fixes

  • Version: 3.7.0
  • Previous: 3.6.0
  • Commits: 320
  • Contributors: 42

Radare2 3.7.0 Changes

anal

  • Fix – Sum the meta_data_code as covered code
  • Add more function definitions for posix and macOS binaries
  • Add argument to ‘afll’ to select column to sort by
  • Print MSVC RTTI Warnings only on anal.verbose=1
  • Add afj command to analyze jmptbl from the shell
  • Honor RAnalBlock->switch_op in afb. and afbi
  • Improve ARM64 PAC instructions support
  • Fix – Implementation of i.~{} aka RCoreItem
  • Added val op hints to let the user define jmptbl sizes
  • Fix  – Jumptables are made of signed values
  • Reduce xrefs sorting for aflj perf
  • Initial implementation of anal.trycatch blocks

asm

  • Implement PAC instructions in the ARM64 assembler

bin

  • Add icqj command
  • Fixes for msvc demangling
  • Add jni.h in bin/d for pfo
  • Update Mach-O hardcoded format definitions
  • Improve Mach-O header fields
  • Improve RConsBind and use it from RBin via iz^C
  • Use libswiftCore library if available to demangle Swift5 symbols
  • Fix oba on frida://
  • Add more e_machine values for ELF
  • Fix support for Swift5 demangling via bin.demanglecmd
  • Fix ordinal name on Linux for NE (invalid sdb path location)
  • Fix function detection on coff file
  • Add icqq to print unknow classnames
  • Add icc support for Java/Dalvik
  • Improve ObjC classes boundary checks and slightly improve demangling
  • Parse macho’s LC_ENCRYPTION_INFO command in rabin2 -H
  • Fix undefined behaviour bugs in malformed macho bins
  • Handle \u201cstub and resolver\u201d exports and fix export trie for dyldcache
  • Handle the export flags to avoid de-syncing
  • Support ObjC categories on mangled classes
  • Avoid loops in Mach-O export trie walking
  • Parse Mach-O exports trie structure
  • Fix : Detect ascii substrings
  • Show Class visibility information in icj for DEX
  • Fix symbols in wasm and add custom sections
  • Parse Rich header in PE
  • Initial implementation of the bin.libs imports linking
  • List multidex as dependency libs
  • Initial working implementation of bin.libs
  • The words of GOT
  • Fix new exe header detection for MZ
  • Optimize DEX subsystem detection
  • Fix – Invalid codesize in some DEX files
  • PoC: Initial implementation of direct bin symbols (20% speedup in loading times
  • Remove the check_bytes and more bin-buf refactoring
  • Add __const to potential VTable Sections
  • Add r2 iw and rabin2 -w to enumerate try/catch blocks
  • Parse the try/catch info of methods in DEX files

build

  • Fix android-static
  • Delete prefix/ and fix static builds (missing libmpc.a)
  • Fixes for the android compilations
  • Add $onlydebug in sys/ios-cydia.sh
  • Towards emscripten build fix (update sdb)
  • Enable ASSERTS on all travis builds, to avoid confusion
  • mesonbuild: Backport to python 3.5

cons

  • Make click and drag work on Windows
  • Fix – Impl. r_cons_arrow_to_hjkl for Windows
  • Fix scrolling directions in the hud
  • Implement RCons.echo() and use it from r2.cmd(“echo64”)
  • Fix grep in tasks
  • Fix : Integrate dietline with the hud
  • Fix for RCons.html when no color is used
  • Add example file for the pri command
  • Add pri command to print raw images in RGB (using stiv code)
  • Introduce ?e= and ?ed to print progressbar and 3D donut
  • WIP: Initial support for rotozooming strings via ~<zoom
  • Initial implementation of the human friendly json indent {:
  • Fix – Initial Implementation of vi mode
  • Enable click mouse input on Windows
  • Add mouse click support to VTE terminals. Hopefully fix others too
  • Click toggles cursor, make panels click mode more consistent
  • Add RCons.get_click(), initial integration in visual and panels
  • Initial support of mouse wheel+click
  • Improve the ayu theme
  • Clear also attributes on screen clear under scr.ansicon=0

core

  • Handle ^C in repeated commands
  • Implemented head and tail commands
  • Alphabetically sort more help messages and fix /ac/aa help msg
  • Fix i subcmd help grep
  • Initial implementation of calling the r*2 commands natively from inside r2
  • Expand on FreeBSD>=10 sandbox handling
  • Add -qq to force quit. Avoid the -qcq confusion

debug

  • Windows native debugger refactoring
  • More fixes to WinDbg
  • Step over rep and repne prefixed instructions with dsui
  • Fix breakpoints handling for FreeBSD
  • Fix single-step in the iOS-arm64 native debugger
  • Fix xnu_thread_get_drx for iOS/arm64
  • Honor SWI for step-over

decompiler

  • Add support for the native r2ghidra plugin detection in cmd.pdc

disasm

  • Don’t show function name comment in Visual mode
  • Fix – Improve asm.pseudo for Dalvik
  • Demangle xrefs if asm.demangle=true and use ‘@’ for xref locs
  • Fix – Skip reflines on non-executable offsets
  • Respace demangled c++ names
  • Do not asm.describe metaa .dwords
  • Find relocs at instr. location first, then the dest
  • Kill MOV/LEA comments
  • Implement global imports (aii) and improve disasm-print-instruction code
  • Implement ‘function imports’ concept (afii command)
  • Add some SuperH opcode descriptions

fs

  • Improve R_FS via IO

graph

  • VV<> draw refs/xrefs graphs for visual navigation
  • Implement icg to create class graphs
  • Honor utf8 in diagonal graph lines
  • Fix – Use HtUP to store canvas attributes instead of a sorted array
  • Add graph.body and graph.bubble config vars, move sin/cos into r_util
  • Initial implementation of RConsCanvas.circle and bubble graphs

io

  • Fix timeout issue in http.get
  • Better use of perm/mode names in R_IO

mount

  • Autocompletion for mount commands

mouse

  • Improve mouse support in visual prompt

panels

  • Drag and resize the panels with the mouse
  • Add aflm and handle : as separator in click
  • Handle click on toggle cache, frame title and screen borders
  • Add tiny graph in panels and simplify the code a bit
  • Show all the decompilers output at once
  • W + hjkl just works like Ctrl w + hjkl
  • Seek by clicking the offsets on Function Panel
  • Right click is supported to open ” widget
  • Wheel is supported
  • Mouse supports the menus which have spaces in their names
  • Mouse kind of works on the menu, still lot to work on
  • W + h/l moves the current panel to the direction like vim does with Ctrl W + h/l
  • Introduce scr.demo to add effects in panels enter/exit
  • Fix word highlighting with mouse in panels
  • Cache the pdc outcome for each function
  • Handle mouse click on panel tabs and select frames
  • The ‘g’ key seek to highlighted address in current panel
  • Highlight words onclick in panels
  • Fix – Add pdsf panel for the ” widget
  • Initial support for saving the layouts with the names feature
  • Unsync the base offset of each tab

parse

  • Add r_parse_ctype

print

  • Fix aho being ignored by asm.tabs

r2pipe

  • Enlarge RLang.cmd() to 8KB length commands
  • Improve decompiler integration ‘pdc?’ -> ‘!*%s -h” ..
  • Interpret .c files as #! via -i

search

  • Skip PAC instructions in rop searching
  • Skip ROP gadgets starting with RET
  • Fix – /c->/a* /C->/c /B->/mb /M->/mm – better help msg and autocompletion

types

  • add tlj and tllj
  • Fix – Implement “afsr” to change function return type

visual

  • Visual Help colorized
  • Improve the visual browse classes mode (vbc)
  • Initial mouse support for visual tabs
  • vda is an alias for vA

wasm

  • Few memory leak fixes
  • Copy the symbol id instead of reference

write

  • Implement wao for dalvik