Skip to content

5.8.0

Compare
Choose a tag to compare
@github-actions github-actions released this 22 Dec 23:59

Release Notes

Version: 5.8.0
Previous: 5.7.8
Commits: 745
Contributors: 36

Highlights

More details

Authors

0x8ff Alex Bender Anton Kochkov Axel Iota DaKnig Dennis Goodlett Dennis Goodlett Ernest Deák (Tino) Francesco Tamagni HighW4y2H3ll Hors Lars Haukli Lazula Matthias MewtR Miles Liu Mohamed Lemine Ould El-Hadj Murphy Ole André Vadla Ravnås Paul B Mahol Peter Meerwald-Stadler Quentin Kaiser RHL120 Sylvain Pelissier Sylvain Pelissier TheAllSeeingOwl condret iTrooz_ meme pancake pancake rax2 rhl120 schrotthaufen schrotthaufen singurty

Changes

abi

  • RAnalOp.srcs,dsts are not pointers

anal

  • Working apt and add apl to list function preludes
  • Rename axj to axlj, because axj is for jmp refs
  • Introduce anal.tailcall.delta and use flags for better metrics
  • Improve the tailcall detection logic
  • Improve warning that only seems to happen when anal.nopskip is set
  • Always show all the archinfo, even when not provided by the plug
  • Dont show analysis progress on non-interactive shells
  • Add esil.dfg.mapinfo and esil.dfg.maps config vars
  • Some more improvements to esil_dfg
  • Fix size returned from r_anal_op
  • Fix warning in aflj when parsing vargarg signatures
  • Add register computed const pointer support for esil dfg
  • Add memory computed const pointer support for esil dfg
  • Introduce R_ANAL_ESIL_DFG_TAG_{REG,MEM}
  • Use treebuf io plugin as memory access backed for esil_dfg
  • Fix pickle asm rejecting empty strings
  • Do not recurse noreturn inspection when !addr or -1
  • Generalize vector instruction types instead of following intel-specific
  • Add /au to search for unknown destination jmp/call
  • Add anal.noret and refactor anal.noret.refs
  • Fix #20827 - Show srcs/dsts in aoj
  • Fix aae argument parsing regression in and improve help
  • Add support for stack-computed const pointers in esil_dfg
  • Fix anal.a2f in aac
  • Increase default anal.depth from 64 to 128
  • Clarify which commands are used on each aaaa line
  • Fix anal.depth usage when analyzing one basic block
  • Loongarch analysis bug fixes (bl, race condition)
  • Implement aflxv and aflx? commands
  • Run /azq in aaaa
  • Fix long1,long4 pickle opcodes
  • Fix #20798 - Fix bx after add lr,pc,0 in arm32
  • Fix null pointer in aflxj
  • Implement aflxj
  • Add noreturn column in afll
  • Use RPVector in RAnalOp src/dst to support ldm/stm/simd
  • Fix pickle arch thinking 0 is 64 bit
  • Don't show the linearsize in the afl output
  • Add anal.vars.newstack - configurable improved stack-relative var

analysis

  • Working apt and add apl to list function preludes
  • Rename axj to axlj, because axj is for jmp refs
  • Introduce anal.tailcall.delta and use flags for better metrics
  • Improve the tailcall detection logic
  • Improve warning that only seems to happen when anal.nopskip is set
  • Always show all the archinfo, even when not provided by the plug
  • Dont show analysis progress on non-interactive shells
  • Do not recurse noreturn inspection when !addr or -1
  • Generalize vector instruction types instead of following intel-specific
  • Add /au to search for unknown destination jmp/call
  • Add anal.noret and refactor anal.noret.refs
  • Fix #20827 - Show srcs/dsts in aoj
  • Fix aae argument parsing regression in and improve help
  • Fix anal.a2f in aac
  • Increase default anal.depth from 64 to 128
  • Clarify which commands are used on each aaaa line
  • Loongarch analysis bug fixes (bl, race condition)
  • Implement aflxv and aflx? commands
  • Run /azq in aaaa
  • Add noreturn column in afll
  • Add anal.vars.newstack - configurable improved stack-relative var

api

  • Make RReg refcounted
  • Implement {ctz|clz}{32|64} RNum
  • Define RPluginMeta and RPluginStatus
  • Add new RCore.cmdCallf() helper function
  • Merge RParse into RAsm
  • Refactor RLang api to use the new design
  • Fix null deref on wrong api usage for RCore.cmdStr
  • Moving more logic between asm, arch, parse and anal
  • RAnalEsil -> REsil api refactor
  • Deprecate reil and sysarch defines
  • More refactorings and api redesigns in r_arch
  • Remove eprintf calls in favor of R_LOG
  • Implement RReg.clone()
  • Deprecate r_str_dup() - related to #20959
  • Rename RVector.len to RVector.length for consistency
  • Remove the unnecessary RThread.CpuAffinity()
  • Add portable NaN and INF defines for different float sizes
  • Deprecate r_cons_eprintf and use R_LOG instead
  • Rename RStr.home() to RFile.home() as part of the Plan
  • Rename r_mem_memzero to r_mem_zero
  • Prefer _tostring() instead of _to_string()
  • Improve r_ref implementation with debugging support
  • R_BIN_NM -> R_BIN_LANG
  • Implement thread-safe refcounting - but disabled by default
  • Deprecate the unused RFList
  • Implement r_str_ntrim() and speedup r_str_trim() with it
  • Initial implementation of RString (30% faster than RStrBuf)
  • Implement r_sys_getenv_asint
  • Add r_cons_is_initialized
  • Boolify r_core_yank_file_all() and fix shadow var bug
  • Add r_file_is_executable and r_file_extension apis
  • Fix UB bug when using r_vector random access
  • Change R_LOG_INFO to R_LOG_TODO where suitable
  • Merge rhash into rcrypto and improve apis
  • Fix memory leak in r_str_list_join()
  • Boolify and rename some methods and fields from RFS
  • Add .author field in all the RLang plugins
  • Add a public api for the yank-unset action
  • Constify the help

arch

  • Add the arch.preludes() callback and new RSearchKeyword constructor
  • Move anal.v850 to arch
  • Fix counted string bug in pickle
  • Fix negative unsigned cast in the xtensa disassembler
  • Add RAnalOp.weakbytes() and move more analop apis to arch
  • Move anal.xap into the arch
  • Update tests and better arch.patch/modify callback
  • Move anal.{6502,snes} into arch
  • Kill RAsmOp, we can reuse RAnalOp in here
  • Improve pickle disasm on invalid instructions
  • Remove RAsmPlugin struct and add the 'aia' command to show archinfo
  • Move the remaining asm plugins into the arch
  • Minor plugin selection improvements
  • Move asm.nasm into the arch
  • Move asm.vasm into arch.any_vasm
  • Assemble large pickle instructions
  • Fix and move failing tests, reorder lib build
  • Move the arm assembler plugin from asm to arch
  • Temporary add RAnal as dependency for REgg
  • Improve x86.nz assembler parsing and other bugs in rnum
  • Initial implementation of the arch.any.as plugin
  • Better handle of RNum errors for egg and arch.x86.nz
  • Support reg+idx and idx+reg in x86.nz assembler
  • Move the x86.nz plugin
  • Fix asm.acur supporting arch, anal and asm plugins
    • Fix asm.acur supporting arch, anal and asm plugins
  • Move anal_riscv to arch_riscv
  • Fix rasm2 -LLL using the new multi-bits macros
  • Introduce RSysBits and its packing/checking macros
  • Implement archinfo() in RAnal.Plugin.tms320
  • Deprecate the unused RArchPlugin.esil field
  • Use PJ to return the list of mnemonics aoml in arm.v35
  • Move anal.rsp to the new home
  • Move anal.v810 into arch.v810
  • Move pickle from anal to arch and add it to meson
  • Remove anal.malbolge and fix CI r_esil issues
  • Move the 'sh' plugin to the new home
  • Honor plugin name in rate matching for RArch.use
  • Move jdh8 from asm/anal to arch
  • Unify RArchOp into RAnalOp using common include files
  • Fix RArchOp.refptr from bool to int
  • Bump cs5 to support FNOP on m68k
  • Wire-up RArch into RAnalOp
  • Fix arm64 plugin to work well with latest arm64 changes in capstone
  • Use the latest capstone5-next with updated aarch64 support
  • Copy anal_amd29k.c to rarch
  • Change arch plugin definition
  • Add some more arch config vars
  • Introduce arch.endian config var
  • Instantiate RArch in anal
  • Introduce RArchConfig->decoder
  • Add R_LIB_TYPE_ARCH and i4004 arch-plugin
  • First arch plugin (arch.null), implement basic lib api
  • Start moving EVM analysis from extras to core
  • First implementation of r_arch decoder api
  • Introduce the new r_arch library, just the skeleton
  • Add some r_arch api declarations
  • Initial commit on RArch structs

asm

  • Deprecate more unused fields from RAsmPlugin
  • Fix the parse.z80.pseudo plugin and add a test
  • Remove the unused RAsm.binb
  • Internal cleanup of asm.c, deprecate the disassembly callback
  • Load cpu descriptions for multiarch plugins
  • Fix rasm2 x86.nz for "xchg eax,eax" and add tests

bin

  • Fix JSON encoding of section addresses
  • Add test for cwd source listing, CLL and list
  • Add warning when loading DWARF5 files (not supported)
  • Add test for the obm with CL, support noncwd paths
  • Use obm when spotting a companion dwarf file on macOS
  • Implement RBinFile.merge() and obm command to use it
  • Initial implementation of the ob-- command to close the last binobj
  • Autoload the dwarf companion file on macOS systems if available
  • Use rabin2 -rO for raw dump operations
  • Use glob expressions to specify section name to dump
  • Fix #14540 - klass->super must be an RList instead of char*
  • Support for Xbox 360 PE32 architecture (PPC BE)
  • Fix wrong detection of main in elf-arm32
  • Fix rabin2 -gj and add tests
  • Add bin.types and disable by default for CI reasons
  • Support loading Plan 9 kernels
  • Use API instead of commands to autoload a pdb
  • Fix #21020 - fix json format for rabin2 -jM when no main is found
  • Expose section type for coff, elf and macho formats
  • Fix #18375 - Only patch arm64 relocs when not initialized
  • Add experimental bin.str.nofp config for less false positives
  • Parse the PT_DYNAMIC elf section for the preinit pointers
  • Fix validation check in xnu
  • Initialize macho header pf definitions
  • Speedup class bin loading with bin.filter=false
  • Implement 'ic.' command
  • Fix initial seek for Rosetta2 aot binaries
  • Silent noisy warning in dwarfprocess
  • Expose klass->super details for objc categories
  • Include fields in the ic output
  • Enable the swift metadata parser by default and import classinfo
  • Add lang field for classes, symbols and methods, expose it via ic
  • Warn about unpatched relocs when no bin.cache is set for macho fixups
  • Add support for 32bit Mach-O fixups
  • Expose the macho reloc fixups and use internal buffer for parsing
  • Fix obf and add tests for it
  • Fix Cd4[ invalid syntax used in macho _const section
  • Expose the id_dylib macho command info into the bin kv
  • Enlarge the c++ demangler stack limit to solve a warning
  • Implement Dwarf.register identifier mapping for v850
  • Infuse asm.cpu from the elf flags for v850 ELFs
  • Remove asm.features, improve RBinInfo with flags and abi details
  • Improve brainfuck detection to reduce false positives
  • Implement dwarf.regName() for arm64
  • Import the free pascal symbol demangler from rizin

build

  • Double lowerdash defines should be defined only by the compiler
  • Fix and improve static build, faster libr.a with libtool if available
  • Improve libr.a creation with ar -rcT instead of ar -x
  • Speedup tcc builds by not using -g
  • Move esil one level up in libs.mk
  • Update sdb to remove double include paths
  • Fix compilation with -lcrypto
  • Do not use macos-latest (macos-11 is fine for LTS)
  • Update the capstone4 support to 4.0.2
  • Fix zig's @Cinclude of r_th.h
  • Add crosscompiling support with sys/zig.sh
  • Do not install the v35 archives (-50MB) in make install
  • Fix capstone dynamic memory allocation setup issue
  • Support sys/debian.sh crossbuilds
  • Remove unused lc-printscan-long-double wasi flag
  • Check if CWD contain spaces in sys/install.sh
  • Add the acr --enable-threadsafety flag and the same for meson
  • Fix meson infinite loop
  • Disable libuv by default on meson and acr
  • Change build order as long as now bin depends on fs

ci

  • Test r2 build with all sysdependencies enabled
  • Upgrade al-cheb/configure-pagefile-action to the v1.3
  • Run unit tests in parallel
  • Upgrade github actions/checkout from v2 to v3
  • Upgrade actions/upload-artifact from v2 to v3

cmd

  • Fix bugs in aeg command parser

config

  • Deprecate the use of comma in e: as stated in the r2580 prophecy
  • Deprecate graph.web eval config var
  • Remove the file.offset unused config variable

cons

  • Fix static themes listing
  • Add support for statically compiled themes
  • Fix Ctrl+Arrow dietline shortcut for word cursor
  • Fix console history log path regression

core

  • Enable cmd.undo by default
  • Rename many bin.str evars into bin.str.
  • Use XDG instead of R2_HOME_CACHEDIR and R2_HOME_HISTORY
  • Initial support for XDG env vars and paths
  • Fix RConfig.setB when the key doesnt exist
  • Deprecate scr.seek configuration variable
  • Initial implementation of R_LOG_TODO

crash

  • Fix segfault in poa 1
  • Fix integer overflow in fuzzed dwarf rendering in graphs
  • Fix use-after-free after @@@e spotted by meme
  • Fix UAF in aaft when the BB is removed during the loop
  • Fix UAF on quit exposed by r2frida

crypto

  • Initial abi breaking changes in RCrypto/RHash
  • Fix rahash2 -L listing full hash
  • Initial work on the way RCrypto handles plugins
  • Separate SM4 algorithm from plugin
  • Implement the SIP hash algorithm

debug

  • Bring back the 'dms' command
  • Fixed incorrect thread arena output
  • IO uses PID to read from child, tid is just for regs
  • Fix r2 -d foo\bar.exe and r2 -d bar.exe on windows
  • Make RDebug.regRead() and regWrite() return bool

decompiler

  • Improve the outpuf of pdc by trimming the addresses of inline nops and colorize numbers
  • Add colorization support to pdc output

disasm

  • Implement asm.bytes.align to justify them to the right
  • Fix char auto-comment in cmp instructions
  • Improve pseudodisasm for arm64
  • Improve arm.pseudo when no function information is available
  • Fix mips.pseudo shortpath when function is null
  • Fix x86.pseudo shortpath when function is null
  • Fix NULL function xrefs in pd
  • Implement asm.flags.right option
  • Add dummy parse.evm plugin to fix portability of test
  • Add a dummy bpf pseudo plugin
  • Add RParse.justify() to easily fix commas and spaces
  • Better spacing in arm.pseudo parse plugin

esil

  • Initial support for threads in esil
  • Fix #21052 - wrong emulation for pop rsp
  • Move anal.esil into the new esil
  • Add aegb command as an alias for 'aeg pieq $Fi'
  • Add aegn command to combine N esil instructions into one dfg
  • Use a function instead for the spaguetti code in all cmp esil opcodes -30LOC

globals

  • Remove one global variable in RCore.cmdEval()
  • Remove two globals from RCons.cpipe
  • Remove the 3 globals in anal.xtensa
  • Remove 3 globals from anal.tricore
  • Remove the 3 globals from anal.vax
  • Remove 3 globals from anal.nios2
  • Remove 3 globals from anal.arc
  • Remove 3 globals from anal.sparc.gnu
  • Remove 3 globals from anal.sh
  • Remove 3 globals from anal.alpha
  • Remove 3 globals from anal.lanai.gnu
  • Remove 3 more globals from anal.pdp11
  • Remove 3 globals from anal.hppa
  • Remove 3 globals from anal.m68k.gnu
  • Remove the 3 globals in anal.ppc.gnu
  • Remove 3 globals from anal.cris
  • Remove 4 globals from anal.mips.gnu
  • Deglob 4 vars in the arm.gnu disassembler
  • Remove 3 globals in s390.gnu
  • Remove 10 more globals from analysis and capstone
  • Remove 3 globals in ccarg analysis
  • Remove all global variables from RCrypto
  • Move colortable global into the RConsContext
  • Remove global from utf8
  • Remove the last global variable in libmagic
  • Remove in_log_process global
  • Remove global in bin.obj.reloc_patch
  • Remove global variable in esil loop

graph

  • Initial work in graph.bubble for custom bg color in nodes
  • Honor graph.layout in aegv too, instead of harcoding horizontal one
  • Deprecate aegi and aggi, those were dupes for aegv and aggv
  • Fix null deref in agg and avoid destructive manners of 'V ,'

help

  • Make the anal.depth warning more useful

indent

  • Balance spacings in braces

io

  • Initial implementation of the generic io-stream api
  • Fix UAF in streaming io plugins when used with io.va=1
  • Remove invocation of v layer cache in r_io_desc_read
  • Start rewriting io_cache.c
  • Kill r_io_read_at_mapped
  • Initial import of the serial plugin
  • Kill io->buffer
  • Remove unused fcn declarations
  • omfg runs omm if no map is set
  • New o++ command to create and open a new file
  • Add "reset" system command to treebuf io plugin
  • Minor bugfix in treebuf io plugin
  • Add treebuf io plugin
  • Fix free-before-use on r_io_reopen of a rbuf:// fd/desc
  • Handle reloc maps properly in r_io_map_remap and r_io_map_resize
  • Fix reloc map memleak
  • Add rio reloc maps
  • [5.8.0] Disable the default io.basemap

json

  • Fix tj ttj tfj outputs
  • Fix invalid json in tj command
  • Fix #20772 - ihj rendering an invalid json because of pfj

lang

  • Make r2 -j work as a hashbang handler for qjs
  • Enable BigNum in qjs
  • Use r2papi 0.0.4 with base64 and R2Api is now known as R2Papi
  • Add requirejs, simplify compilation and add js_ prefix to all the c files
  • Add typescript support
  • Minor improvements for js: with r2.call() and r2.cmdj
  • Enable Bignum support to the QJS interpreter
  • Import the alpha r2papi 0.0.2 api for qjs
  • Integrate the qjs repl into the js: command
  • Initial import of the interactive QJS repl
  • Import the quickjs rlang plugin
  • Implement py command and add stdin slurp support for js- too
  • Add 'js' and 'js:' commands, as well as improve help for #!?
  • Fix null deref in rlang
  • Add "lua" as an alias for "#!lua"

leaks

  • Fix leaks in pdc
  • Fix more memory leaks in rbin and ranal for arm64
  • Patch more leaks in the analysis and rbin
  • Some safe memleaks related to analysis and registers refcounting
  • Fix memory leak in dietline

lint

  • Enable the leading spaces linter rule and fix them all
  • Use more tabs and add a (disabled for now) linter for it

logs

  • Redirect RLog messages into the Corelog
  • Add base64 support to the T and T* commands

panels

  • Add ve command to set fg/bg colors for current panel

print

  • New RPrint.spinBar() API used from scr.demo for now
  • Fix pcc trifids confussion issue
  • New command CLL (aka list) show function source using addrline (dwarf) info
  • Fix #21080 - Add cfg.codevar to change the buffer varname from pc
  • ASN.1 and x509: correct OCTET_STRING and Public key info parsing
  • Add ASN1 Algorithm Identifiers for Edwards curves
  • Fix #20993 - Correct ASN.1 BIT_STRING parsing
  • Implement pcn command to print bytes as space separated numbers
  • Add support for the swatch dot-beat internet time
  • Workaround for "too large buffer" in formats
  • px* is an alias for pc*
  • Implement pFoj command
  • Implement pFaj for asn1 json decoding
  • Initial refactoring/cleanup of ASN1 parser api
  • Add pFxj command to print x509 certificates in JSON format
  • Add pFpj command to print PKCS7 files as JSON
  • Fix issue in 'pdc' that was showing empty orphan nodes
  • Implement new 'pcq' command, like pc, but inline-include-friendly
  • Implement the new pieb command as an alias for pie $Fi
  • Fix read buffer overflow in pxq -272
  • Implement pFbJ command with quiet and verbose json formats
  • Implemen pFbj for json printing of protobuf
  • Set hex.hdroff=true by default
  • Implement pFAj to render android xml in JSON (abi break)
  • Implement TSV output format for RTable

projects

  • Fix some problems when renaming projects
  • Fix some bugs in projects
  • Quote commit message to avoid git error when saving project
  • @radare Do changes in Px->Pc, Pc->PS* as planned

r2pipe

  • Check magic header before assuming an interpreted file is executable

r2pm

  • Fix assert in Str.Trim() when r2 is not installed
  • Add support for tarball and zip packages
  • Honor EDITOR in r2pm -e
  • Remove all the references to the old r2pm.sh
  • Implement R2PM_FAIL and mark it as deprecation for r2-5.9.x
  • Implement r2pm -cp like it was in r2pm.sh
  • Fix clean installations with r2pm -c
  • Expose R2PM_SUDO and list R2PM_PREFIX in -H
  • Handle -HH in r2pm for verbose env listing and remove unused R2PM_GITSKIP
  • Fixes pull/install/uninstall on windows
  • r2pm -Ui can be combined now and fix extras package building
  • Honor R2PM_DBDIR env var
  • Honor -f in r2pm -U to force clean the r2pm db
  • Support XDG on r2pm and expose the PKG_CONFIG_PATH
  • Expose R2_LIBEXT for r2pm packages
  • Update r2pm manpage and add -q and -a flags
  • Show package source with r2pm -d
  • Implement r2pm -H to make more packages build
  • Fixes parsing the GIT URL on some packages
  • Test the new default native r2pm fix flushing and using RLOG
  • Make R2PM_NATIVE the default and provide R2PM_LEGACY

r2r

  • Fix rvector assert when indexing empty ones

refactor

  • Move the RParse.cparse into RAnal.cparse
  • Stop aeg from abusing agg
  • Rename R_ANAL_ESIL_DFG_BLOCK_ to R_ANAL_ESIL_DFG_TAG_
  • Rename EsilDFGRegVar to EsilDFGVar and introduce EsilDFGVarType
  • Avoid using RArchConfig->big_endian
  • Add addr_bits to RArchPlugins and make info and decode cbs cfg aware
  • Add archcond api to rarch, some small cleanup in anal
  • Make bitness, endianess and esil-support fields of RArchPlugin again
  • Copy value.c and op.c from anal to arch
  • Copy switch.c from anal to arch
  • Add some more typedefs and enums to r_arch
  • Rename r_arch_set_ to r_arch_config_set_
  • Rename R_ASM_SYNTAX to R_ARCH_SYNTAX
  • Simplify x86_cs BSR and BSF esil
  • Use r_strbuf_replacef in anal_mips_gnu esil generation
  • Use r_strbuf_replacef in anal_mips_cs esil generation

rvc

  • Initial refactoring of the version control api
  • Move rvc from core to util
  • Fix rvc.commit when non-interactive with a default message

scan

  • Fix crash in the swift metadata parser spotted by coverity

search

  • Fix JSON encoding of unsigned search values
  • Fix /au after aeim
  • Fix /w and /wi, add tests, minor code cleanup
  • Add r_anal_optype_index to make /atl and /at use full listings of optypes
  • Support space separated instruction types and family in /at and /af
  • Improve json output for /asj and /atj
  • Fix calling /re twice after ^C
  • /az uses anal.in instead of search.in to improve scan results
  • Make /az faster after aeim, skipping unrelated regions
  • Fix last char bug in swift strings found with /az
  • Add x86-64 support to /az
  • Add flags under the asm.str flag prefix when doing /az
  • Honor bin.minsz in /az is no argument is provided
  • Implement /azq to search for assembly strings and add tests
  • Implement the new /az command to find assembly constructed strings
  • Superseed #20447 - remove some magic globals

shell

  • Fix ?vi:123 and ?v:123 commands
  • Print whatever is taken from io_system to rcons
  • Fix runtime warning after leaving an rlang session
  • Add "" command to run RCore.cmdCall()
  • Fix #21136 - o <tab> autocompletion not working
  • Show help when using invalid subcommand of afi
  • Implement abo and afbo commands to list opcode offsets in function or bb
  • Implement o-. command, add help for future o-$
  • Expose RCore.cmdCall() and fix b64: command + add tests
  • Show number conversion error messages in ?v command
  • Fixes for the line editor using live save/load with new RFile apis
  • Implement oe command to open a file using cfg.editor
  • Add quiet and table listing for lang plugins
  • Implement Ll, Llq and #!?q commands for better rlang listing
  • Fix r2 /directory behaviour
  • Support $r:REGNAME syntax and document it
  • Implement cmd.usr1 and cmd.usr2 to handle signals on unix
  • Add #!qjs and #!tiny for autocompletion
  • Fix behaviour of -a and -b flags (no arg= show current, append? for help)
  • Rename the drm command to drv for consistency
  • Add -s -i -f r2 commands
  • Implement -a, -b, -c and -e commands in r2
  • Add tabhelp exception for pf.
  • Add r2 -LL to list core plugins
  • Improve help message for f subcommands
  • Take into account static themes when listing
  • Add ot command as an alias for touch
  • Implement the ji: command as an alternative to ~{} without cons filtering
  • Also handle (j) and (*), more syntax-consistent and add a test
  • Implement (j for json output of macro commands
  • Initial implementation of ?ie
  • Add missing help for the '?i?' command
  • Use RCoreHelp for /ca?
  • Fix #20760 - Implement native gron via ~{=}
  • Remove RPrintRowlog and use R_LOG isntead
  • Allow changing number of saved input lines
  • Implement log.source and log.origin
  • Add the new ucu and ucd commands using the new core-undo apis
  • Rename asm.{off} variables to asm.offset

syntax

  • Move the preincrement and void arg from tests to lint.sh

threads

  • Initial ref-counted RRegItems, needed for threadsafety
  • Move the readahead logic to a local variable
  • Guard more critical sections in cons and core
  • Analysis now waits in background for the bin parsing to finish
  • Add some RThreadLocks and start to use the critical sections

thready

  • Dont call RCore.seek() and read a new buffer in disasm

tools

  • rax2: corrects base64 encoding for null bytes
  • Fix r2 -2
  • Fix broken tests for long number conversion
  • Fix base64 null byte decoding bug in rax2
  • Implement rasm2 -LLL to list arch plugins
  • Add Ls to list assemblers, and LA to list analysis plugins
  • Bring back the r2 -t for parsing bin and analysing in background
  • rarun2 supports multiple preload directives

util

  • Fix the XML parser
  • shlr/yxml -> libr/util/rxml - fork the abandoned yxml parser and expose it
  • Add RStr.ansiStrip() and RStr.insert()
  • Improve internal RBuffer API checks
  • Add log error when pj depth limit reached
  • Add R_SYS_BITS_12
  • Introduce R_SYS_BITS_4
  • Add :header and :noheader in RTable
  • Fix crash in r_vector_shrink
  • Minor COV fix in r_str_char_count
  • Fix return type of r_str_char_count
  • Add new RStr.replaceAll() api
  • Use R_PRINTF_CHECK for r_strbuf_replacef
  • Add r_strbuf_replace{f}

vc

  • Initial rvc refactoring and cleanup of the api
  • Move rvc apis into callbacks
  • Make ravc2 accessible via blob and r2 shell

visual

  • Use RAnalOp instead of RAsmOp in r_core_visual_bit_editor
  • Fix issue with cursor disappearing towards the bottom of the screen
  • Don't draw two cursors when too many bytes are on disasm panels
  • Make j/k movement in panels' cursor mode more consistent with it's visual counterpart
  • Don't skip byte when moving left/right in cursor mode (disassembly panel)
  • Fix pdc glitching in panels
  • Handle arrow keys in VT
  • Handle JK0 keys in VT
  • Honor cmd.vprompt and scr.notch in VT
  • RStr.wrap() supports ansi and use it in VT
  • Implement Tv command and use it from VT
  • Fix the cache and other bugs in panels
  • Override scr.maxpage in panels to avoid undesired prompts

wasm

  • Upgrade to the latest wasi16 sdk