github radareorg/radare2 5.7.0

latest releases: 5.9.6, 5.9.4, 5.9.2...
2 years ago

Release Notes

Version: 5.7.0
Previous: 5.6.8
Commits: 355
Contributors: 26

Highlights

More details

Authors

Aleksey Kislitsa Alex Bender Anton Kochkov Antoni Viciano Dennis Goodlett Dennis Goodlett Elaine Gibson GustavoLCR Jose Antonio Romero Lazula Mario Haustein Mathieu Dolmen Ole André Vadla Ravnås RHL120 Sergi Àlvarez i Capilla Sylvain Pelissier Wadim Mueller condret freddy gogo2464 kakamaika pancake pancake rax2 rhl120 ypsvlq

Changes

abi

  • Rename REgg.Cfile to REgg.cfile
  • Rename corebind fields to coreb, for consistency with analb, iob

anal

  • Initial support for op.family on the v850.np plugin
  • Add missing =BP for v850
  • Fix crash when doing aac in frida://0 which calls 's $S'
  • aav output is now cleaner and less verbose
  • Implement native r0 relative references in v850
  • Fix oobread bugs in the v850.np plugin
  • Add missing status registers on v850.np
  • Fix missing calling convention when using asm.arch=*.XXX
  • Optimize thumb code analysis (4x faster)
  • Fix leak in r_anal_get_gperf_cc
  • Honor anal.timeout and better ^C handling in aaaa
  • Add missing op types to r_anal_optype_to_string
  • Remove RAnalPlugin.jmpmid and use ANAL_ARCHINFO_ALIGN instead
  • Add r_anal_is_aligned
  • Move VAX disassembler to anal
  • Fix invalid basic blocks on switch/jmptbl on arm64
  • Use @@@f instead of @@f in aaa - fix deadlock in iaito
  • Update to the latest v35arm64
  • Use RArchConfig in RReg, Add RReg.hasbits() apis
  • Improve boundary oobread checks for anal.8051
  • Honor anal.calls in aap
  • Kill anal.endsize
  • Introduce RAnalPlugin.jmpmid and replace some is_x86
  • Fix infinite loop when anal.vars on huge empty basic blocks
  • Fix a couple of infinite loops in aav
  • Do the whitespace thing that pancake wanted me to do
  • Add missing Motorola cpu models for m68k.gnu and m68k.cs
  • Honor asm.syntax=att in v850.np and handle more op.type
  • Better s390 instruction details
  • Remove asm.bf, and move its .opasm to the anal.bf
  • Add the RAnal.mnemonics() callback in RAnalBind for the arm.v35
  • Remove the asm.arm.v35 and move (and fix) the mnemonics cb
  • asm.cpu listing fixes for anal plugins
  • Remove duplicated register definitions for AVR
  • Move asm.xtensa into anal. fix dupplicated symbols linkage bug
  • Fix null derefs in anal.avr plugin and improve defaults
  • Fix #19990 - Fix aoml for non-x86 targets and add tests
  • Fix #7094 - Add direction information in xrefs
  • Add =SN and =R0 to 8051
  • Add RAnal.use in RAnalBind to use it from RAsm

analysis

  • Implement native r0 relative references in v850
  • Optimize thumb code analysis (4x faster)
  • Fix #19990 - Fix aoml for non-x86 targets and add tests
  • Fix #7094 - Add direction information in xrefs
  • Add =SN and =R0 to 8051
  • Add RAnal.use in RAnalBind to use it from RAsm

api

  • Use RArchConfig in RPrint
  • Expose RAnal.opDirection.toString as a public method
  • Make CRBTree.foreach() C++ friendly
  • RStr.isTrue/isFalse accept NULL argument now
  • Use RLog in RCons
  • Introduce r_arch.h. Use RArchConfig in RAnal and improve RRef api

arch

  • Support '$' in regprofile offset column
  • Move tricore from asm to anal

asm

  • Move the asm.ppc.gnu into the anal
  • Remove the v850.gnu plugin
  • Move the asm.pic into anal.pic
  • Support cls, clz for 32 and 64 bit registers in the arm64 assembler
  • Move asm.snes into anal.snes
  • Fix assembling with the arm.v35 plugin
  • Move 8051 test into db/tools/rasm2 and fix null deref in asm
  • Support 'msub, madd, mneg, ngc, sbc, asr, ror, cls, clz, rev, rbit, rbit16, rbit32, umulh' in the arm64 assembler
  • Initial implementation of shared RAsmConfig
  • A little better asm directive parsing
  • 8051: handle any mov case for reassembling

assembler

  • Support assemble for mul, udiv, sdiv, lsl, lsr, mvn, tst arm64 instructions
  • Fix endian issue in binary input for rasm2 and add tests
  • Support assemble for add, and, eor arm64 instructions

bin

  • Better handling of Wasm Names
  • Fix large loading times in macho parser for binsz=-1
  • Fix off-by-one bound check in wasm format
  • Simplify functions in wasm format
  • Fix leak in wasm custom names
  • Better formating wasm custom name
  • Fix parsing LE and COFF on big endian host
  • Fix pyc parsing on big endian machines
  • Fix leak in wasm sections
  • Add bin.maxsymlen to make this symbol name length limit configurable
  • Do not accept symbol names in mach0s larger than 2KB
  • Fix wasm section parsing
  • Remove global from elf parser
  • Fix another race condition in the macho parser
  • Remove another static global in the sections cache of objc
  • Move the local-global cache into the macho object
  • Fix allocation peak in macho property parser
  • Expose CLR metadata in ih output instead of messy eprintfs
  • Add bin.xtr.xalz plugin using the new loadbuf field
  • Remove the bin.xalz plugin as its meant to be io or bin.xtr
  • Fix null derefs on partially initialized xtr bin plugins
  • Fix main detection in x64 elf, after updating condret's machine
  • Use the new RBinInfo.charset in bin.s390
  • Add headers, sections, symbols and entrypoints to the bin.s390 plugin
  • Initial import of the bin.s390 plugin
  • Permit RBin plugins to expose a default charset
  • Select 'arm' fatmacho slice on -a arm.v35
  • Fix #6647 - check map bounds in the pebble bin loader
  • RBinFile size must be ut64, not signed int to open > 2GB files

build

  • Use meson's gittap command on make
  • Fix #13196 - Honor SHARED in configure-plugins
  • windows_heap is included in cmd_debug
  • Fix meson build with use_sys_openssl
  • Leftover for --disable-threads causing runtime problems
  • Use longer names in enum to avoid conflicts with the SerenityOS toolchain
  • Deshadow some variables, in progress for the full -Wshadow cleanup
  • Make capstone include directories consistent
  • Add xtensa for the meson (requested for Windows)
  • Honor capstone commit in ci
  • Fix for --without-pull not working in install.sh

cons

  • Add scr.maxpage to remove the CONS_MAX_USER constant
  • Fix r_cons_get_cur_line() on windows
  • Add ec bgprompt for a colorful shell and visual prompts
  • Fix glitch in scr.html when scr.color=1

core

  • Introduce R_LIKELY macros and update sdb
  • Fix RCons recursive buffer fill causing iaito memory usage problems
  • Initial import of the RThreadChannel API with the ::x command
  • Deprecate anal.cpu, just use asm.cpu
  • Improve RLog API and usage, document R2_LOG_ vars in r2 -hh

crash

  • Fix integer overflow in string search causing oobread
  • Fix crash in vtable analysis on UB
  • Fix 4 byte oobread in msp430 disassembler
  • Fix null deref in macho parser
  • Fix oobread in java parser
  • Fix oobread crash in java parser
  • Revert "Prefer memleak over usaf in io.bank's rbtree bug
  • Revert "Properly fix the UAF in r_io_bank_map_add_top
  • Fix oobread and null deref in symbols file parser

crash"

  • Revert "Prefer memleak over usaf in io.bank's rbtree bug
  • Revert "Properly fix the UAF in r_io_bank_map_add_top

debug

  • Cleanup dbg.trace config vars and better error messages
  • Software breakpoints fail on m1, lets just enable hwbp by default
  • Add d: to run the cmd callback of the debug plugins
  • Fix #19966 - Reset seek in r_debug_execute() to real PC

disasm

  • Fix disp[ep] regression for v850.np
  • Handle comments from analop.ptr, not only for call ops
  • Add a parse plugin for tweaking references to r0
  • asm.sub.names requires a flagname of strlen > 4
  • Honor asm.syntax=att in asm.arch=s390

doc

  • Add ubuntu22, kali, haiku and voidlinux as repology badges
  • Update ae?? esil keywords help message
  • Update README and add doc/devdebug.md

emu

  • Fix st.b and stsr esil for v850
  • In the V8xx families the R0 is a WTG register
  • Make ESIL TODO messages go thru R_LOG_DEBUG instead

emulation

  • Fix st.b and stsr esil for v850
  • In the V8xx families the R0 is a WTG register

esil

  • Fix invalid shifts on esil emulation
  • Initial implementation of the v850 prepare/dispose
  • Deprecate ESIL's $r and S2D keywords
  • Tiny fixes for the v850.np esil

fs

  • Implement my command and fix help messages for m subcommands

hash

  • Fix argument ... with mismatched bound [-Warray-parameter=] warnings

io

  • Fix potential bug in r_io_nread_at
  • Fix the io.rbuf plugin (broken since 2017)
  • Add the io.xalz plugin
  • Honor io.cache in r_io_is_valid_offset()
  • Fix some TODOs in libr/io/io_bank.c
  • Revert "Fix use-after-free in iobank rbtree usage
  • Fix map boundary adjustment in r_io_map_add and r_io_map_add_bottom

io"

  • Revert "Fix use-after-free in iobank rbtree usage

json

  • Initial support for JSON help messages
  • pdrj: change JSON output, group instructions by basic blocks

lang

  • Find python3, python2 and python in PATH on #!python

print

  • Implement ax, to list xrefs using RTable
  • Improve ascii art output of pfb
  • Initial implementation of pfb, binary formatting
  • Use wx+ instead of wx;s+16 in pc* command

projects

  • Create a struct for rvc state
  • Fix ax\x00 glitch causing projects to be noisy
  • Pc without argument uses prj.name if defined
  • Save and restore the register values
  • Add P* and P! to dump script and run shell in project dir
  • What's bool stays bool, makes eval changes more consistent
  • Fix serializing macros (* using ; instead of ,
  • Fix #20040 - invalid char bug in afl* when function names contain ';'
  • Dont save dir. variables in project scripts
  • Make P command follow the r2 philosophy for consistency
  • P+ is now an alias for Ps for consistency with P-
  • Dirty anal on user comments

r2pipe

  • Fix #19606 - Dont route the RCore.cmdstr() when there's a redirection >

refactor

  • Move mcore into anal
  • Move asm.s390* into anal.s390* and fix aod when not using asm plugins

refactoring

  • Move mcore into anal

search

  • Implement search.in=flag

shell

  • Implement gLj and Lgj for listing egg plugins in JSON
  • Implement Llj and #!?j for rlang plugin listing
  • Implement Lpj for #19982
  • Implement Lmj and mLj to list r_fs plugins loaded
  • Implement Lij, Ltj and Lhj (via the new phj)
  • Implement LDj command to list decompilers installed in json
  • Fix bug when loading an r2 script with '.'
  • Don't ignore invalid subcommands of i
  • Add help for V?
  • Implement and document iz* and izz*
  • Add help messages for ms mp mL mo commands
  • Handle pd1 and pi1 (imm without space)
  • Handle ? in all the dc subcommands
  • Add JSON output for r2 -V
  • Rename anal.cpp.abi to anal.cxxabi, and add options for dbg.malloc
  • Handle Loj and Lij as alias for iLj and oLj
  • Add R2_COLOR env var for r2 when setting up scr.color
  • Fix help message for the ?= command
  • Better error handling in pushd/popd
  • Fix #19830 - implement pushd/popd commands
  • Implement 'mktemp' syscmd command
  • Add missing help for ++, -- and r2pm
  • Implement .. as an alias for s..
  • Fix #19973 - Add - and + commands as alias for s- and s+
  • Initial import of the WIP sh interpreter
  • Implement proper dyslexic subcommands for La/aL
  • Use more RLog, and add log.origin
  • Show proper error when no function found in afv

tests

  • Dont let r2r -o overwrite files
  • Add test for 'q' return code bug and minor cleanup r2r
  • Support gmake in the testsuite (BSD runs)
  • Add 8051 disassemble/reassemble checks

tools

  • Improve binary input handling in rasm2 with 0b and Bx
  • Fix #20030 - Add binary input support for rasm2
  • Check for hexpair keyword before adding a null in rafind2

types

  • Typedef facility under t for pf support
  • Proper use of the SDB api in anal/type.c
  • Fix C types parser on unknown archs

util

  • Add R_LOG_DISABLE hint for extra debugging
  • Fix bug and optimize deletion in new rbtree api

visual

  • Improve ec bgprompt in V: shell
  • Fix #20049 - '.' in stack panel seeks to SP or BP if unset

webui

  • Better material webui disasm defaults
  • Fix scr.color=3 glitches in the html filter
  • Fix /index missing icon and update project commands used
  • Remove broken and outdated graph webui
  • Update the www/m webui with latest versions of all the frameworks

write

  • wb -> wX, wb = write big endian bits in byte

Don't miss a new radare2 release

NewReleases is sending notifications on new releases.