Skip to content

v4.0 : Codename Kràmpack - vifino edition

Compare
Choose a tag to compare
@radare radare released this 28 Oct 15:52
· 10053 commits to master since this release

Release Notes

Version: 4.0.0
From: 3.9.0
To: 4.0.0
Commits: 299
Contributors: 48

Changes

anal

  • Bring back the MASK_DISASM because not all nanal plugins support it yet ##anal
  • Select default var type based on its size (#15352)
  • Fix #15325 - Improve af- like its done in Vdu
  • Deprecate anal.jmp.eob /refs #13482
  • Fix #15117 - honor asm.var.sub in ao/aoj
  • Fix #15315 - Honor RAnalOp.disp in aar and ao
  • Update 8051 plugin (#15321)
  • Avoid reloading of cc sdb - huge speedup (#15306)
  • Implement ESIL for arm64 UBFX
  • Make RAnalFunction.cc come from RAnal String Pool
  • Deprecate the use of anal plugins that doesnt handle mask.disasm
  • Add jumptable support for main() in bins/elf/analysis/ls-alxchk (#15266)
  • Add jumptable support for main() in bins/elf/ls.odd (#15233)
  • add afoj and afdj (#15254)
  • Fix #15235 - push [mem] not handled in /r
  • Add initial reg profile for sysz arch
  • Don't propagate noret to fcn if fcn jmps outside itself (#15190)
  • Fix #15004: Make meta.min rbtree more robust (#15141)
  • Fix memleak in r_core_anal_propagate_noreturn()
  • Minor speedup/cleanup/refactor of the RAnal
  • Implement ESIL control-flow-graph and further dfg analysis
  • Add anal.delay to disable delay slot analysis for testing
  • Fix pc-rel movs in sh's esil
  • Delay execution debug messages are now available via anal.verbose
  • Fix #15073: Disambiguate using fcn addr also in meta.min rbtree (#15077)

api

  • Add r_strbuf_copy API (#15186)

asm

  • Fix post-indexed memory access for str instructions on ARM (#15298)
  • Fix #15302 [rasm2/armass] Correctly propagate errors from thumb_assemble (#15303)
  • Add additional [indirect] access syntax for 8051 (#15272)
  • Fix #10651 sub sp, sp, 0x1000 not correctly assembled for ARM (#15187)
  • Fix #15198 (#15199) arm64 assembler const value
  • Add 8051 assembler plugin (#15189)
  • Z80's LD opcodes assembly (#15185)
  • Fix parsing of floating point instructions in x86_64 assembler (#15174)
  • Fix x86 assembler output for some memory loads (#15068)

bin

  • On AArch64 there is a new special symbol $x (#15362)
  • Fix #15152 - Support old Java attribute format (#15317)
  • Simplify r_bin_open_io function (#15307)
  • Support > 4GB ELF files
  • Add support for RTable.query in i
  • Fix #15132: Integrate table to iS,ia,ir,iz,is (RBin info) based commands (#15159)
  • Implement support for the RISCV PLT ELF relocs
  • Fixes for MSVC demangling (#15210)
  • Format the .rela. sections in ELF
  • Add NES ROM mirroring map

build

  • sys/asan.sh: Use -fsanitize=... instead of -lasan when linking (#15375)
  • Link sdb fully into r_util in meson (#15338)
  • Fix #15296 - *BSD builds (#15309)
  • Fix macOS build with latest XCode
  • Add MSVC 2019 for AppVeyor
    • Try MSVC 2019 for AppVeyor
  • Set rpath if non-Windows Meson shared
  • Debian package fixes (#15081)

cons

  • Fix function key handling in visual/panels
  • For utf-8 locale, check LC_ALL, LC_CTYPE and LANG in sequence instead (#15326)
  • Also use LANG env var to check for UTF-8 output support (#15257)
  • Move UTF-8 setting logic to scr.utf8 config callback on Windows (#15273)
  • Implement 'str' operation in RTable queries

core

  • Fix #14247 - fn.j/fnj. show all flags in current offset, not just one
  • Few compiler watning fixes here and there
  • Fix #15114 - Implement r_sys_info() and uname
  • Add kitty clippy replacement :3 (#15232)
  • Add possibility to specify time zone with rax2 -t (#15180)
  • Implement cj command using the PJ api (#15168)
  • Add support for the V programming language
  • Fix #15134 - Support octal numbers like 0o666
  • Implement function-based plugin loading method
  • Add omt and help message for RTableQuery + add format column api
  • Move Lib already loaded check before dlopen Call (#15075)
  • Replace r_str_const* with RStrConstPool (#15300)
  • Kill r_sys_get_osinfo () (#15346) ##core

debug

  • Use RTable for Windows heap info output (#15368)
  • Add support for setting xmm registers on linux (#15365)
  • Fixed continue not being associated with the current thread in unix
  • Added a way to break while in dbg_wait (continue, step etc)
  • Fixed dpk
  • Fixed opcodes not being associated with the current thread in gdbr (#15358)
  • Fix drm[bwdq] command, add xmm0h/l and xmm8-15 registers (#15354)
  • Fix the way linux debugging options are set (#15323)
  • r_reg_get_pack/r_reg_set_pack are not able to deal with 128 packbits
  • Added support to thread switching in linux and fix r_debug_select
  • Fixed ptrace 'Operation not permitted' errors (#15287)
  • Fix debugger build for native GNU/Linux on RISC-V
  • Fix incomplete drr/drrj formatting when r_core_anal_hasrefs fails (#15277)
  • Added "dptj" and "dptj " (#15259)
  • Enhance drm command, add drm xmm0 functionality (#15214)
  • Fix drf output formatting
  • Implementing debug info per pid on NetBSD
  • Using unused map debug field on macOS
  • Rebase fcn/bbs, flags , comments, meta, refs when ood
  • Fix issues in windows thread switching (#15366) ##debug

diff

  • Implement radiff2 -X for hexII diffing
  • Fix #14845: Support radare2_rc in radiff2 for graphs (#15078)

disasm

  • Better pdi output when Cd is involved
  • Implement 'pdt' - print disasm in table, supports queries
  • Make asm.fcnsig more compact
  • Do not resolve the strings pointed by ADRP on arm64
  • Improve (change) sh4 disasm (lowercase regs...)

emu

  • anal_x86_cs fix esil expr for neg instruction (#15252)
  • Fix #15246 - Honor the 'u' suffix in PPC instructions in ESIL

esil

  • Fix #15297 - Update ESIL help message
  • Improve registers handling in ESIL dfg
  • Simplify ESIL code for ARM str instructions
  • Add a parameter to $s and $o (#15171)

io

  • Setting the upper address limit for OpenBSD
  • Improve omt and implement RTable.filterSum

io_self

  • Setting the upper address limit for OpenBSD

json

  • Show flagname and realname in json format for fnj and such
  • Add current thread field to dptj (#15268)

lang

  • Rewrite hashbang command parser, use argc & argv in hashbang (#15188)

panel

  • Fix #14857 - Handle 'O' key to rotate asm.pseudo/asm.esil
  • Another const pointer to be free fix
  • Handle / highlight in panels for zoom and window modes
  • Fix const address freeing
  • fix #15060 - Add xrefs and xrefs here in visual
  • Fix #14559 - Honor scr.fps

panels

  • Fix #14857 - Handle 'O' key to rotate asm.pseudo/asm.esil
  • Handle / highlight in panels for zoom and window modes
  • Fix const address freeing
  • fix #15060 - Add xrefs and xrefs here in visual
  • Fix #14559 - Honor scr.fps

print

  • Fix #15216 - Implement pcy command to print hexpairs in Yara format

r2pie

  • Implement r2pipe_open_dl() to use dlopen/dlsym

rasm2

  • Freeing main assembly object

script

  • Fix vlang plugin to run scripts and add example

search

  • Fix #8575 - Support stdin slurping in rafind2 -
  • Add support for hex escaped litterals in regular expressions (#15291)
  • Fix RCALL and RJMP in aop and /at
  • Refactor Search to use less Global State (#15076)

table

  • Add :json,:quiet,strlen,minlen,maxlen,sortlen in table queries
  • Integrate table API for p-h (#15083)

util

  • Fix rop inline assembly form

visual

  • Run .dr* in visual prompt in cfg.debug is set
  • Fix for VV going to V (issue 15181) (#15195)
  • Fix #14919: truncate long function names in Vv (#14996)

wasm

  • Further wasm memory leak fixes
  • Memory leak fixes in error code paths

windows

  • Print child output in pipe lang plugin

zign

  • Integrate types field in zignature operations (#15082)

Thanks to all the contributors