Radare2: 5.1.0 – codename lasagna

01/25/2021 2:50 pm

Radare2: 5.1.0 – codename lasagna

WIP Release Notes

Version: 5.1.0
Previous: release-5.0.0
Commits: 291
Contributors: 45

Highlights

More details

Authors ——-

Alexander von Gluck IV Alexis Ehret Allen McIntosh Anton Kochkov Aswin C Briand Djoko Carson McManus ChD1 Dennis Goodlett Eduard Eduard MURESAN Fangrui Song Florian Maerkl Francesco Tamagni Fredrik Fornwall Giovanni GustavoLCR Kamil Rytarowski Khairul Azhar Kasmiran Liumeo Murphy Paul I Qijia Liu RHL120 Riccardo Schirone Riccardo Schirone Sahil Siddiq Sylvain Pelissier aemmitt-ns aemmitt-ns condret eagleoflqj gogo gogo2464 ivan tkachenko laohuai liumeo mrglm pancake pancake pancake ratijas wargio yossizap yossizap

Changes

ESIL

  • Add floating point operations for emulation

anal

  • Warn once about the missing anal.cc
  • Fix x86_cs cmpbs esil
  • fix x86-cs rep/repe/repne esil expressions
  • FIx #18171 – Support RNum for syscall-name in asl command
  • Print call convention once in afi
  • Fix #17039
  • Handle ^C and fix ASAN crash in aeA command

asan

  • Fix asan st overflow

asm

  • Support sbfm/ubfm in arm64
  • Initial support for arm64 asm extendtype
  • Add test and update arm.winedbg (#18117)
  • Implement i4004 assembler

bin

  • COFF: handle empty sections (#447)
  • Fix #18274 – Fix crash in r2 *.wasm
  • Dont demangle with libs unless requested
  • Fix crash when wasm file contains symbols with large names
  • Add bin.cache evar to use io.cache when bins need to patch relocs
  • Fix Mach-O rebase on fat slices
  • Fix memleak in db/esil/apple (#18238)
  • Fix crash in XNU kernel parsing (no cache)
  • Fix PE Delay Imports for multiple delayed DLLs (rizin)
  • Fix code injection vuln in .ic* with ObjC classes
  • Initial implementation of the DEX annotation parser
  • Lowercase DEX method attributes and move r_num_bit_count()

build

  • Fix Cydia – Disable AVR plugin
  • Fix build for capstone5
  • Add CI test to ensure symlink reinstalls work (#18252)
  • Add r2.1 when installing with symstall
  • Early fail in sys/debian.sh and use proper CFLAGS
  • Fix the CI badge and fully rewrite all the workflows to make sense
  • Fix debugger build problem in android-x86_64
  • Remove –without-r2r configure option
  • Create dist/ to hold all the distribution build files
  • Forbid space builds with acr/make and add job to test them with meson/ninja

ci

  • Upload android-arm64 artifact and disable memleak checks in meson-asan testruns
  • Add WIP android-arm64 ACR build and other CI improvements
  • Dont detect leaks in the asan job and install r2pipe in brew
  • Fix TCC CI and improve the rest of jobs

config

  • Fix some returns to fix initialization issues in evars
  • Remove unused cmd.xterm and use * instead of strcmp for ?

cons

  • Implement history filtering for dietline
  • Fix ecn (and VR) when no custom theme was set in .rc
  • Initial implementation of r_cons_eprintf
  • Fix help rendering: avoid printing trailing whitespaces (#18115)
  • Improve str.wrap, add cons.line and fix cons.printat glitch

core

  • Support evar filtering in eq and check for bool type in RConfig.toggle
  • Expose RConfigNode.options APIs to avoid messing with internals
  • Implement RTable:sql and add RTable.name

debug

  • Fix #18212 – Detect RISCV gdb servers

disasm

  • Fix HUGE bottleneck in the WebAssembly pseudo disassembler and analyzer
  • pd, is an alias for pdt (pdt will be removed soon)
  • Honor meta size in asm.meta=false and add tests
  • Fix #18202 – Large Cd truncates and crashes in pd

doc

  • Fix wording, whitespaces and other minor stuff

emu

  • Some memory access sanitization for anal_x86.cs

esil

  • Add support for RAnal.ESIL plugins
  • Fix x86_cs cmpbs esil
  • fix x86-cs rep/repe/repne esil expressions
  • Support arm32 esil stmib/ldmib
  • Update RISC-V ESIL with sign extention operator (#18109)
  • Add sign extension assignment operator (#18092)

fs

  • Add support to stream files using mg (#18253)

indent

  • Some clang-format improvements

io

  • Accept rwx argument in onn command
  • Add onn command to fix custom map assignments
  • Fix and refactor the ar:// plugin

json

  • Fix #17039
  • Honor cfg.json.num in afbj
  • Fix ppc opex & use pj in RAnal plugins

meta

  • Add CC, command previous CC, is now CCF

panels

  • Fix cascading solitaire issue in panels menus
  • Fix the ‘c’ cursor behaviour in disasm

print

  • Implement print disasm until optype
    • Fix memory leak in pf related to bad sdb api usage
  • Implement rax2 -I to convert from/to LONG and IP Address

project

  • Handle io.maps and bin.segments in o* to handle custom maps in projects
  • Use RConfigNode.getter callback in anal.cc to be in sync with k anal/cc/default.cc
  • Add man name information in o* output
  • Remove the prj.simple option
  • Honor mapaddr for malloc in o*
  • Fix calling convention save/restore
  • Fix project test regression and add another test
  • Save the write cache in projects
  • Remove transitional projects code
  • dir.projects becomes abspath when set
  • Fix projects by removing code and honoring prj.name
  • Use UID instead of PID to identify the user to avoid changing projects everytime
  • Reworked P command with RProject and prj.name integration
  • Remove file.path and file.lastpath and add RProject
  • Automatically set prj.git if git is found in PATH
  • Tell the user that debugging projects don’t work

projects

  • Handle io.maps and bin.segments in o* to handle custom maps in projects
  • Use RConfigNode.getter callback in anal.cc to be in sync with k anal/cc/default.cc
  • Add man name information in o* output
  • Remove the prj.simple option
  • Honor mapaddr for malloc in o*
  • Fix calling convention save/restore
  • Save the write cache in projects
  • Remove transitional projects code
  • dir.projects becomes abspath when set
  • Fix projects by removing code and honoring prj.name
  • Use UID instead of PID to identify the user to avoid changing projects everytime
  • Reworked P command with RProject and prj.name integration
  • Remove file.path and file.lastpath and add RProject
  • Automatically set prj.git if git is found in PATH
  • Tell the user that debugging projects don’t work

r2wars

  • Cache cfg.r2wars value outside the eval loop

refactor

  • Use pj in debug
  • Use pj in core
    • Use pj in core
  • Use pj in cmd_log and cmd_print
  • Remove ESIL->REIL code and commands
  • Use pj in rahash2
  • Use pj in dbtj
  • Remove strncat usage (#18229)
  • Reuse code in memory-based io plugins
  • Use pj in dmj, dmhj & fix regex r2r
  • Initial deprecation of RCoreFile
  • Remove core.file
  • Use pj in cmd_anal.c
  • Use pj in cmd_search.c
  • Use pj in cmd_info.c
  • Fix #18136 – Remove RBin.is_debugger and use cfg.debug
  • Fix #18136 – Remove RBin.is_debugger and use cfg.debug (#18146)
  • Use pj in cbin.c
  • Use pj in bp.c & add test
  • Use snake case in projects.c
  • Use pj in agcj

regexp

  • Massage RRegex to fix codingstyle and a null deref.

rizin

  • Use r_core_flag_get_by_spaces() in getFunctionName()
  • Fix trace crash caused by a mismatch between the register profile and op anal
  • AVR: Fixed profile, (null) instruction and anal
  • Fix potential null-deref in r_rbtree_cont_foreach()
  • Fixed AVR anal plugin warning due unpopulated mnemonic
  • Fixing clang flow warnings (#321)
  • Fix #rizin302 – Fix function modification detection false
  • Remove all dead assignment detect by clang sa (#310)

shell

  • Count lines is a prefix operator
  • Add a progress bar for when scripts are running
  • Honor R2_CFG_NEWSHELL=0 to disable it
  • Implement $i and $I numvars
  • Seek command ignores the tmpseek
  • Add missing vars from ?$? in ?$ and sort them alphabetically

test

  • Added windows rebase tests
  • Added support for regex in test output

types

  • Refactor tcc and afcl commands, improve help and JSON

util

  • Add riscv in RSysArch and make it an enum, not a bitmask
  • Add RFile.new and RFile.move APIs

visual

  • Fix #17940 – Show ConfigNode options when selected in Ve
  • Box borders in graph and panels are now in yellow

webui

  • Update www/t from radare2-webui