Radare2: 3.6.0 – EGO

06/24/2019 12:11 pm

Radare2: 3.6.0 – EGO

Radare2 3.6.0 EGO – New Features & Fixes

Release Notes

  • Version: 3.6.0
  • From: 3.5.1
  • To: 3.6.0
  • Commits: 365
  • Contributors: 30

Changes

anal

  • Fix syscall resolutions for s110 operating system
  • wzr/zr/xzr register on arm64 is wired to ground
  • Fix naming of entrypoint symbols in files with class information (DEX/C++)
  • Fix – Implement a* as an alias for afl*;ah*;ax*
  • Fix and improve ESIL for arm64
  • Fix  – Implement afl. command
  • Fix afl* not saving function bits
  • Add experimental `axm command
  • Implement refs for iget/iput Dalvik instructions
  • Implement esil for OR and MUL dalvik instructions
  • RAnalOp.Type.CAST.toString() and implicit refptr init
  • Improve af performance affected by `aflc
  • Honor R_ANAL_OP_MASK_ESIL in anal.dalvik
  • Improvements in dalvik analysis
  • Add Stackframe Anal Hint
  • Add opcode mask field in ao and aoj
  • Add opcode description in ao
  • Show pseudo in ao and aoj
  • Improve anal and parse plugins for Thumb
  • Implement ESIL for stxb and stxh THUMB instructions
  • Fix issue when analyzing the last DEX method

asm

  • Handle LEA operand rip in x86.nz

bin

  • Fix code section size in dex files
  • Handle mod_init/mod_fini as word sections in mach-o
  • Handle the interpos section as words in the disasm
  • Fix ObjC detection in macho binaries
  • Get rid of the ELF-specific C++ detection
  • Add -O a/l/ for macho to add libraries
  • Honor more segments vs sections, for jmptbl, fatmacho, zeropage
  • Fix iS/iSS in macho and kernelcache
  • For : Implement ob= listing bin map coverage
  • A couple of fixes for base address support
  • Add missing ARM64v8 and ARM64e defines for the mach0 parser
  • Kill RBinFile.objs RList
  • Implement RBinFile.at and make it work with e bin.at
  • Fix some RBin file format crashes
  • Speedup loading fuzzed ELF files with huge nrel field
  • Faster macho loading by reusing symbol parsing for getMain()
  • Remove symbol table size hard limit in macho
  • Fix regressions in dyldcache and xnu_kernelcache plugins
  • Completely eliminate the bytes apis in RBin
  • Fix  – Honor -qq for classes and imports
  • Initial extermination of the *_bytes methods in RBin
  • Fix  – Implement .ic** command to import bin.class info as anal.class
  • Handle DEX files with no entrypoint properly
  • Properly handle ELFs with no entrypoint defined
  • Little ELF segment labelling change UNKNOWN -> NONE

build

  • Continuous Fuzzing Integration with Fuzzit
  • Add sys/build-shlib.sh and fix static builds

config

  • Improve the list of supported decompilers in e cmd.pdc=?

cons

  • Little va_list leaking
  • Fix  – Don’t use ansi with aaa notifications if no ansicon
  • Add bold to eco bright items that were originally bold in default palette
  • Fix  – Add eco bright (r2 default palette but with bright colors for all)
  • Add bright colors to the colors table
  • Fix  – Fix non-ansicon UTF printing
  • Fix THE glitch affecting panels box colors
  • Default to scr.color=COLOR_MODE_16 for Alacritty on Windows
  • Dfferent color for up and down in disasm reflines
  • Implement reset command to reset the terminal settings
  • Enable color prompt on Windows
  • Fix Color_GRAY/BGGRAY
  • palloc return checks

core

  • Fix  – Add sort, join and uniq
  • Simplify RConfig.eval and improve e with e, for csv
  • Add r_sys_exit to proper quit
  • Honor hashbang and PATH when interpretting extension-less scripts
  • Honor ^C in @@@F and @@@s
  • Implement $O variable pointing at cursor
  • Implement |. (alias for .)

debug

  • Improvements to windows heap parsing
  • Set cmd.gprompt=.dr* when cfg.debug=true
  • Initial implementation GetSingleBlock for Windows heap
  • Initial implementation of heap parsing for Windows

debugger

  • Improvements to windows heap parsing

disasm

  • Avoid printing nulls on invalid code or missing bin info for Dalvik
  • Add asm.movlea configuration option
  • Improve comments alignment in the disassembly
  • Fix arm64 parse for BL instructions
  • fix, improve and add some sh pseudo
  • Support asm.hint.pos=-1 for leftish key hints
  • Initial cleanup in RParse, delete mreplace plugin
  • Toggle asm.dwarf in V# and pds
  • Add support for base64 in CL command
  • Faster dtd (trace disassembling) using API instead of RCore.cmd
  • Fix: Issue with upgoing refline at XREFS
  • Fix CL command and make asm.dwarf work without source files
  • Fix asm.varsub in a hacky way to fix the disasm output
  • Fix project’s asm.cpu behaviour
  • Priorize strings in case multiple metas match
  • Set the RBinSection.format as dwords for the constpool in DEX
  • Initial import of the RISCV capstone plugins for asm and anal

esil

  • Skip {urc}{jmp,call,ret} in aesou
  • Fix issues with negative esil.timeout values
  • Fixes related to ARM64 ESIL emulation
  • Make $r{} work without the debugger
  • Add cmd.esil.stepout to run r2 commands (before and after emulation)
  • Fix recursivity issue when calling aes in cmd.esil.step
  • Fix cmd.esil.step handling of return value

graph

  • Implement fg command to create a graph of flags (WIP)
  • Implement graph.ntitles to toggle graph title nodes

hash

  • Initial implementation of pasasword generators under /Cc
  • Fixes for fletcher8
  • Add support for fletcher8, 16, 32 and 64 hash algorithms

heap

  • Implement GetSingleSegmentBlock for LFH and VS Windows heap

json

  • Use asserts in pj api to catch this issue earlier

meta

  • Fix CC-, CC-* and CCf– commands to work as expected

network

  • Handle R2_CURL env var in RSocket.httpGet

panels

  • Add more configs for disassembly are supported in the menu
  • Emulate menu is added
  • Settings menu is added, and decompiler is configurable in there
  • Something like Ctrl w + T in vim implemented
  • Almighty menu has got debug items too if it is in debug mode
  • Search->Cursor->Xref/Ref enabled
  • Cursor works better in many panels
  • izz~ and iz~ available from both the menu and ” modal
  • Force cache the result of Decompiler and Graph panels plus better auto updating, and refactoring
  • Cut out the widget as a struct and name it Modal
  • Enable deleting an item from the list in ” widget
  • New item can be created and inserted to the ‘”‘ widget.
  • Centered the ‘”‘ widget plus v and h commands are added to it.
  • Added l command to the console which works like Ctrl l and Refactoring
  • dwm style default layout
  • Implement Console frame in visual panels
  • Enable creating a panel from the list of all kind of the panels and replace the current panel with it
  • Autocompletion is supported for Breakpoints and so is cursor to seek to and del them
  • Cursor is available in strings panel
  • Cursor is supported in Symbols panel

performance

  • More code cleanup in RBin, speedup method resolution

print

  • Honor hex.section in prc and pxa
  • Implement pV command – like pv but for bytes instead of values
  • Fix pv [arg] behaviour
  • Added support for pd and px without space
  • Honor hex.section in pxW and pxQ
  • Honor hex.section in pxb
  • Improve pxr for null words and relocs and use hex.section in pxs+pxr
  • Fix  – ps[puzwW+]j
  • Fix – Add hex.section option for the hexdump
  • Add Objective-C and Rust (pco, pcr)
  • Add Kotlin, Java and Swift pc sub-commands

r2pm

  • Honor the 2nd arg of R2PM_TGZ with ZIP files

refactor

  • Change the signature of r_str_trim to avoid confusions
  • Deprecate the RBinObject.id field
  • Rewrite the RBuffer API to make it safer and adjust the codebase

refactoring

  • Deprecate the RBinObject.id field

remote

  • Improve the r2web:// IO plugin and fix a couple of bugs in there
  • Speedup r2web://
  • Make -C http work like the tcp and rap remotes, expose the shell via ==
  • Honor rap.loop in rap server and add examples in =?
  • Fix issues with the tcp server .: and =+tcp, use index instead of fd
  • Fix some UAF in rap server, handle HTTP over rap and tcp properly

search

  • Fix  – Fix search on multiple maps
  • Add /cc for case insensitive instruction
  • Add search.in=bin.segment[.s[rwx]] and fix bin.section[.s[rwx]]
  • Fix hexpairs search containing whitespace
  • Fix /r for dalvik and enable VA

shell

  • Handle e cmd.pdc=<tab> and improve e cmd.pdc=? autocompletion

signatures

  • Improve zignatures
  • Make zignature comparison fuzzy
  • Implement the zc command

trace

  • Sort dte output

visual

  • Improve the vv mode for editing variables

windows

  • Fix command redirection
  • Dynamically find radare2 install dir on Windows
  • Add mfc100u and a script to generate them
  • Set scr.ansicon=1 if running under Windows 10 Creators Update or later
  • scr.ansicon=2: Show esc seqs (for debugging) if using non-ConEmu-hosted cmd.exe
  • Fix QueryDosDevice returned length check
  • Fix ood; ood bug on winxp->win10
  • Fix r_sys_pid_to_path (supports winxp -> win10)