Release Notes
Codename: "Brainroot" Version: 6.1.2 Previous: 6.1.0 AbiDiff: 70-77 (7) Commits: 224 Contributors: 15
:::sh
curl -Ls https://github.com/radareorg/radare2/releases/download/6.1.2/radare2-6.1.2.tar.xz | tar xJv
radare2-6.1.2/sys/install.sh
Highlights
More details
## Authors [AGhebrea](mailto:140226968+AGhebrea@users.noreply.github.com) [Adam Satko](mailto:54475808+satk0@users.noreply.github.com) [Antoni Viciano](mailto:48008331+aviciano@users.noreply.github.com) [Armin Weihbold](mailto:armin.weihbold@gmail.com) [David Given](mailto:dg@cowlark.com) [Dennis Goodlett](mailto:jesupnotdown@gmail.com) [Priyanshu Kumar](mailto:priyanshu.kumar@broadcom.com) [condret](mailto:condr3t@protonmail.com) [dependabot[bot]](mailto:49699333+dependabot[bot]@users.noreply.github.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) [pancake](mailto:pancake@pancakes-MacBook-Pro.local) [pancake](mailto:trufae@gmail.com) [potato](mailto:30723680+0verflowme@users.noreply.github.com) [satk0](mailto:satko_a@op.pl) ## Changes **analysis** * Preserve anal.timeout across and iterators * Add APIs to get/set function signatures and other attributes * Fix selection of overlapped functions in pdc * Unify invalid code checks and stop filler-prefix blocks early * Dont crash when reaching large bb limits, defaults to 64KB * Improve the jmptbl bb isvalid checks * Shrink the default max basicblock size from 512K to 8K * Refuse to accept invalid jmptbl blocks * Add anal.vars.maxframe and anal.vars.maxbbsize * Fix esil-computed refs without losing type propagation information * Implement the 'ah=' command to copy instruction details into hints * Optimize isString logic for anal.strings reducing heap allocations * Minor optimization on a function called a lot of times in aae **api** * Remove all the filetype related apis from librmagic * Remove r_name_filter_print function **arch** * Fix Thumb label resolution for `b`/`bl` * Fix [#23536] - Changing arch.endian affects cfg.bigendian * Initial implementation of the Python pseudo plugin * Fix overlapping registers in the dalvik profile * Honor endian settings for the or1k disassembler * Add ex9patch script for nds32 **arm** * * Fix overlapping function selection and pdc boundary crossing on arm64 kernelcache **asm** * Use RArch instead of RAnal for consistent settings * Fix the .fill directive wrongly using sizeof multiplier * Add bf.pseudo plugin **bin** * Avoid redundant ELF uncaps scans in get_stripped * Fix the ELF phdr parsing beyond symtab * Add RBinInfo.uncaps to expose non-encapsulated symbols * Improve stripped detection on MACHO binaries * Improve stripped detection on ELF binaries * Refactor and cleanup the PEF and PDB parsers * Fix PDB parser cleanup on failed parses * Handle empty XTAC names safely * Pass around RBinFile in dwarf. instead of using bin->cur * Fix Mach-O redacted symbol scanning in NUL-separated string tables * Harden Mach-O entitlement bounds checks * Optimize the RBinFilter code for section names * Clamp nindirect count saves 7GB parsing corrupted macho * Fix tons of memory leaks in the DEX parser * Fix memory leaks in the microsoft demangler * Fix infinite loop in walk_codesig by using blob offsets * Fix kernelcache nested Mach-O symbol parsing under rebased IO * Local LE optimization for the macho parser * Speedup RBin.XnuKernelCache parser * Improve icc's objc output to be more correct * Fix ObjC instance/class method types when dumping via icc * Simplify the macho header parsing to extract endianness * Clamp code signature slots and simplify parsing checks * Add missing CSSLOT code signature types for macho * Refactor Mach-O bind parser to reduce nested code and improve bound checks * FIx [#25482] - Improved macho bound to avoid unparseable allocations * Fix 'isv' error message and other code cleanups in cmd_info **build** * Support v6 as an alias for capstone-next for meson * Fix [#25607] - arm64 disassembler wasn't available for capstone-next * Remove shlr/capstone leftovers * Do not use LTO for static builds by default * Zig toolchain for debian/i386 crosscompilations * Add docker and scripts for testing on i386 * Initial bootable dist/iso machinery **ci** * Pub the r2r json artifacts for the asan jobs * Use -j4 in a windows build instead of -j1 * Improve the wasi build machinery **cons** * Preserve cons.timeout across context stacks * Add missing keys in color themes * Hardened nullable context cloning **core** * Fix RConfigSet bug creating keys when storage is locked * Defer autocomplete and envprofile setup in non-interactive startup * Initial support for $$..XXX addressing * Rename anal.types. config vars to be just types. **crash** * Memory ownership improvements for the http webserver * Fix nullable outputs in r_flag_zone_around * Fix use-after-free in bin_any filetype detection * Fix pcap buffer unref on parse failure * Fix 3 critical bugs in the regex engine * Use RStrBuf in librmagic to fix two vfprintf bugs * Add more safety bound checks in dotnet * Fix oobread in dotnet parser * Fix assert in '?e je|!cat' writing 0 bytes * Fix null deref in the PEF parser * Fix oobread exposed in the new psp tests * Fix invalid mem free when one DIE has two or more DW_AT_name attributes * Fix SIGCHLD deadlock for r2r 32bit systems * Fix race condition in Linux's system causing random r2r failures * Bound Mach-O SuperBlob count before allocation * Fix infinite loading times for a fuzzed macho file * De-recurse bbtree walks abusing stack usage in wasm/asan * Fix UAF in the dotnet metadata parsing * Clamp utf8 decode length for truncated null terminate inputs * Fix deinitialization segfault in the background webserver **doc** * Document r2r tests in the manpage **dwarf** * Find dwarf attr DW_AT_frame_base once outside the hot loop **egg** * Inline assignments, block bodies, no empty frames and fastcall handling * Refactor arm emitter, memory access, branch logic * Refactor arm64 load/store helpers * Fix fastcall declaration parsing and add a test * Fix arm thumb emitter for frame, string, getvar and load * Some arm64 egg emitter fixes (string, jmp, 8byte alignment, stp/ldp) **esil** * Dont run aeim in esil analysis related commands * Push a zero into the esil stack when dividing by zero **fs** * Fix HFS+ extent overflow search key initialization **graph** * Add graph.bb.maxsize option to limit basic blocks size in graphs **io** * Speed up dyldcache rebase backtracking in io.dsc * Fix memory leak, zip creation in readonly and other minor bugs in zip * Do not corrupt files when using zip:// **lib** * Refactor DRY user plugins load logic **muta** * Simplify the transposition muta plugins **print** * Merge pz and p= subcommands capabilities * Support utf8 dots on truncated text with the new r_print_ellipsis * Simplify cmd_print string helpers and drop null guards * Fix utf8 checks for invalid and overlong encoding **projects** * Add prj.new config to use the new prj formats **r2js** * Implement more r2js variants for r2pipe2 **r2r** * Fix r2r temp diff file handling * Run `iH` for all the fuzzed binaries **ragg** * Fix memory leak in ragg2 **remote** * Expose URI instead of basename for r2agent sessions **sandbox** * Do chdir("/") after chroot(".") to avoid sandbox escapes **search** * Use block buffering for faster anal search * Optimize /az reading blocks and use minopsz and opalign **shell** * Fix [#25556] - Internal grep with macros * Support copying to directory and handle errors in `cp` **snslydid** * Run data-flow reference analysis to cmd_anal_all for consistent behavior witha aa **test** * Fix null/len checks to please the fuzz suite * Add fuzz loop scripts * Introduce the new indent suite **tests** * Add fuzz loop scripts **tools** * Add `r2r -1` as an alias for -j1 * Fix formatting braced stuff like enums * Reuse RCons in rafs2 interactive shell * Fix SIGSEGV in rafs2 interactive mode * Add support for user plugins in rafs2 **types** * Lazy-load and cache types to speed startup * Merge OS-specific types in RAnal.setOS * Use sdb_set instead of sdb_query to store data after parsing * Support parsing vararg in function pointers * Support parsing forward structs declaration * Include line number and type name when parsing fails * Implement the tf- command to delete function definitions * Add anal.types.xrefs for the tv commands * Show xrefs for function signature definitions in tfv * Implement tfv command to view function arguments and its offsets **util** * Add a larger regex testsuite and fix a couple of bugs **visual** * Add TV as an alias for TV * Improve quality in the treemap '?em' code