Radare2: 3.1.0 – codename Shibboleet

11/26/2018 3:14 am

Radare2: 3.1.0 – codename Shibboleet

Radare2 3.1.0 – Release Notes

Version: 3.1.0
From: 3.0.1
To: 3.1.0
Commits: 375
Contributors: 52

Radare2 3.1.0 – New Features & Fixes

Anal

  • Improvements arm/thumb analysis
    • anal: arm: emulate correctly BX PC in arm32/thumb
    • anal: arm: modify r_anal_build_range_on_hints
    • anal: arm: handle better anal hints to increase performance
  • Use r_return in RAnalOp, reduce some code paths in xrefs search
  • axt with a space handles local var xrefs
  • Fix #9709 – Implement aeab to get input and output regs of the basic block
  • Fix r_core_anal_graph_to and abt, abtj commands
  • Fixed ttj feature for printing in JSON
  • Set as dword all the jmptbl offsets
  • Support overlapping basic blocks in anal.endsize
  • Cannot extract reg args if no calling convention is present
  • af-* removes jmprefs as well
  • Enable invalid insn notification in fcn_recurse and remove warn-near-end break
  • Handle alias returns and delay slot for SPARC
  • pdf sparse honors anal.jmpmid + afb+ fills op_pos array (x86 only)
  • Add new axff command (xrefs from function)
  • Check addrs 1-by-1 in pdf sparse code
  • Honor anal.jmpmid in r_anal_fcn_bbget_in (fixes test and bug in pdr and graph)
  • Fix #10420 – Enable anal.jmpmid and support overlapping bbs
  • Improve array indexing in disassembly
  • Remove aae dup and enable anal.types.constraint in aaaa
  • Small optimization and bugfix when auto-renaming functions
  • anal.jmpmid: Continue analysis after jump to middle of instruction
  • Use op->val instead of op->ptr in cmp [mem], imm
  • Add missing FITFCNSZ in r_anal_fcn_split_bb
  • Add new function prelude for ARM thumb
  • Implement ARM32/Thumb ESIL for ADR and ADDW
  • Fix #11879 – Move aae in aaa
  • Check addrs 1-by-1 in pdf sparse code

Asm

  • Support REX in NOT instruction for the x86 assembler
  • Fix #12239 – crash in the x86.nz assembler

Bin

  • Introduce RBinArchOptions to avoid creating fake RBinFile/Objects
  • Access last ElfSymbol only after reallocating the array
  • Fix #12194 – Resolve symbol names in WebAssembly bins
  • New RBin plugin for “symbols” files
  • Fix #9825 – Wrong import addresses in the ELF for ppc64 elfs
  • Fix some bugs in RBin.mdmp
  • Remove deprecated load methods from MZ parser
  • Implement load_buffer for MZ parser
  • Cleanup and fix the MZ
  • Correctly allocate strings when filtering them
  • Fix #12082 – infinite loop when loading PE
  • Use ht to query strings for the cfstrings
  • Refactoring RBin.open/close and RBinOptions
  • Improve MSVC detection and demangling
  • Another RBin API cleanup
  • Fix last gf 4byte write overflow in ELF
  • Fix big allocation issue found by googlefuzz in ELF
  • Fix #11947 and fix #11945 – Implement iS= and iSq.
  • Eliminate unnecessary global in mach0 parser
  • Parse the LC_MAIN in rabin2 -H
  • Fix googlefuzz crash caused by oob in shdr_link
  • Fix loading of entrypoints on some huge mach0s
  • Refactoring and optimization for the RBin.language identification
  • Fix #11922 – Allocate space for sentinel too
  • Fix a crash in the OMF RBin parser
  • Lookup for golang and asan traces once
  • Fix crash in fuzzed sega master system rom
  • Fix crash in the MZ parser found by googlefuzz
  • Parse the mach0’s requirements codesign slot
  • Fix entry0’s hvaddr for ELF

Build

  • Handle libr/libs.custom.mk to make partial r2 builds if you need just a portion of r2
  • Fix ios-arm32
  • Add –without-libuv and companion flags in ios-static-appstore.sh
  • Fix MacOS Mojave User Debugging Problem
  • Downgrade credentials when building with sudo
  • Add -static for the binaries when –with-libr
  • Add io.r2web, io.r2pipe, fs.io and debug.io for iOS
  • Fix the build of the iOS SDK

Core

  • Fix #12060 and #12072 – Rewrite r_num_abs and r_num_units
  • Fix #10324 – Implement RLog API for leveled logging

Debug

  • Fix #12022 – Slow backtrace fixed by speeding up ptrace_wrap_func()
  • Add dbg.verbose variable to show more info when debugging
  • Improve pid_to_task and handle =!pid
  • Fix some spawn args escape bugs

Disasm

  • Fix ANSI injection vulnerability in pd and pdj
  • Fix #12202 – Add asm.maxflags to specify how many flags per offset we want to see
  • Fix #11889 – Fix varsub when some ansi escape sequences are involved
  • Fix echo in ppc disassembler on invalid instructions
  • Honor asm.bb.middle in r_core_print_disasm_instructions()
  • Honor asm.bb.middle in r_core_print_disasm_json() / pdfj
  • Use fastcall in emustr on function calls
  • Fix heap overflow in long asm lines /via radareorg/cutter#803
  • Add asm.bb.middle: Realign disasm on bb start

Docs

  • Remove legacy issue templates and use modern one’s
  • Fixed typo in DEVELOPERS.md

Esil

  • Fix zero interrupt issue

Graph

  • Fix asm.flags.inbytes not showing in graph

Magic

  • Add help in wtf!? and add bitcode magic signature

Panels

  • First step to support xrefs in visual panels

Port

  • self plugin is now working in DragonFlyBSD
  • Support DragonflyBSD build and backtrace
  • Adding self proc support for FreeBSD

Print

  • Implement , and ; in pf to rewind and be able to support unions
  • Fix #12116 – Implement bytesize for pvj
  • Add pfj Z format

Projects

  • Open radare2 project after loading plugins and keep the -e flags

Refactor

  • ELF plugin code cleaning
  • Upgrade SDB and use the new HtPP, HtUP, HtUU
  • Remove “referenced” from RBinObject and remove get_object
  • Move trie, mixed, slist into Sdb’s Attic, and DES from util to crypto
  • Remove other unused functions in RBin and make others static
  • Cast arguments to ut8 when feeding ctype.h functions
  • RBinSection now lives in the heap
  • Remove unused functions in iosections
  • Remove all S commands
  • Use r_return_* in RAnal’s cc and fcn
  • Modernize RFlag with asserts, boolified and more
  • Initial import of the REvent API
  • Remove SR commands
  • Fix #11936 – Optimize RCons.hud with cache
  • Fix build and start refactor of r_cons_hud()
  • Remove Sf command
  • Kill anal.bb.align variable
  • remove r_bin_load_io2 and rename MODE defines
  • Code cleanup in the mach0 parser
  • Fix #11881 r_list_length assert for o->libs
  • Some code cleanup and asserts in RBin
  • Upgrade SDB and use the new HtPP, HtUP, HtUU
  • Remove “referenced” from RBinObject and remove get_object
  • Remove all S commands

Search

  • /Cd is now using a proper bitmask to search the values
  • Fix regression in /rc and avoid repeated errors
  • Fix #11977 – Handle arg in on /r subcommands
  • Fix #11961 – /at swi for unconditional (or cswi)

Types

  • ta command now takes an optional offset argument
  • Implemented tec command
  • Add ttc – dump types in C syntax
  • Fix #12166 – Implement tt* to list all types at once

Visual

  • Add support for shift-arrows in st and rxvt-unicode
  • Fix #12307 – Escape ansi chars in cbin
  • Improve the Visual xrefs with from/to disasm and handle JK
  • Move the fcn refs visual feature into the view instead of adding more keys
  • Fix #12230 – Honor cursor in Vp xX
  • Fix #12258 – Fix glitches in VV with |= aka cmd.gprompt
  • Get cursor position only if screen_bounds == 1
  • Fix VJ scrolling stuck issue
  • Improve the visual titlebar in cursor is enabled
  • Change the behaviour of V< and V> to make it slurp or dump files
  • Initial support for key repetitions in visual mode
  • Fix #11552 – Implemlent r_cons_more and refactor some less.c
  • Implement scr.scrollbar
  • Implement cmd.hexcursor feature
  • Add stack.reg and handle pP in Vppc
  • Add LL command to lock screen
  • Fix the resizing algorithm of panels
  • Fix help in panels
  • Fix : command
  • Change the default panels depending on the analysis
  • Null terminate buffer to fix garbage in psi, psb and psz
  • Properly support the Hud in panels ?? && _
  • Handle / key in visual panels to set scr.highlight
  • Handle ^C in RCons.less

Wasm

  • Initial ESIL support for WASM

Windows

  • Fix gmtime_r for msvc
  • Fix visual panels crash on Windows
  • Fix unicode path issues in Windows