radare2

UNIX-like reverse engineering framework and command-line toolset

LGPL-3.0 License

Downloads
164
Stars
19.6K
Committers
1K

Bot releases are visible (Hide)

radare2 - 5.9.0 - Codename "Hyperborean" Latest Release

Published by github-actions[bot] 7 months ago

Release Notes

Version: 5.9.0
Previous: 5.8.8
Commits: 1316
Contributors: 65

curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.0/radare2-5.9.0.tar.xz | tar xJv
radare2-5.9.0/sys/install.sh

Highlights

Authors

ApkUnpacker Armin Weihbold Armin Weihbold Azox Begasus Chiller Dragon Dennis Goodlett Dennis Goodlett Dirk Eibach Dāvis Mosāns Erik Griese Francesco Tamagni François Revol GravisZro Hertatijanto Hartono Kacper Słomiński Lars Haukli Lazula Luc Tielen Luc Tielen Luc Tielen Madghostek Mewt R MewtR Michael Ortmann Murphy Nathan Nikolaos Chatzikonstantinou Omvpatil Pau RE Pikachu Rami ReWithMe Richard Patel RoboSchmied Sergi Àlvarez i Capilla Sylvain Pelissier Sándor Oroszi Tony O Tronciu Vlad Vasilyy Yiheng Cao Yuvraj Saxena aemmitt-ns ashamedbit astralia condret dvertx gogolovefish junchao-loongson kyufie lasek0 meme micronn neo-one0873 overmyerD pancake pancake phix33 ripatel-fd solid-snail syheliel toni yep zengwei2000

Changes

abi

  • Use RPluginMeta in RCryptoPlugin
  • Use RPluginMeta in RFS
  • Remove dead code
  • Initial deprecation of the current RAnalPlugin
  • Refactor show flags into single showMode bitset
  • Change return type for r_bin_dwarf_parse_aranges
  • Update signature of patch_relocs callback
  • Make r_cons_grep_expression public, rm r_cons_grep_process
  • Rename r_str_next_split -> r_str_tok_next; make public
  • Remove grep for 570 (all fixed), update older R2_580 to 590
  • Rename REsil.address -> .addr for consistency
  • Remove several R2_590 ifdefs
  • RArch now depends on REsil
  • Use RPluginMeta in RArchPlugin

anal

  • Fix #22552 - Fix variable access direction for arm64 store instruction
  • Fix aac bug caused by anal.in on binaries with sections
  • Add anfl command and anal.slow to bring back the old autoname functionality
  • Improve sigdb file format detection
  • Run .afna@@c:afla in aaaaa
  • Implement afba like afla but for basic blocks
  • Implement afla command to list function in the inverse call dependency order
  • Parse len argument in aaex
  • Initial support for xref sizes
  • Use base64 in "ax," and also show ref size column
  • Implement axt, - for table listing xrefs
  • Implement axtf - list function xrefs
  • Improve aan/afna/afns add json and use emulation
  • Permit partial block reads on analsearch loops
  • Remove noisy log message in aap
  • Add scr.analbar config var to have progressbar without scr.demo
  • Fix ap command using real fcn prelude info from arch plugin
  • Implement aax command to make a function on each CALL xref
  • Implement aaex command, like aae, but does not analyze any function
  • Fix /rc, document argument handling and add test
  • Improve JSON output for the afsvj command
  • Implement afsvj command
  • Implement afs- to delete a function signature
  • Implement r_anal_function_del_signature
  • Consider null bytes as invalid instructions too
  • Support 'aaa' in frida:// targets
  • Initial backtrace API and commands (abt)
  • Another improvement for aaaa
  • Take invalid instructions in consideration for the bitfield decoding
  • Implement aobv command for visual instruction decoding
  • Show function colors in afl
  • Plant the seed for the tlocal bool in RAnalOp
  • Fix warning in aar when checking icod refs on unallocated memory
  • Implement CL+ and CLf, show info in afi/afij
  • Dont fall into calls surrounded by traps
  • Better (more verbose) output for aaaaa
  • Add Cb - bind metadata type to draw reflines for data pointers
  • Add progressbar in 'aaa' when scr.demo is set
  • Show bb->esil in ab and abj
  • Add 'afbd' to emulate bb regstates in the correct order
  • Add RAnalBlock.esil and abe command to manipulate it
  • Initial support for D calling convention
  • Add r_anal_function_get_graph
  • Add two missing log lines for aaa
  • Implement more swapped conditionals support in type propagation
  • Refactor aaft to use less allocations for buffer
  • Sort blocks only once in aaft
  • Reuse more allocated memory during aaft
  • Add test for a bug spotted in the aac command
  • Cleanup rebasing refs during oo
  • Add r_anal_xrefs_has_xrefs_at function
  • Remove duplicate xrefs delete function
  • R_API function to count xrefs at a specific address
  • Cleanup xrefs code
  • Optimize xrefs using swisstable
  • Reimplement the a2f core plugin into an analysis one
  • Analyze methods after parsing the C++ vtables
  • Fix #22100 - Dont compute disp refs when ptr is set
  • Honor anal.jmp.ref in aar
  • Compute depth and save it in the bb
  • Save a bit of memory in xrefs implementation
  • Fix timeout and move possible slow test
  • Skipping empty blocks is now a warning
  • Show color field in the afbj output
  • Accept asm.bits=16/asm.os=android for syscalls + tests
  • Reduce false positives when scanning for syscalls on thumb code
  • Honor codealign, speedup syscall search emulation
  • Add anal.imports to analyze them early in aa
  • Honor RArchInfo.codealign in aar
  • Honor 'rsym.' flag prefix
  • Implement the abc- command to unset a bb color
  • Minor optimization in r_anal_block_op_starts_at
  • Use r_anal_ref_typemask() to sanitize xref types and update tests
  • Add and use the new Indirect Code XREF type to improve code coverage
  • Add the new r_anal_data_type() for better data type detection
  • Smol ref->type masked improvements
  • Add more function preludes for arm32
  • Fix some missing xrefs in /re $$
  • Handle 'asm.os=android' syscall as an alias for 'linux'
  • More verbose and clearer output for abl
  • Add RAnalFunction.traceCoverage() api and info in afi/afl/abi/..
  • Minor bugfix/improvement when ninstr == 0
  • Dont show function diff info when not diffing
  • Don't add more instructions than the ones we can handle in the basic blocks
  • Faster RAnal.bbTrace()
  • Add afix subcommand to list function info + xrefs
  • Add all-xrefs listings in 'afi' and 'afij'
  • Optimize: reg 32 <-> 64 conversion iterates over gpr only
  • Optimize anal.roregs
  • anal.gp also sets the reg value
  • Do not accept invalid xrefs (-1 <-> -1)
  • anal.strings does not disable bin.strings
  • RAnalValue no longer refs an RRegItem

analysis

  • Fix #22552 - Fix variable access direction for arm64 store instruction
  • Fix aac bug caused by anal.in on binaries with sections
  • Add anfl command and anal.slow to bring back the old autoname functionality
  • Run .afna@@c:afla in aaaaa
  • Implement afba like afla but for basic blocks
  • Implement afla command to list function in the inverse call dependency order
  • Parse len argument in aaex
  • Initial support for xref sizes
  • Use base64 in "ax," and also show ref size column
  • Implement axt, - for table listing xrefs
  • Implement axtf - list function xrefs
  • Improve aan/afna/afns add json and use emulation
  • Permit partial block reads on analsearch loops
  • Remove noisy log message in aap
  • Add scr.analbar config var to have progressbar without scr.demo
  • Fix ap command using real fcn prelude info from arch plugin
  • Implement aax command to make a function on each CALL xref
  • Implement aaex command, like aae, but does not analyze any function
  • Fix /rc, document argument handling and add test
  • Improve JSON output for the afsvj command
  • Implement afsvj command
  • Implement afs- to delete a function signature
  • Implement r_anal_function_del_signature
  • Consider null bytes as invalid instructions too
  • Support 'aaa' in frida:// targets
  • Initial backtrace API and commands (abt)
  • Another improvement for aaaa
  • Take invalid instructions in consideration for the bitfield decoding
  • Implement aobv command for visual instruction decoding
  • Show function colors in afl
  • Plant the seed for the tlocal bool in RAnalOp
  • Fix warning in aar when checking icod refs on unallocated memory
  • Implement CL+ and CLf, show info in afi/afij
  • Dont fall into calls surrounded by traps
  • Better (more verbose) output for aaaaa
  • Add Cb - bind metadata type to draw reflines for data pointers
  • Add progressbar in 'aaa' when scr.demo is set
  • Show bb->esil in ab and abj
  • Add 'afbd' to emulate bb regstates in the correct order
  • Add RAnalBlock.esil and abe command to manipulate it
  • Initial support for D calling convention
  • Add two missing log lines for aaa
  • Implement more swapped conditionals support in type propagation
  • Add test for a bug spotted in the aac command
  • Reimplement the a2f core plugin into an analysis one
  • Analyze methods after parsing the C++ vtables
  • Fix #22100 - Dont compute disp refs when ptr is set
  • Honor anal.jmp.ref in aar
  • Compute depth and save it in the bb
  • Save a bit of memory in xrefs implementation
  • Fix timeout and move possible slow test
  • Skipping empty blocks is now a warning
  • Show color field in the afbj output
  • Accept asm.bits=16/asm.os=android for syscalls + tests
  • Reduce false positives when scanning for syscalls on thumb code
  • Honor codealign, speedup syscall search emulation
  • Add anal.imports to analyze them early in aa
  • Honor RArchInfo.codealign in aar
  • Honor 'rsym.' flag prefix
  • Implement the abc- command to unset a bb color
  • Minor optimization in r_anal_block_op_starts_at
  • Use r_anal_ref_typemask() to sanitize xref types and update tests
  • Add and use the new Indirect Code XREF type to improve code coverage
  • Add the new r_anal_data_type() for better data type detection
  • Smol ref->type masked improvements
  • Add more function preludes for arm32
  • Fix some missing xrefs in /re $$
  • Handle 'asm.os=android' syscall as an alias for 'linux'
  • More verbose and clearer output for abl
  • Add RAnalFunction.traceCoverage() api and info in afi/afl/abi/..
  • Minor bugfix/improvement when ninstr == 0
  • Dont show function diff info when not diffing
  • Don't add more instructions than the ones we can handle in the basic blocks
  • Faster RAnal.bbTrace()
  • Add afix subcommand to list function info + xrefs
  • Add all-xrefs listings in 'afi' and 'afij'
  • Optimize: reg 32 <-> 64 conversion iterates over gpr only
  • Optimize anal.roregs
  • anal.gp also sets the reg value
  • Do not accept invalid xrefs (-1 <-> -1)
  • anal.strings does not disable bin.strings
  • RAnalValue no longer refs an RRegItem

api

  • Implement RFile.newf()
  • Expose call as as a public r_core_cmd_call_str_at
  • Boolify the RCore.yank
  • Deprecate r_bin_get_fields
  • Make r_debug_num_callback internal and remove two R2_590
  • Use RPluginMeta in RLangPlugin
  • Rename RCons.chop() into .trim()
  • Rename RStrpool.ansiChop to ansiTrim()
  • RFlag.free() must return void
  • Use RPluginMeta in RBinPlugins
  • RBinPlugin.loadBuffer() -> load() .. and checkBuffer() too
  • Add .help() callback for the RCoreBind
  • Keep RCons.strcat defines for backward compat
  • Implement the new RAnal.cmd()
  • Eliminate RBin.a2b()
  • Deprecate r_anal_op_hexstr()
  • Ship our own thread safe and portable r_str_tok_r in r_util
  • Move the base36 api from .h to .c
  • Delete unused r_cache from rutil

arch

  • Implement 'wao recj' for 'tbz/tbnz' arm64 instructions
  • Fix assembling 'mov ax, bx' for x86-16
  • Add Initial Support for assembling ARM MTE Instructions
  • Fix type confusion in pyc
  • Fix infinite loop exposed in iaito when selecting mcore
  • Add support for compressed nops in riscv
  • Add support for fslsp/QorIQ
  • Fix some op types m680x
  • Pre-fill op type depending on insn group info m680x
  • Fill more op fields in m680x
  • Strip some special chars for intel syntax in m680x
  • Fix registers description for m680x
  • List valid CPUs for m680x, specify endianness
  • Add UB check in the loongarch decoder
  • Add RArch.esilCb() and register a new op for x86
  • Implement r_arch_find() and use it from CoreBin
  • Fix arch.riscv.vs plugin (decoding always failed)
  • Move the brainfuck arch platform description into a script
  • Add missing space after comma in 6502 disasm
  • Implement arch.platform eval var + nes scripts
  • nds32: Fix esil for sethi, dummy BP for the regprofile and fix rcall/ret5
  • Initial register profile definition for nds32
  • Implement esil expressions for some nds32 instructions
  • Add "intel" syntax support for the nds32 plugin
  • Implement 'add r#, K' in the x86 assembler
  • Initial support for nds32
  • Update arch from Config while finding best matches
  • Fix rasm2 -a arm.v35 tests on x86
  • Define more op.type for pyc
  • Fix #22061 - Add 'auipc' instruction for the RV64 assembler
  • Properly define the conditional software interrupts
  • Improve SPARC control flow and code coverage
  • Fix bad esil on arm32 shift-reg instruction
  • Uncomment the new R_ARCH_INFO enum replacing R_ANAL_ARCHINFO
  • Handle xrefs from vector instructions on x86
  • Migrate the LAST and final boss X86 plugin
  • Unsigned capstone init option only for x86
  • Improve plugin resolution
  • Mark init, fini, and decode arch callbacks as const
  • Remove global state from qjs plugins
  • Fix division by zero when pcalign is 0
  • Fix sparc.{cs|gnu} endian behaviour and add tests
  • s390 b instruction in an UJMP because it depends on a reg
  • Mark java tests as broken until the arch refactor is done
  • Unify the invalid instruction behaviour
  • Make all arch plugins const (better perf)
  • Remove global state from arm gnu plugin
  • Removed deprecated variable for gb plugin
  • Migrate arm_cs plugin
  • Migrate dalvik plugin
  • Migrate 8051 plugin
  • Migrate libr/asm/arch/include
  • Migrate the mips.cs plugin
  • Migrate the AVR plugin
  • Migrate the arm.gnu plugin
  • Migrate the gameboy plugin

asan

  • Fix oobread in the java disassembler

asm

  • Fix linenum error message when failing to assemble
  • Use a hashtable fo the .equ rasm2 directive
  • Null deref in rasm2
  • Deprecate r_asm_op_get_buf and make r_asm_code_equ_get public

bin

  • Expose numeric reloc type for PE, NE, LE, BFLT, MACH0 and ELF in ir and irj
  • Rebase LE objects independently
  • Implement R_X86_64_DTPOFF64 reloc type for ELF
  • Implement R_X86_64_DTPMOD64 reloc for type for ELF
  • Fix #22742 - Implement R_X86_64_TPOFF64 reloc type for ELF
  • Fix 'reloc conversion failed' on some ELFs
  • Fix #22737 - Honor endianness in ih for elf + tests
  • Fix LE sections sizes and add zerofills
  • Fix handling of LE cross-page relocs
  • Fix entry point field name discrepancy in .ih* between 32bit and 64bit ELF
  • Support arm64 type 1026 relocs
  • Patch relocs in LE
  • Implement irqq and move the command handler out of the subcommand loop
  • Do not report bad imports addresses in elf objects
  • Better logging for unsupported arm64 elf relocs
  • Initial import of the RBin.io plugin
  • Improve uricheck to avoid bin.relocs.apply mess things up
  • Support unlimited buffer size for PE format
  • Fix kernelcache sections vaddr offset
  • Fix rebasing of dyld cache pointers at page boundary
  • Add support for iOS Simulator dyld caches
  • Fix/respect bin demangle macho c++ bins v3
  • Walk Mach-O exports from LC_DYLD_EXPORTS_TRIE too
  • Update pyc magic detection
  • Fix #22539 - Remove 2044 max hard limit in string scan
  • Implement the ciE command to compare exports between two objects
  • Add initial support for vsf dialect produced by C64 Debugger app
  • Handle ^C when loading/filtering symbols just in case
  • Use RBinName in RBinSymbol
  • Support coff objects
  • Fix security issues in coff plugin
  • Support XCOFF entrypoint and imports via loader
  • Fix how local symbols are matched to images in dyldcache
  • Allow images to be repeated with different names in dyldcache
  • Fix "alien dep" infinite loop carving deps in dyldcache
  • Basic XCOFF32 section handling
  • Support WinNT RISC COFF and AIX XCOFF32
  • Support DWARF section names for XCOFF64
  • Refactor ih outside the awful i loop, add ihh and fix ihq/ihj..
  • Improve RBinField to hold and expose the value in the flag names
  • Fix pf format size warnings in .ih* for ELF
  • Use RBinName for RBinClass too
  • Add support for list-of-lists in ObjC class parsing
  • Fail loading dyldcache if not using dsc://
  • Move dyld cache rebasing logic to io plugin
  • Improved ia tests and trim trailing spaces in strings
  • Refactor to use RBinName for RBinField(s)
  • Use RBinPlugin.symbolsVec() in Kernelcache
  • Handle R_KERNELCACHE_FILTER env in RBin.kernelCache
  • Deprecate addrline2, it's only used internally
  • Implement iSqq and iSSqq commands
  • m68k is 32 bit
  • Fix entry point determination and info for HUNK file parser
  • Revert "Initial part of a large refactoring using RBinName, unified attributes
  • Fix bin.limit for macho imports
  • Initial part of a large refactoring using RBinName, unified attributes
  • Handle Kotlin as an alias for Java in icc classdump
  • Initial implementation of RBinName and RBinAttr
  • Handle Swift demangling for __C. symbols
  • Hide visibility string if empty and show more Swift super-classes
  • Parse Swift super classes
  • Parse Swift field types
  • Fix symbol range bug in isq.
  • Support symbolic symbols in the swift demangler
  • Reintroduce RBinPlugin->{init/fini} for plugins that need to initialize a third party global runtime
  • Initial implementation of iic and improved symclass
  • Import safetiness symbol name database from iaito
  • Show base address associated with the binobj in obj
  • Handle more builtin types in the swift demangler and be more flexible
  • Faster ASAN CI by improving parsing checks in LE bins
  • Add C++ classdumper
  • Fix warning spotted in latest gcc failing msvc demangler
  • Prepend dynamically loaded bin plugins befor static bin plugins
  • Implement ick to dump classes in k=v form
  • Implement Swift formatter for icc and change some objc things
  • Fix header miscalculation
  • Introduce some memleaks in order to fix ownership later and avoid UAF now
  • Add support for qdsp6 elf relocs
  • Add test and avoid double path concats in some dwarfs
  • Honor baddr in the dwarf parsing
  • Some more code cleanup in the swift metadata parser
  • Demangle Swift methods and support __s types
  • Detect nds32 arch in ELF binaries
  • Support demangling swift types
  • Demangle Swift superclass names earlier and laterer in the popaline
  • Don't push NULL into the klass->super empty list
  • Add ic+/ic- to register new classes and methods
  • Shrink dynstr section size to file bounds if needed
  • Fix null deref in the ELF parser when dynstr section is too large
  • Bring back the bin.cache, and warn about bin.relocs.apply too
  • Support RVec in mangling/swift
  • Demangle dynamic attributes for Swift
  • Move dyldcache symbols to symbols_vec
  • Fix uninitialized mach0 opts in dyldcache loading
  • Fix type confussion bug in the RBin.loadLangs()
  • Remove the boffset callback from the ninds and z64 plugins
  • Remove init/fini from RBinPlugin
  • Remove unnecessary arguments to RBin.loadBuffer()
  • Fix early bail out in dwarf-only Mach-O symbol parsing
  • Revert buggy "Fix ub in macho classparsing" and add test
  • Take .got and .rela.plt into account as wordable sections
  • Rename RBinFile->o => RBinFile->bo
  • Fix visibility of r_bin_class_{new/free}
  • Fix #22096 - Stop on zero vernext for ELF
  • Optimize mach0 va2pa by using vec
  • Don't load macho segments over and over, use vec
  • Fix #16531 - vaddr of strings in kernelcaches
  • Fix canary check in mach0 binaries
  • Fix elf tests
  • Use symbols_vec in the ELF parser
  • Improvements on the rust and c++ mangling detection
  • RBinSymbol api now works with RVec for mach0
  • Fix #22080 - Segfault in xtr.sep64 parser
  • Add support for PT_OPENBSD_NOBTCFI in the ELF parser
  • Deprecate RBin.isString() API
  • Initial public vector api for rbin
  • Add RABIN2_NOFUNCSTARTS env var to speedup macho parsing ignoring the FUNCSTART info
  • Handle bin.limit in ELF and support strings, imports, ..
  • Warn when finding compressed dwarf sections
  • Honor io.va in class/method/field listing
  • Add bin.limit eval var and use it for macho
  • Fix ELF variable scope UB issue causing asan CI to fail
  • Introduce RBinImport.lsymbol and move the rsym. logic from core
  • ElfObject now takes a user-defined base address
  • ELF's .rel.plt is also a wordable section
  • More debug logs and less strictness in the ELF parser
  • Dont show the demangled relocs when no name in json
  • Fix null deref in the dyldcache parser
  • Use the internal RVector in mach0.vapa
  • Rename internal function
  • Import the bin.pcap plugin from extras
  • Support bin details from non-arch bin files
  • Use more overlay for relocs
  • Make RBinSymbol.clone() API public
  • The addr2line function, now also returns the column
  • Unresolved elf symbols are now debug logs
  • Use ut64 for bin bind offsets

bin"

  • Revert "Initial part of a large refactoring using RBinName, unified attributes

bug

  • Fix invalid macro identifiers in r_print

build

  • Fix #22745 - Fix Android static builds and autodetect NDK on Ubuntu
  • Honor --prefix in /sys/install.sh
  • Fix static linking on macOS
  • Add --disable-debugstuff to build without R_LOG_DEBUG, ^C and other stuff
  • Less default plugins for the custom meson
  • Fix regression in capstone 5.0.1 (--with-syscapstone)
  • Support static linkages via pkg-config
  • Add --without-syscapstone commandline flag, needed for asan
  • Fix mrproper on BSD systems (max args for rm)
  • Add support for cs5 and csnext
  • Initialize xtensa_default_isa to fix clang's linker bug
  • Honor nogpl for xtensa in the meson
  • Use capstone-5.0 release tarball (instead of 4.0.2)
  • Use realpath to force absolute path in sys/install.sh prefix
  • LZ4 removal for make and meson, relates to #19849
  • Use relative includes instead of assuming libr/arch/include
  • Haiku have ptrace but not sys/ptrace.h
  • Fix 'missing setsockopt' issue on HaikuOS

ci

  • Add copilot support for pull requests

config

  • PDB server list is now space separated instead of using semicolons
  • Rename asm.usercomments to asm.cmt.user
  • Check cons->line is there in scr.demo setter
  • Introduce bin.relocs.apply config var

cons

  • Revert "Minor optimization by avoiding one unnecessary clearline in the dietline
  • Minor optimization by avoiding one unnecessary clearline in the dietline
  • Add log.cons option to log errors through the RCons buffer
  • Add missing r_cons_canvas_goto_write
  • Make it possible to use Enter to submit the command in dietline vi-mode
  • fix minor bugs
  • simplify code
  • Implement vi horizontal motions (f/F & t/T) + more di (delete in) vi commands in dietline
  • Implement ~ (swap case) dietline vi-mode command + fix color bug in prompt
  • Refactor d (delete) commands and implement c (change) commands in dietline vi-mode
  • Fix word deletion bugs in dietline vi-mode
  • Improve dietline vi-mode word motion commands (b, e, d)
  • Make behaviour of some dietline vi commands closer to vim's
  • Don't print empty lines via io.system
  • Make r_cons_pal_parse to always return ansi + RColor
  • Fix XML indent
  • Initial support for sixel graphics
  • VC and VVC rotate over 0,1,2,3 values in scr.color
  • Support bold attribute for the scr.html filter
  • Minor scr.demo improvements on startup
  • Implement the golden platinum shiny prompt
  • Fix ~{}~foo grepping indented json
  • Rename gui.alt_background -> gui.background2
  • Fix RCons.pal varnames to make them all follow the same syntax
  • Add ec func_var_name in the color palette
  • Disable the RConsMark api because getCursor is too slow
  • Add the monochrome theme
  • Free cons context marks during deinit
  • Better default colors that works for light and dark terminals
  • Initial implementation of the RConsMark API
  • Eliminate some globals

cons"

  • Revert "Minor optimization by avoiding one unnecessary clearline in the dietline

core

  • Use size or vsize consistently in iS.
  • Fix iS. paddr vaddr confusion
  • Add sd command to show the delta seek relative to different bases
  • Faster RCoreCall via RCoreCmd
  • Add more RCore.cmd_at() variants
  • Remove global state in visual UI
  • Refactor structure of metadata for core plugins
  • Fix removing core plugins from Lc after L-
  • Only have 1 generic qjs plugin
  • Add cursor mark to ds_print_data_type
  • Add cons mark for cursor in ds_print_show_cursor
  • Add column info to print_meta_offset
  • Add hello world text box on visual refresh
  • Expose injprot value in bin_info
  • Speedup plugin loading and startup times
  • Add the new RCore.cmdCallAt() and cmdfAt() APIS

crash

  • Fix #22767 - Some UB when malloc(0) in RBuffer api
  • Dont use the COFF symtable if the initalization fails
  • Fix segfault when loading a python rlang plugin after a qjs one
  • Dim symbol and section count to avoid future coff issues
  • Add null terminator in symbol name union, fixes two tests
  • Add test for the fuzzed coff file
  • Fix large offset passed to the pascal demangler
  • Fix double free in the io.gprobe plugin
  • Fix oobread on the inline metadata used in disasm
  • Fix another oobread in the nds32 disassembler and add tests
  • Fix index out of bounds in the nds32 disassembler
  • Fix heap buffer overflow in the mach0 parser
  • Fix oobread in dalvik disassembler
  • Fix negative index and oobread in array in pyc
  • Fix negative realloc in the ELF parser
  • Fix 1 byte oobread in the h8300 by defining the archinfo details
  • Fix 1 byte overflow in pyc parser
  • Use the safe r_str_scanf instead of scanf to parse gdb profile
  • Fix op_pos oobread crash in ollvm'd binary
  • Fix #22523 - 1 byte oobread in the java disassembler
  • Fix #22349 - oobread in xnu kernelcache
  • Fix #22333 - Fix oob index in global variable for nds32
  • Fix #22334 - oob index in global for nds32 causing segfault
  • Improve the situation in the non-null terminated string handling in mach0land
  • Fix oobread in the ELF parser. Spotted by clusterfuzz
  • Fix null deref assert in pdj
  • Fix #21970 - Null checks in the R_LOG api
  • Fix crash in emu.ssa reproducible even when disabled
  • Fix oobs in the java parser, use RLOG and stop earlier

crypto

  • Add json and hexpairs output to encryption modes in rahash2
  • Support numeric seed/key values via rahash2 -S and honor endianness via -e

debug

  • Fix the fix for dmh after ood
  • adapt get_main_arena_offset_with_relocs to different libc versions
  • Fix #22667 - do not call drx() on non-intel chips
  • Add new way to resolve main_arena
  • Refactor resolve_glibc_version, improve libc regex
  • Fix call to thread_set_state in armv7
  • Fix armv7 build for xnu native
  • Avoid failing reg read if conversion fails on xnu native
  • Fix thread_set_state on arm64e
  • Improve argument parsing for the dmp command
  • Fix #22563 - fix 'cannot assemble' in dmp, using egg shellcodes
  • Autodetect libc version and support manual specification
  • Import the debug.evm plugin from radare2-extras
  • Fix bad parsing, uaf and other crashes in the dts command
  • dcco steps over the function call after finding the call
  • Fix bitsize when listing regs via ar=
  • Debug plugin fallbacks
  • Add the missing bp.null plugin
  • Assume sysgdb:// implies -d
  • Add support for macos-x86-64 in sysgdb://
  • Initial support for arm64 via lldb (local and remote) in sysgdb://
  • No warnings when /proc/pid/maps is not available on remote gdb targets
  • Revert "Dont dupe map file and name if not necessary
  • Dont dupe map file and name if not necessary
  • Prefix 0x hex values in drr
  • Fix dptj and add dpt? help match
  • Implement 'dpq' command to just show the current pid
  • Add dbg.glibc.path eval var to override magic guessing
  • dce is no longer a windows-specific command
  • Refactor r_debug_trace_list
  • Store tracepoints in vec
  • Migrate rv32ima plugin
  • Migrate gdb plugin
  • Migrate winkd plugin
  • Migrate qnx plugin
  • Migrate bochs plugin
  • Store current debug plugin session, migrate plugin
  • Improve naming for callback functions to reduce confusion
  • Add cleanup of plugins
  • Redesign plugins to have user data
  • Add RRegType "privileged" and use it from the gdb profile

debug"

  • Revert "Dont dupe map file and name if not necessary

diff

  • Analysis diffing warnings are now debug messages
  • Implement EXPERIMENTAL radiff2 -T to analyze bins in parallel
  • Handle one more level of -A in radiff2

disasm

  • Fix #22576 - Add esil object in pdJ with detailed info
  • Dont show asm.emu comments when asm.comments is off
  • Rename asm.calls to asm.cmt.calls
  • Fix glitch in asm.bytes.space
  • Implement pdsq and pdsfq commands. Improve help message
  • Fix glitch when asm.bytes.space+asm.bytes.align+asm.nbytes%2
  • Improve asm.offset.relto only via pd
  • Avoid double disasm in some situations
  • Emulate previous basic block instructions when emu.bb is set
  • Implement emu.bb and honor it in pd
  • More stable asm.indent, but still experimental
  • Add asm.flags.inoffset
  • Add asm.flags.prefix (true by default)
  • Show basic block color even if asm.trace is false
  • Show noreturn attribute in the function signature
  • Add asm.lines.limit config variable to hide asm.lines if disasm is larger
  • Fix glitch + tests asm.bytes.{align,space}
  • Improved unaligned cases in the listings
  • Add asm.trace.{stats|color} and better trace visualization in graph and disasm

doc

  • Update rax2 manpage and fix help
  • Add r2pipe2.md RFC
  • Extend the manpage reader to support more attributes
  • Update manpage for rasign2
  • Update ESIL manpage
  • Update rafind2 manpage
  • Update documentation for macOS/arm64e
  • README: Fix unit tests target after fd9f8d631
  • Add r2diaphora reference in the readme

emulation

  • Implement arAj and show help in arA?
  • Fix aesou - not stop on calls and properly parse argument
  • abpe now runs the commands and old abpe is now abpe*

esil

  • Add the esil.forth plugin to support the basic ops for the language to work
  • Initial implementation of the ESIL compiler in the ae! command
  • Move esil2c from core to libr.esil
  • New command 'aeae', like aea, but taking an esil expression as argument
  • Add '= ' and ':= ' esil ops as a workaround for ae oneliners
  • Implement dre/are to list regs in esil format
  • Add loopcounts to ESIL trace
  • Remove global state for old callbacks
  • Reintroduce r_esil_plugin_remove to satisfy generic plugin management in core
  • Fix esil_plugin_remove
  • anal->esil can't be null now, improve default initialization
  • Improve aesue feedback and add tests
  • Fix 'ae 1,xmm0,=', bug in '=' esil op with 128bit regs
  • Fix x86 XOR ESIL for 64bit registers
  • Fix #22029 ESIL for REP[Z] RET
  • Fix esil plugins by removing leftover and adding aeL command

fix

  • Fix mnemonic output in m680x plugin

fs

  • Expose ownership and permissions to the posix filesystem
  • Show error when unmounting not mounted mountponts

globals

  • Remove globals from bin.avr

graph

  • Fix graph title not current
  • Honor colors in graphviz output
  • Add graph.bb.maxwidth eval var and VV[] keys to adjust it
  • Use VisualMark in the interactive graphs
  • Honor pal.title color in the interactive graph
  • Add '%' key in the interactive graph to hud over function code
  • Fix segfault and wrong graph layout in aegv

hash

  • Add missing authors for the crypto plugins, update manpage

io

  • Add dyld shared cache rebase info v5
  • Fix potential double free in io_map_overlay and io_treebuf
  • Bring seek error back to UT64_MAX in dsc
  • Fix #22269 - RAP seek over 2GiB
  • Support whole address space for IO
  • Show error when user applies relocs on urified ios
  • Remove unused undo field in RIOPlugin
  • Fix r_io_v2p
  • Revert "Large null:// allocation causing negative pointer issues on iobank
  • Improve map tying support
  • Move dyld cache rebasing logic to io plugin
  • Add dsc:// io plugin for dyld cache
  • Adjust map boundaries on RIODesc resize
  • Assure map boundary sanity on creation
  • Faster frida://0 startup times
  • Add gprobe:// flash commands
  • Properly handle gprobe:// Print-messages
  • gprobe:// receiving is fixed, so checksums can be verified
  • Make sure that gprobe:// data is completely sent before receiving
  • Fix gprobe:// serial port setup, so no CR/LF conversion happens
  • Implement :j for ihex:// (json info)
  • Implement :i in ihex:// to generate a new ihex
  • Add system callback for the ihex:// plugin to get the written ranges
  • Fix infinite loop in io.ihex
  • Honor r2 -n with frida:// targets
  • Add x86-32 support to sysgdb://
  • Initial import of the sysgdb:// plugin
  • Implement r_io_bank_get_byname and the omnb= command
  • Implement the new cyclic:// plugin
  • om handles the '.' as an alias for the current fd
  • Implement "o=num|flag" to change current fd
  • Implement o** and om** to jsut get the flags
  • Fix io.seek bug in self://
  • Relax =+rap://ip/ (missing file) assert check
  • Fix type of enabled field in io cache
  • Refactor structure of metadata for io plugins
  • Fix memory leak with cleaning up qjs io plugins
  • Implement qjs bridge for r2frida via io->system
  • Add r_io_bank_get_region_at and r_io_get_region_at
  • Harden some makros
  • Add map overlay support to r_io_bank_write_to_submap_at
  • Add r_io_map_drain_overlay and r_io_drain_overlay
  • Some hardening for r_io_map_write_to_overlay
  • Deprecate RIORelocMap; Introduce RIOMap overlay
  • Add wc--* command to purge all cache layers
  • Redesigned IO cache with layers
  • Fix bug in io_treebuf plugin
  • Add r_io_{desc/fd}_system
  • Switch to the new io cache implementation, remove old code

io"

  • Revert "Large null:// allocation causing negative pointer issues on iobank

js

  • Add JSON output to /e
  • Honor cfg.json in axt and other a subcommands
  • Honor cfg.json.num in pj_n too
  • Upgrade r2papi to the latest 0.2.2 adding Process and Module objects
  • Only show fields and methods json objects if not empty
  • Improve Ldj and Lcj outputs

json

  • Add JSON output to /e
  • Honor cfg.json in axt and other a subcommands
  • Honor cfg.json.num in pj_n too
  • Only show fields and methods json objects if not empty
  • Improve Ldj and Lcj outputs

lang

  • To use r2pipe-ts we depend on nodejs, so ts scripts need node now
  • Implement r2pipe on the r2js lang plugin
  • Use the core api to run home scripts and handle more extensions
  • Fix nim and typescript plugins
  • Implement r2.callAt and speedup r2.call for the qjs
  • Fix js warnings when R2_DEBUG_NOPAPI is set
  • Expose the global 'ptr' function like in Frida
  • Update r2papi.ts to 0.1.2: add new apis
  • Add js example converting json zignatures into r2 scripts
  • Add r2.syscmd and r2.syscmds for lang.qjs
  • Support qjs.io.close callback
  • Add initial support for writing IO plugins in QJS
  • Refactor qjs code
  • Allow N > 5 qjs plugins
  • RLangPluginInit now returns bool

optimization

  • Slight code improvement for init_ehdr

panels

  • Add 'Full Version' entry in the help menu

perf

  • Inline sdb.hash improve performance in hash

port

  • Fix MSVC Arm support
  • Fix archos detection on AIX
  • Portability fixes
  • mangling/microsoft: Fix dollar in identifier
  • AIX configure support
  • Don't use /dev/stderr
  • Fix lock_init sym collision on AIX
  • Add AIX config support

print

  • Add colors and improve the pie chart rendering a bit
  • Add pf2 using util/format2.c as wip refactoring
  • Fix hexdump with half rows filled and pairs=false
  • Fix inter basic block goto loc in pdc
  • Implement afsv command to visualize function signature with given args
  • Implement pv1d vs pv1u
  • Reduce cache misses in JSON parsing apis
  • Implement pso in sync with /az to search strings constructed with code
  • Implement pvd command (pv2d, pv4d), like pv, but in decimal
  • Add support for 16 and 32bit pascal strings
  • Implement p8d command to print bytes in decimal
  • Implement psn command to print string until newline

r2pm

  • Fix r2pm on some windows (packages contain \r\n instead of \n
  • Make R2PM_PLUGDIR point to the system directory in global mode
  • Add support for R2PM_CONFLICT
  • Dont load r2 plugins when called from packaging
  • Add R2PM_LIBDIR env var
  • Fix update requirements to make startup faster
  • Make -U implicit when there's no dbdir cloned yet
  • Don't reinstall pkg dependencies when not doing clean installs if thay are already there
  • r2pm -t now tags tags/commits and it's now strict
  • R2PM_SUDO + SUDO just in case
  • Set library path for r2 prefix and r2pm prefix in r2pm -r
  • Deprecate the wordish arguments in r2pm

r2r

  • Load plugins when running extra tests
  • Add R2R_TIMEOUT env for r2r and use it from the CI
  • Add missing error code checks in chdir calls

rax2

  • Add RPrint.binFromStr and RStr.binstr2bin and RStr.binstr2str

refactor

  • Renaming r_num_get_float to r_num_get_double
  • Make clear that r_return* is a macro!
  • elf_init: Clean up the code a little bit
  • Use .inc.c in libr/core

reg

  • Implement 24bit regwrite support
  • Add =TR to reference the thread register in the register profile
  • Optimize r_reg_cond_from_string
  • Add GP and RA register alias names

sdb

  • Fix undefined behavior in swisstable impl

search

  • Add support for globbing flags for search.in
  • Honor search.badpages in RCore.analSearchXrefs
  • Add search.named option (disabled by default)
  • Improve syscall search results on x86 (/as)

shell

  • Support using the question mark in rlang plugin calls
  • Add base64 for CC (not only CCu)
  • Add "b=" command as an alias for "b "
  • Handle ^F and ^B in RCons.less
  • Handle -jv and make that logic generic across all tools
  • Make rahash2 -qc really quiet (report only via return code)
  • Support internal files in the tac command
  • Bring back the multiline macro support
  • Fix #22656 - Handle quoted pipes
  • Add scr.timeout covering the ^C blocks
  • Fix #22652 - Handle ^C in pdj
  • Improve help message for afl,?
  • Initial WIP implementation of pl
  • Fix #22594 - Handle long flags in r_getopt as an alias for help
  • Implement support for json and r2 output for %env
  • Fix #22588 - Support multiple redirections in the same line
  • Fix error and add missing help for r2 -qc '?*~abcd' --
  • afbt -> afb,
  • Refactor ie outside the subcommand loop
  • Move 'ic?' help into a separate listing
  • Add support for wide pascal strings
  • Fix dc derivatives causing unintended seek
  • Initial ic, ia refactor and make icc take lang as argument
  • Fix ?*> dumping to screen
  • Implement ~$$ for internal sort+uniq grep filter
  • Port iaj fixing some invalid json bugs
  • Fix iiqq confussion and start delooping the i subcommands
  • Add afn* command
  • 0x command also saves seek history
  • Verbose R2_ARGS for debugging purposes
  • pdua now takes a math arg, not just a number
  • Keep r2 short help under 80 columns
  • Implement sfp and sff commands to seek nearest function or flag
  • Fix popd warning when there's only 1 pushed folder
  • Fix #22344 - Fix invalid json in ax.j command
  • Hide the rasm2/rabin2/.. unrelated plugin loading errors
  • Add afcj as an alias for afcfj
  • Add help for arb?
  • Fix code instead of help message for the yank command
  • Add more emojis for ls -e
  • Fallback to 'o.' when running dpe without debugger
  • Implement iE, command to table-query exported symbols
  • Fix glitch iterating script files provided via -i
  • Honor bin.lang in the icc command
  • Recognize the 'yr' command as owned by r2yara
  • Show bools as bools and ints as ints in ej json output
  • Fix 'unknown subcommand' error in ?* .. aet?
  • Add im* subcommand and honor bin->mem callback
  • Add obi as an alias for i
  • Expand r2 -Vj output to include all plugins, thirdparty and other version info
  • Implement 'Lbj' to list bin plugins in json
  • Bring back the r2 -Lj, and fix -LLj
  • Add scr.prompt.code to display return code in the prompt
  • Add signed subcommand for the pv family
  • List analysis plugins with the 'a:' command
  • Implement missing Lb command
  • Fix |H and temporal scr.html
  • Add 'aet' +help, fix assert in 'r2 -d XXX' and RConfig.getB
  • Support 'e key.?' syntax as alternative to 'e?key.'
  • Fix ?vi [1:$$] to read 1 byte from current offset
  • Add ~<> cons filter to indent XML
  • Reference abc command in the afbc help message
  • abt->abp (path between bbs) and add the new abt for tracing tags
  • Fix some bugs in the ls command parsing
  • Fix 'ar=32' vs 'ar= 32' both are valid
  • Fix autocompletion for pfc.
  • Add file.anal times in ?T

shlr

  • Fix qjs MSVC support
  • sdb-sync
  • Improve quickjs portability

signatures

  • Fix #22132 - Add support for loading zignatures in multiple formats

test

  • Fix running arch/debug specific tests in r2r
  • Implement the NORUN directive for r2r
  • Some more tests for the COFF bigobj binary
  • Add 'F' in r2r to fix all tests, fix fgets usage
  • Fix mnemonic output in m680x plugin
  • Implement ENV directive for r2r
  • Implement they REPEAT directive for r2r
  • Use meson in the perf suite, add GHA scripts and 'make some'
  • Add memory log parser
  • Initial implementation of the benchmark suite
  • Fix cd test/db/cmd && r2r .
  • Document R2R_OFFLINE
  • Fix return code when running r2r against .c files
  • Accept .c files as argument to r2r

tests

  • Fix running arch/debug specific tests in r2r
  • Implement the NORUN directive for r2r
  • Add 'F' in r2r to fix all tests, fix fgets usage
  • Implement ENV directive for r2r
  • Implement they REPEAT directive for r2r
  • Use meson in the perf suite, add GHA scripts and 'make some'
  • Add memory log parser
  • Initial implementation of the benchmark suite
  • Fix cd test/db/cmd && r2r .
  • Document R2R_OFFLINE
  • Fix return code when running r2r against .c files
  • Accept .c files as argument to r2r

thread

  • Current cmd.depth depends on core, not on the global cons context now

tools

  • Fix #22698 - Implement rax2 -j flag for json output
  • Rename rax2 -l to rax2 -n
  • Rename rax2 -n/-N to rax2 -x/-c
  • Rename rax2 -x to rax2 -X
  • Support quiet json plugin listing in rahash2 via -qjL or -jjL
  • Implement rahash2 -Lj to list plugins in JSON
  • Fix rax2 -l behaviour
  • Implement R2_ARGS environment
  • Handle RARUN2_ARGS env var in rarun2
  • Swap -a and -A in rasign2

util

  • Handle URL safe base64 decoding
  • Implement the sub-beats computation in RTime.beats()
  • Improve RStr.rwx permission string parsing
  • Implement scansets support in RStr.scanf
  • Initial import of our custom and safe r_str_scanf
  • Fix diff command
  • Fix r_print_hexdump() when called with RPrint *=NULL
  • Fix bug in r_str_split_list
  • Implement RRange.toString()
  • Joyful RStringSplit.asVector()
  • Swiss htuu / htpu / htsu
  • Add last function to vec
  • Fix issue with creating vec of pointer type
  • Cleanup swisstable code
  • Add cwisstable headers + support headers
  • Add hacky implementation of r_graph_pdom_tree
  • Fix domtree graph
  • JSON is not happy with \x
  • Allow append in vec to deep copy
  • Rework vec macros to inline finalizer function
  • Implement small vec optimization
  • Refactor vec generate macro
  • Do not sort vec if empty
  • Fix memory leaks in diffing code
  • Add more vector algorithms (partition, uniq, eraseback, ..)
  • Add sort function RVec, const correctness
  • Add find_index function to RVec
  • Update find to take any value type for more general use
  • Add find function to Vec
  • Cosmetic patch
  • Add r_graph_dom_tree
  • Add new optimized vector implementation
  • RFile.path() returns NULL if not found
  • Get rid of the unused skyline data structure

visual

  • Fix #22706 - Honor dbg.follow in F7/F8
  • Follow r:SP in the stack panel
  • Fix #22640 - improve sidepanels in limited space
  • Show proper help in VT and support tab and body scroll
  • Fix vbl and add vbL for the old one
  • Handle [] keys in VT
  • Add cmd.vprompt2 to run a command after the visual prompt
  • Use pdr instead of pdf to show non-linear functions in Vv
  • Fix regression in visual hex cursor
  • Implement scrolling in current r2slide
  • Fix visual marks commands: fV* and fV-#
  • Unify the visual_find() code with graph and visual
  • Implement VV% for the plain V%
  • Integrate Cb with disasm asmq key hints
  • Improve usability of Vdr - show disasm while renaming function names
  • Make V/ update the highlights in realtime

vuln

  • Patch Escape Sequence Injection Bypass

write

  • Implement 'wao+' command and remove RCore.hackHelp()

zignatures

  • Add rasign2 -i to run a script before generating signatures
  • Mangled function signatures for za
  • Hide duplicated xrefs in zg
  • Fix missing zignature xrefs, resolving source function name instead of flag
  • Enumerate any kind of refs/xrefs not just call/code ones
radare2 - 5.8.8

Published by github-actions[bot] over 1 year ago

Release Notes

Version: 5.8.8
Previous: 5.8.6
Commits: 192
Contributors: 11

curl -Ls https://github.com/radareorg/radare2/releases/download/5.8.8/radare2-5.8.8.tar.xz | tar xJv
radare2-5.8.8/sys/install.sh

Highlights

Authors

Dennis Goodlett Dennis Goodlett Hertatijanto Hartono Luc Tielen Luc Tielen Murphy condret pancake pancake phix33 rgc

Changes

anal

  • Small improvement on tail call detection
  • Check for noret destinations in afbr listings
  • Consider zero pages as invalid code
  • Dont enable debug tracing from type propagation
  • Implement ahb-* missing command
  • Make macos/ios targets inherit types from darwin
  • Fix aod command for pickle arch

analysis

  • Small improvement on tail call detection
  • Check for noret destinations in afbr listings
  • Consider zero pages as invalid code
  • Dont enable debug tracing from type propagation
  • Implement ahb-* missing command

arch

  • Improve tricore.cs handling jumps/rets/movs/
  • Fix ESIL MIPS64 NOR instruction
  • Migrate java plugin
  • Migrate i8080 with full refactor
  • Fix max asm len in pickle
  • Fix cs4 build of the sh arch plugin
  • Honor endianness without messing with capstone initialization in ppc.cs
  • Remove global state in ppc_cs plugin
  • Migrate ppc_cs plugin
  • Update to the latest capstone for new sh and tricore
  • Remove global state in v850 plugin
  • Remove global state from loongarch dis
  • Remove globals/duplicate code in riscv plugin
  • Remove global state in lua5.3 plugin
  • Remove global state from 6502_cs plugin
  • Remove global state from xtensa plugin
  • Cleanup global state in riscv plugin
  • Remove thread local state from m68k_cs plugin
  • Remove global state in loongarch plugin
  • Refactor z80 plugin to not have global state
  • Migrate sparc_cs plugin
  • Add more call level registers for i4004
  • Dont abuse asm.bits in bin.pyc and honor asm.cpu
  • Add support for 4bit registers
  • Initial support for the Sharp SM5xx MCUs

asm

  • Improve adrp instruction assembler and add more tests

bin

  • Warn on unresolved symbols/relocs in ELF and better handle -1 addresses
  • Parse more CodeSignature fields for mach0
  • Parse CodeSignatureDirectory entries for mach0
  • Faster Css using the api instead of Cz with tmpseek
  • Use Css in ELF (instead of section.has_strings) to avoid flags
  • Apply section formats in a second iteration
  • Fix #21823 - tag static elfs as non libinjectables
  • Fix #19964 - show relro:no even if no dyn section is found
  • Add support for even more elf reloc types
  • Add support for more elf reloc types
  • Refactor elf get_import_addr checks
  • Fix #21715 - Add baddr to the class info from DEX
  • Add missing flags for the internal ELF symbol relocactions
  • Check for PT_LOAD segments before fully reading elf phdr
  • Iterate over vector i.s.o. list in elf entries
  • Speed up loading of elf relocs
  • Refactor even more parts of elf loader
  • Refactor more of elf loader
  • Refactor more elf loader code
  • Use main=-1 instead of 0 before finding the symbol in mach0
  • Handling ELF symbols with no name
  • Refactor more functions in elf loader
  • Refactorings for elf loader
  • Add RBinInfo.libinjprot field for mach0 at least
  • Infer asm.os from platform's LC_BUILD_VERSION
  • Improve performance when loading mach0 classes
  • Implement basic pdp11 binary parser and a bit better disasm
  • Add support for more ELF SPARC relocs
  • Implement ELF relocs for SPARC and MIPS and avoid duplicates

build

  • Update and improve r2docker as well as publish the new image into the hub
  • Add r2pm build-arg to the r2docker with r2frida,r2ghidra,r2dec packages
  • Install r2frida and use /usr as prefix for r2docker
  • Apply fixes from the Termux package and update acr
  • Add wasm to the default meson builds

ci

  • apt-get update before install in the syslibs job

cons

  • Faster ~? rcons filtering
  • Improve the twilight theme
  • Fix #21772 - Ensure RCons.raw after reading from user in ~/
  • Early return on RCons.flush() when nothing to do
  • Detect too large input strings in RCons.prompt
  • Fix RCons.readCharTimeout()
  • Remove globals from 2048
  • Remove global state in stiv
  • Fix ::pd and ::? glitch with (null) colors

core

  • Make fortune file selection random
  • Make all the RCoreCmdStr functions R_MUSTUSE its return
  • Refactor global state in vslides

crash

  • Fix UAF in 8051 analysis on fuzzed code
  • Fix out-of-memory allocation on a fuzzed plan9 binary
  • Fix oob write in dyldcache accel loading
  • Store the vector index instead of a weak pointer for the ELF
  • Prevent an oobread in the lua bin parser
  • Fix UAF read in the LUA bin parser
  • Fix UAF in RNumCalc

debug

  • Fix reading and parsing /proc/pid/maps from remote gdb on android
  • Fix #21813 - parsing reg profiles from android-gdbserver
  • Don't run dmh on macOS when not debugging
  • Fix null deref in get_base_from_maps
  • Add initial debug heap support for macOS
  • Initial import of the rv32ima debug plugin

disasm

  • Implement asm.cmt.token to choose the comment prefix token
  • Fix '*' cursor mark on some addresses
  • Implement hint color for nicer disasm comments
  • Implement asm.offset.focus to show addrs ofs interest
  • Add ahi36 and asm.offset.base36=true
  • Implement asm.bytes.asbits to display instruction bits in binary

egg

  • Initial support for arm64 eggs

esil

  • Fix null derefs and memleaks in {esil,debug}traces
  • Improvements in the visual esil debugger and documentation

graph

  • Set terminal in raw mode before entering visual graph mode

io

  • Remove meaningless optimization leftover in io.cache
  • Fix and prevent null assert on RIODesc fixing zip0://
  • Fix hypothetical arbitrary code execution vuln in r_io

lang

  • Implement RLangPlugin.init for Go,Rust,Typescript and Zig
  • Make RLangPlugin.init() actually define if can be instantiated
  • Fix RCons.noflush issue when using '-i foo.c'
  • Improve r2js module loading, honoring relatve and absolute paths
  • Update r2papi.ts 0.1.1
  • Support relative module resolution in qjs
  • Fix alias marker parser in the qjs loader
  • Handle .r2.js file extension

main

  • Move .inc files to .inc.c for editor support
  • Remove global state and fix memory leak in rabin2

print

  • Fix invalid json on 'pfj x[1]z'
  • Fix assert on null deref with the 'pf E' command
  • Let 'pxr' follow tagged pointers

qjs

  • Handle multiple ../ imports

r2pm

  • Implement r2pm -t for timeless packages
  • Fix r2pm when launching it from a deleted working directory

search

  • Implement Css (section string scan) and Csz (same as Cz)
  • String search no longer requires a keyword

shell

  • Show log.level=? help message
  • Merge all R*2_NOPLUGINS as R2_NOPLUGINS
  • Ship and use our own manpage reader
  • Implement man command for launching "man pages"
  • Autocomplete -i command
  • Fix help message for idp?
  • Show capstone version in r2 -v
  • Show build system used (meson|make) in r2 -v
  • r2pm search is case insensitive
  • Fix the r2p tool and add a test
  • Fix help for ?:? and show its links with =!

shlr

  • Fix undefined behavior when reading java uints

tests

  • Implement r2r -g to run the tests associated with the files changed

tools

  • Implement rax2 -rS and update manpage

util

  • Add support for base36 numbers
  • Remove global state in time.c

visual

  • Visual ESIL debugger improvements
  • Improve and simplify Vv ascii art, and make it available from panels
  • Call more setraw() to fix a recent visual regression
  • Improve interactive config and color editors

windows

  • Fix stty windows warning
radare2 - 5.8.6

Published by github-actions[bot] over 1 year ago

Release Notes

Version: 5.8.6
Previous: 5.8.4
Commits: 295
Contributors: 23

Highlights

Authors

AlexanderKucherov CorruptedVor Francesco Tamagni Hripsimee Ildar Ildar Sadykov Leopold Luc Tielen Luc Tielen Mewt R MewtR R Sylvain Pelissier Yedidyah Bar David Yuvraj Saxena Zhipeng Xue echel0n pancake pancake rgc semgrep.dev on behalf of @trufae theNKCode tsunekoh

Changes

anal

  • Handle 'int 0x20' as eob on x86-16 (assume DOS)
  • Fix null deref in arm32 calling conventions via 'aaef'
  • Handle more noreturn functions
  • RAnal.cur can be now set to NULL
  • Fix aae logic for mem read xrefs
  • Fix #21576 - Function stack frame size in case of FP register in a Thumb's PUSH
  • Improved instruction mask using the new aobm and anal.mask
  • Support big endian value search analysis (aav)
  • Fix null deref in signatures when using corrupted analysis info
  • Hide meaningless AnalOp fields in ao/aoj

analysis

  • Handle 'int 0x20' as eob on x86-16 (assume DOS)
  • Fix null deref in arm32 calling conventions via 'aaef'
  • Handle more noreturn functions

api

  • Deprecate r_str_cmp()
  • Rename R_CONST to R_TAG and add unit tests for them

arch

  • Migrate tms320 plugin
  • Cleanup global state in mips gnu plugin
  • Migrate mips gnu plugin
  • Migrate chip8
  • Handle the arch.decode default size and mnemonic on failure
  • Migrate xcore plugin
  • Migrate m68k_cs plugin
  • Migrate 6502_cs plugin
  • Migrate m68k_cs plugin
  • Refactor global state in loongarch plugin
  • Migrate loongarch plugin
  • Handle RArch.getRegProfile() from RAnal.setRegProfile
  • Fix the wrong plugin used after failed arch.encoding
  • Rename arch.arm plugin 'arch.arm.nz'
  • Use plugin name instead of arch name to fallback
  • Propagate endian settings
  • Honor RArch.setBits via RAnal.setBits
  • Support fatmachos with slices using arch plugins
  • Improve automatch plugin with encoder support
  • Resolve ${arch}.nz as fallback when finding an assembler peer
  • Remove '#' sign before immediates in the snes9x disassembler
  • Fix 1 byte oobread in the wasm disassembler
  • Migrate s390.cs and fix the abidiff suppression rules
  • Migrate the ppc.gnu plugin
  • Migrate m68k_gnu plugin
  • Improve the riscv analysis
    • Fix esil emulation for riscv's jr/li/mv
  • Migrate S390 GNU plugin
  • Dont use strtok in the riscv plugin
  • Migrate the hppa.gnu
  • Migrate the sparc.gnu plugin
  • Improve brainfuck VM using ESIL and arch restrictions
  • Migrate the brainfuck
  • Remove unneeded line in meson build after plugin migration
  • Migrate h8300 plugin
  • Migrate the pyc plugin
  • Migrate msp430 plugin
  • Fix archinfo for v810
  • Add wip archinfo and wip regs and make mcs96 an arch plugin
  • Migrate ebc plugin
  • Migrate lh5801 plugin + add missing regprofile
  • Migrate the pdp11 plugin
  • Migrate arc
  • Expose the value of arm's ADD in op.val
  • Implement wao nop for riscv
  • Migrate arm.v35

asm

  • Implement 'call [rip+X]' for x86.nz and add tests
  • Fix UB in signed type shift left on arm64 assembler
  • Fix tb instruction for ARM assembler

bin

  • Fix double free in elf loader
  • Fix memory leak in mach0 relocs
  • Fix memory leak in xtr fatmach0 metadata
  • Fix memory leak in elf loader
  • Fix compile warnings for elf loader
  • Improve handling of nindirectsyms for corrupt macho binaries
  • Fix crash due to int overflow loading mach0
  • Refactor / improve loading of ELF symbols + imports
  • Shorten path on invalid fatmachos fixing a recent null precondition check
  • Better use of preconditions and r_log in fatmach0
  • Refactor loading of elf fields
  • Refactor loading of elf libs
  • Refactor elf loading of relocs
  • Refactor even more loading of elf sections
  • Refactor elf loading of sections
  • Refactor mach0 loading of relocs
  • Silent warning on empty dwarf blocks
  • Unused var had a meaning in the xnu kernelcache parser
  • Refactor loading of mach0 sections
  • Conditionally parse mach0 start symbols
  • Fix bug wrongly casting dyld/kernelcache to mach0
  • Remove code, port dyld + kernel cache to new API
  • Fix UAF in the p9 parser
  • Refactor loading of mach0 symbols
  • Refactor loading of mach0 libraries
  • Implement review remarks for mach0 import parsing
  • Refactor mach0 loading of imports
  • Refactor string comparisons in macho parser
  • Add demangled column in the symbol listing
  • Add LC_AOT_METADATA parsing support for mach0
  • Reuse recusion in c++ demangling with lower bounds
  • Fix some oobread bugs in the ELF parser
  • Initial steps to support column details in dbginfo
  • Optimize dwarf parser reducing getsection for strp
  • Remove global in the DWARF parser
  • More ELF cleanups on the symbol allocation logic
  • Minor cleanup in the ELF parser
  • Fix Mach-O symbol parsing in dyldcache
  • Blind ELF fixes
  • ZeroPad addresses in iSq and iSSq

build

  • Fix some -fvisibility=hidden issues
  • Fix meson -Dnogpl=true compilation
  • Update to the latest wasi-sdk-20
  • Fix R_SYS_ARCH name for native s390x
  • Fix r2r build when doing static linking
  • Fix SocketNotificationRetrieveEvents already defined issue
  • Make sys/sanitize be aware of the memory sanitize check
  • Fix #21375 also for linux-arm-64.sdb syscalls with meson
  • getcpu is reserved by linux's sched.h
  • meson support for smallz4, relates to #19849
  • Use Smallz4 instead of liblz4 which is optional

ci

  • Add crosscompiled arm64 debian builds
  • Add arm64, riscv64 and s390x qemu builds
  • Move the tarball distribution code into dist/tarball

cons

  • Fix #17194 - Fix 'e scr.pager=..' to set the internal pager
  • Add greepy color theme (green + pink + white) glitch-style
  • Add support for ""ec in theme files

core

  • Fixes the bfbug losing arch setup after o malloc

crash

  • Fix double-free in r2pm when no python bin in path
  • Fix oobread in /v
  • Fix 2byte oobread in /a subcommands
  • Fix null deref on null :: command via fuzzing
  • Fix null deref on fuzzed thready command execution
  • Fix null deref in unaligned arm thumb instruction via /ad
  • Fix oom bugs in the XTAC parser
  • Fix large memory allocations on corrupted LE binaries
  • Fix infinite loop in the GNU C++ demangler
  • Track recursivity calls in the HFS parser to prevent stack exhaution
  • Fix oobread bug in asn1/pkcs7 parser
  • Fix uninitialized field accesses on corrupted DEX
  • Fix UB with uninitialized read in dwarf parser
  • Fix infinite loading time in minidump file
  • Fix unaligned pointer access in sha256
  • Fix division by zero in the HFS parser
  • Fix oobread segfault in the grub's HFS parser
  • Fix ininite loop in the ext2 grub code (DDoS)
  • Fix 8 byte oobread on pkcs7 parser
  • Fix UAF in the dwarf parser
  • Fix non-null-terminated string in dwarf
  • Fix null deref in the dyldcache
  • Fix oobread in swift field parser
  • Fix 4 byte oobread in objc analysis on 32bit binaries
  • Fix oobread in dwarf parser
  • Fix oobread crash in the visual bit pixel editor
  • Another dwarf null deref
  • Fix oobread in the xcoff64 parser
  • Fix an 1byte oobread in the pyc plugin
  • Avoid large allocation in the elf parser
  • Check for null pointers in uleb and dwarf
  • Fix oobread in omu command
  • Fix large allocation bug in the elf version parser
  • Fix null derefs in the dwarf parser
  • Fix oobread in the msvc demangler

dalvik

  • Fix two UB bugs doing left-shift on signed type

debug

  • Warn the user when using dd/dm/di without a child
  • Fix 64bit column register listing glitch
  • Allow 'dcu main' even if there's a 'db main' already set
  • Implement dtj command to list debug traces in JSON format
  • Fix null deref in dtd when the process is dead
  • Fix status register in the regprofile for darwin-arm64
  • Dont display the cpu flags if the arch doesn't support them
  • Adjust bpcount and use typedefs instead of structs in bps
  • Define RISCV breakpoint instructions
  • Native debugger for OpenBSD and NetBSD on arm64
  • Add cmd.step config var to run a command after every debugger step
  • Partial fixes for better register profile and arch switching handling

diff

  • Initial implementation of the 'cgfa' command

disasm

  • Do not draw ref lines of invalid branches
  • Fix asm.pseudo for arm64's stur instruction
  • Implement pseudo for riscv's 'auipc' instruction
  • Fix '\xff' strings issue in bsd-rv64/arm64

dwarf

  • Implement parsing optimization for dwarf5
  • Store column information in the addr2line database

esil

  • Fix UB when shifting value too far left
  • Fix bounds checks for ESIL and reg values
  • Implement 128bit regstore esil emulation
  • Dont emulate null instruction types, causing invalid analysis
  • Fix #21564 - 128bit support via [16] and RReg for arm64
  • Implement 'aoem' command to show memory refs via emulation
  • Move the esil #! r2 command as an op instead of parse

fs

  • Add test and fix oobread in the hfs parser

graph

  • Improve color support in graphviz, still wip

hash

  • Add elf hash planned for r2-5.9.0

io

  • Fix #21705 - check r_io_plugin_add return value and freed unused allocated memory
  • Implement zip0:// uri handler
  • Large null:// allocation causing negative pointer issues on iobank
  • Support wcu command for new io cache
  • Implement wcf command for new io cache
  • Fix segmentation fault when listing cache entries before init
  • Fix usage of cache in pde command
  • Prevent multiple initializations of cache
  • Fix cloning of cache
  • Retain order of writes to cache during clone
  • Fix list bug in new cache
    • Change written flag to a bool in new cache
  • Fix memcpy bug in the new cache

json

  • Fix wrong json key string (refs to name) in anal_axg

lang

  • Better typescript entrypoint support and fake r2pipe
  • Support running typescript files without r2's Gmain
  • frida-compile bundles can contain anything, we only interpret/load the .js ones

panels

  • Support JK scrolling (+-5 lines) in modals

performance

  • Branch prediction optimizations (3/3)
  • Branch prediction optimizations (2/3)
  • Branch prediction optimizations (1/3)

print

  • Improve RTable trailing spaces
  • Fix trailing spaces in table
  • Implement 'piE' command, like 'pie' but for bytes instead of ops

r2pm

  • Move and update r2docker into dist/docker
    • Update to Debian:11, add README for r2docker
  • Prefix tar flags with a dash for portability reasons

reg

  • Fix bounds checks for ESIL and reg values
  • Add support for LE/BE 24 bit registers
  • Fix RReg.setValue on 128bit registers

search

  • Faster aap on large empty maps
  • Add search.badpage to customize badpage scan

shell

  • Better LA/Ll listings
  • Implement the -L command
  • Autocomplete -e inside r2
  • Sync output from rax2 -r and r2's ? val
  • Implement jq command as an alias for !jq
  • Add build optimization and precondition check levels in -v
  • Reuse RStr.version() from r2's '?V'/'-v'
  • Show '(asan)' in r2 -v when runnin sanitized builds
  • Implement 'uname -a' flag
  • Add -v, -vj and the 'r2.' command as a short for js oneliners
  • Add ?ee and ?ei command for stderr echos
  • Always use the return value of RTable.query()
  • Dont list symbols when using is,:help
  • Add rasm2 -N to mimmic the r2 -N flag
  • Use r2 -NN from r2r and extend the env for rasm2/rabin2
  • Use more R_LOG instead of eprintfs in some commands
  • Fix null deref in dte
  • Add -V command as an alias for ?V

signatures

  • Add experimental zign.mangled to not use demmangled symbol names
  • Use "" command syntax for the z* output
  • Filter zignature names before validation

util

  • Fix UAF in RStr.replaceIcase() spotted by coverity

visual

  • Experimental graph debugger layout
  • Fix #21658 - Fix zoom mode glitch in panels
  • Only run 'diq' in visual when cfg.debug

webui

  • Add r2bolt webui PoC

write

  • Implement wao recj for arm64
radare2 - 5.8.4

Published by github-actions[bot] over 1 year ago

Release Notes

Version: 5.8.4
Previous: 5.8.2
Commits: 277
Contributors: 29

Highlights

Authors

Dennis Goodlett Dennis Goodlett Francesco Tamagni Jose Antonio Romero Jules Maselbas Jules Maselbas Koh M. Nakagawa Lazula Mewt R MewtR Mohamed Lemine Ould El-Hadj Murphy Murphy Murphy Pau Rodriguez-Estivill Richard Patel Siguza Sylvain Pelissier Sören Tempel Teutates Yaroslav Yuvraj Saxena Zhipeng Xue condret icy17 ksen-lin meme pancake

Changes

anal

  • Support function arguments without a name
  • Optimize RCore.analOp() lowers aa from 1m23 to 1m19
  • Make aab even faster (39s -> 32s)
  • Fix #21340 - fix list of callrefs in afij
  • Add some recently seen x86-32 preludes
  • New 'aarr' command to reanalize all function refs
  • Add support for DUP in esil_dfg
  • Add fake =SN for gb to fix the missing =SN warning
  • Implement esil-dfg support for POP
  • Initial implementation of the aob/aobj commands
  • Do not override anal.calls user settings in aaa
  • Use a visited check to speedup recursive reference analysis
  • Invalid call from warning is now a debug message
  • Handle missing LDURH on arm.v35
  • Add refs column in aflt listing and fix refs&xrefs counting apis
  • Remove duplicated code adding a string reference during analysis
  • Set refptr for Xtensa l32r opcode for better disassembly output

api

  • Introduce the new R_CONST macros

arch

  • Migrate cr16
  • Migrate cris from anal to
  • Update to the latest capstone for SH and arm64 improvements
  • Move the riscv.cs plugin
  • Improve v850 esil support
  • Move the pic
  • Move the anal.tricore
  • Improve the NIOS arch plugin with regs, archinfo and invalid
  • Move and improve the anal.alpha
  • Move Vax plugin from anal
  • Add Inferno Dis VM
  • Move the bpf plugins
  • Move anal.lm32
  • Move the z80 plugin
  • Add support for all-bits-set registers needed for LANAI
  • Move the lanai plugin
  • Fix the type used for the fini callback in r_arch_plugin_t
  • Move the mcs96 plugin
  • Fix #21325 - Do not assert when instantiating empty plugins
  • Convert kvx analysis plugin into arch
  • Add esil support for satadd, satadd_imm5, satsub and satsubr v850 instruction
  • Handle wasm control flow errors better
  • Wasm accept br out of if/else
  • Refactor wasm into arch
  • Move xtensa into the
  • Initial re-import of the LUA bin parser and disassembler from extras
  • Move the ws plugin and annotate the plans for 5.9
  • Move or1k into the arch
  • Add evm.sdb.txt with description
  • Add esil support for mulh reg, reg v850 instruction
  • Move anal.evm.cs into arch.evm
  • Rename evm.cs to evm
  • Add esil support for v850 stb, sth and stw instruction
  • Add esil support for v850 ldb, ldh and ldw instruction

asm

  • Add more conditional branch instructions for the arm64 assembler
  • Implement conditional branch instruction for the arm64 assembler
  • Improve armass64 for tbz/tbnz to handle relative instructions

bin

  • Report errors when failing to patch relocs in the internal buffer
  • Implement qword to better display patched relocs in macho
  • Fix #21451 - Support IDREF in cf_dict parsing
  • Apply macho relocs on the swizzled buffer if bin.cache is not set
  • Find libswiftCore and libswiftDemangle in linux paths too
  • Fix wrong check in dyldcache rebase v2 logic
  • Add new fuzz.bin2 program and fix integer overflow for XTAC
  • Prevent an oom in the macho when corrupted fields are involved
  • Fix infinite loop in the xtac parser
  • Fix oom in the LE parser
  • Fix ELF parser hang on malformed .plt.got header
  • Fix sign warnings in the elf parser spotted by msvc
  • Fix absolute path resolution for dwarf source files
  • Remove globals from the MSVC demangler
  • Blindfix for some msvc demangling characters
  • Fix Dis fuzz failure
  • Add missing S_INIT_FUNC_OFFSETS definition for macho
  • Add Inferno Dis VM
  • Improve checks parsing dyldcache headers
  • Fix missing types and paddr/vaddr issue in ihj
  • Fix double free in class method handling
  • Update dyld shared cache parser
  • Better header checks for the MSX plugin
  • Some fixes for the bin.msx plugin
  • Add support for the XTAC file format
  • Add XCOFF64 support
  • Refix another null deref after 586af3fc6e1
  • Improve code quality in some RBin plugins (1/n)
  • Fix null deref when no signature is found
  • Minor improvements to elf parse
  • Fix memory leak when parsing DW_FORM_line_strp
  • Use correct compilation directory for binaries that use DWARF before version 5
  • Fix heap overflow in the swift parser

build

  • Add --with-new-io-cache configure and meson flags
  • Use acr-2.1.0 new PKGCFG_DO to speedup pkg-config file generation
  • Fix libdir and includedir in the pkgconfig templates with latest acr
  • Fix #21375 - Generate .sdb files properly for syscalls with meson
  • Fix #21332 - Add missing use_sys_openssl option for meson
  • Fix #21287 - compilation with .c in path
  • Clear SSL (C|LD)FLAGS if not willing to use SSL at all
  • Fix 'no rule to make libcapstone.a' error
  • Fix meson build with x86 option arch
  • Check for linux/can.h at configure time
  • meson: install rasign2.1 man page too
  • Fixes for the offline tarball generation

ci

  • Abidiff shouldnt check internal structs like the capstone ones
  • Remove broken github counters and introduce the sys/counters.sh
  • Add pkg-config for macos-test
  • Add pkg-config for macOS via brew
  • Upgrade to abidiff 2.2
  • Remove LGTM, it's no longer available

cleanup

  • Remove all char* casts in free

cons

  • Fix scr.html when using bold attribute in scr.color=1

core

  • Support R2_PREFIX env var to override compile-time PREFIX
  • Use single quote instead of "" for RCore.call()
  • Fix command injection bugs in patch scripts

crash

  • Fix oob in we command
  • Fix null deref in omr with no maps
  • Fix null deref in fuzzed omt command
  • Fix uaf in r_asm_op_get_hex
  • Fix UAF in y-;q and assert with 0 size functions
  • Fix uaf caused by RRegItem.free instead of .unref
  • Fix oom in the nso parser
  • Fix uaf in xtac and check for more vector allocation failures
  • Fix unchecked vector allocation in wasm
  • Fix oom spotted in the wasm bin parser and other stylish things
  • Fix segfault when saving a project with no write perms in home
  • Fix oobread in dwarf5 parser
  • Fix #21363 - null deref in the wasm disassembler
  • Fix use after free in RStr.replaceAll()
  • Fix null deref in aeg command

debug

  • Fix setting registers in linux/rv64
  • Fix retrieving registers on Linux/RV64
  • Fix #21329 - do not include the privileged registers from the gdb profile

disasm

  • Dont try to resolve strings on call destinations
  • Fix instruction colors when '0' is at the end
  • Deprecate the asm.minicols config variable
  • Truncate invalid strings in disasm

dwarf

  • Add CLLf command as an alias for 'list' and fix @@i

esil

  • Avoid >64 bit shift left on 128bit registers
  • Implement esil for arm64's brk and clarify TRAP usage
  • Simplify the ESIL for x86 shift instruction
  • Better nullchk and reduce dereferences in esil

globals

  • Remove 2 globals from arch.or1k
  • Remove 1 global from arch.snes

io

  • Initial implementation of the io-write-cache command

json

  • iCj always renders valid json, fixing a warning in iaito

lang

  • Run the pending jobs in the qjs repl and expose r2pipe module
  • Add fake 'r2papi' module for r2frida-compile scripts
  • Implement ESM module loader for the QJS runtime
  • Initial support for r_arch plugins via qjs
  • Add support for NIM scripting on top of the QJS engine

magic

  • Add Inferno Dis

panels

  • Move Stack into Debug menu, and add Register columns output

print

  • Improve the pseudo-decompilation output for !x86 and inlined gotos
  • Fix duplicated source lines in CLLf output
  • Honor hex.offset + hex.header
  • Initial support for custom bitmap images

projects

  • Add Pz[ie] command to import/export project in zip format

r2pm

  • Fix support for builddir-less packages
  • mkdir home plugin directory
  • Add R2PM_DIR directive needed for tarball/zip packages
  • mkdir(R2PM_BINDIR) before pkg install, so packages dont have to mkdir

search

  • Magic depth starts at 0 now
  • Remove global magic depth
  • Honor esil.* options in RAnal.search
  • Improve syscall detection in /as
  • Fix #21339 - Fix syscall search when executed twice

shell

  • Fix help message when write fails (omp -> omf)
  • Fix #21380 - Refer to "? in /R for escaping chars
  • Correctly align r_core_cmd_help_match output in inexact mode
  • Update help message for ""? for ""@""
  • Drastically reduce eUsage counter
  • Fix signed integer treated as unsigned in the wX command
  • Fix oobread in load_zign
  • Fix assert in wd command
  • Add ?Tj and get rid of all the eprintf("Usage in cmd.egg
  • Fix #21412 - Implement segment iterator
  • Add help message and improve the ahs command
  • Add support for calling commands with a temporal seek
  • Implement the 'wget' command to download files from http://
  • Autocomplete file argument in wff command

test

  • Load the bin.types again from r2r

tools

  • Fix #21333 - Update radiff2 manpage, add mermaid mode

types

  • Add some basic swift and objc function signatures

util

  • Return NULL on miss in r_file_path
  • Move filter_shell and filter_quoted_shell into RName

visual

  • Honor stack.size in the Stack panel
  • Compute the opcode operand index in the bit editor
  • Handle 'R' key to refresh the slides from disk
radare2 - 5.8.2 - codename "Jonesy"

Published by github-actions[bot] over 1 year ago

Release Notes

Version: 5.8.2
Previous: 5.8.0
Commits: 172
Contributors: 17

Highlights

Authors

0x8ff Apkunpacker Dennis Goodlett Fraser Price Jules Maselbas MewtR Mohamed Lemine Ould El-Hadj Ole André Vadla Ravnås Richard Patel Sylvain Pelissier Vitaly Bogdanov condret kyufie meme nmeum pancake pancake

Changes

anal

  • Honor the micromips codealign, add missing =SN and cc
  • Set indirect code refs from load instructions
  • Make r_anal_optype_{to,from}_string use the same optypes array
  • Rework of the function merging
  • Add Plan 9 calling conventions
  • Basic blocks are not modified if not initialized
  • Add test for gb srcs/dsts json and valtype
  • Fix multiple typos in ios-syscalls.txt

analysis

  • Make r_anal_optype_{to,from}_string use the same optypes array
  • Rework of the function merging

api

  • Make r_str_casecmp() null-proof to fix weird crash on windows
  • Implement RCore.cmdCallAt() + minor improve internal cmd calls
  • Fix RFile.path() when $PATH contains no colon

arch

  • Add esil support for v850 ei and di instructions
  • Add esil support for v850 reti instruction
  • Add esil support for v850 stsr instruction
  • Add esil support for v850 ldsr instruction
  • Blindfix for a glitch in the v850 disassembler
  • Simplify esil generation of v850 bcond instructions
  • Add esil support for v850 setf instruction
  • Improve v850 esil support and fix some related bugs
  • Fix asm.cpu=? when using arch plugins
  • Fix rasm2 -a mips{.gnu} -b16 -e -c micro -d '4fe5'
  • Move mcore into the arch
  • Support micromips on both gnu and capstone plugins
  • Move anal.propeller
  • Add micromips cpu for the mips.gnu plugin
  • Move nios2 away from anal
  • Register RArch plugins to be loaded dynamically

asm

  • Implement .extern directive in rasm2, fix other directives
  • Fix ARM assembler for blt, ble, cmn, tst, and teq instructions

bin

  • Fix null deref assert in the TE parser
  • Fix unnecessary memory exhaustion in the elf parser
  • Fix allocation crash in bin.symbols
  • Support elf-micromips auto detection
  • DWARF5 line header parsing
  • License Plan 9 code as MIT
  • Add Plan 9 line number information
  • Fix load address of arm64 kernel

build

  • Do not depend on strcasecmp in libzip, build fail on Centos7
  • Upgrade v35arm64 to fix non-c99 compilation
  • Update to the latest tinycc in the CI
  • Remove the need for ios-include.tar.gz
  • Use an authorized API call for the abi job to increase the rate limit
  • Remove condition on 'linux-static' job
  • Integrate ABI diffing into CI scripts
  • Add --with-ssl-crypto, rename --with-openssl to --with-ssl
  • meson: Install various missing files
  • Use fakeroot if available when packaging for debian

build,

  • Integrate ABI diffing into CI scripts

ci

  • Upgrade CodeQL actions from v1 to v2
  • Update the SPEC file and build RPM packages in the CI
    • Update the SPEC file and build RPM packages in the CI

crash

  • Fix infinite loop and null derefs when calling pd from pd in Cr
  • Blindfix with a hack and a workaround to fix an UAF in Cr
  • Fix an UAF in the visual bit editor
  • Fix null deref segfault in Vd1
  • Fix UAF in oc
  • Fix null deref in io.bank

debug

  • Fix #8992 - Apply command line settings before initializing debug plugin
  • Add required A0 register into x86 register profile provided by GDB
  • Use proper type for the XMM register inside profile recieved
  • Implement dpt. command to print the current selected process

disasm

  • Optimize RAnal.kind() as its called many times with a large buffer from pd
  • Bring back and improve the Cr command

doc

  • Reference abidiff's ci usage in doc/abi.md
  • Reference doc/abi in DEVELOPERS

esil

  • Fix emulation of the arm64 tst instruction

fs

  • Improve json output for mlj - mountpoint type and delta

globals

  • Remove global in util/lib and just use RLogLevel

indent

  • Balance spacings in braces

js

  • Add experimental r2.cmd0 and r2.call0 for qjs
  • Enable stack overflow check when recursive calls
  • Improve error messages in the qjs repl
  • Rename qjs's dir function to dump
  • Support loading/unloading multiple QJS plugins
  • Update typescript compiler and move r2plugin into r2
  • Fix undefined behaviour in quickjs when casting double to int64
  • Fix #21205 - Missing object definition for aoj
  • Fix undefined behaviour in double->int cast
  • Extra checks and enforce the singleton core plugin
  • Improve typescript entrypoint logic detection
  • Initial support for javascript core plugins
  • Upgrade r2papi-ts from 0.0.4 to 0.0.10
  • Support typescript Main namespace and pass --allowJs

json

  • Fix #21205 - Missing object definition for aoj

lang

  • Initial implementation of lang.s assembly scripting
  • R_TH_LOCAL two globals in RLang.c
  • Reestructure lib dependencies, add lang.asm plugin

perf

  • Massage the bottleneck that was making r2dec super slow
  • Some more likely hints in RCore.cmd from valgrind

print

  • Fix pA and pA? (/A was moved into /a)
  • Implement pvp and wvp to print and write pointers
  • Fix fortune message for #md5 and add ph: variant of "ph "

qjs

  • Add QJS_NOABORT option to avoid aborts

r2pm

  • Improvements for r2pm when getcwd is null
  • Add R2PM_NEEDS and auto-install system build deps if possible
  • Fix git check before cloning the repo
  • Fix R2PM_DEPS first time issue
  • Report better errors on first r2pm setup
  • Initial experimental support for portable qjs packages

search

  • Implement tire algorithm in

shell

  • Fix assert in ph
  • Initial skeleton integration with GNU/Poke
  • Fix profiling RCore.cmdCall() via ?t""
  • Add help message for the quote command "?
  • Implement LAj and LAq commands to list arch plugins
  • Implement uname -h, -m, -b, -j ...
  • Handle unknown subcommands for t
  • pdrj shouldnt be modifying the current seek
  • Add -j command as an alias for js:
  • Add the ability to run qjs scripts with r2 -je

slides:xa

  • Improve r2slides with title, colors and 2 column mode

test

  • Update libfuzz build instructions
  • Add the dwarf fuzzer program
  • Add some test for ARM assembler

tools

  • Add R2_DEBUG_NOPAPI env var
  • Show error when passing un-even hexpair to rasm2

visual

  • Fix (null) regression in visual bit editor's disasm
  • Handle JK in bit editor to move 8 bytes fwd/backward

vuln

  • Fix ANSI Escape Sequence Injection vulns via DWARF
radare2 - 5.8.0

Published by github-actions[bot] almost 2 years ago

Release Notes

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

Highlights

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
radare2 - 5.7.8 - codename "boredom"

Published by github-actions[bot] about 2 years ago

Release Notes

Version: 5.7.8
Previous: 5.7.6
Commits: 307
Contributors: 17

Highlights

Authors

Axel Iota Ben L Denis Ovsienko Dennis Goodlett Dennis Goodlett Francesco Tamagni Nikhil Saxena Paul B Mahol Richard Patel Seunghwan Chun Sylvain Pelissier adwait1-g condret erfur pancake pancake rax64

Changes

anal

  • Define =SN for the sparc register profile and improve warning message
  • Include bb instruction addresses in an array for abj
  • Fix more tests to run outside x86-64
  • Implement aflx and aflx* commands to re-analyze function callers
  • Implement aflm. and aflm? to print the makefile-style function call summary
  • Fix bug in esil_cfg
  • Implement r_anal_esil_dfg_reg_is_const
  • Fix quotes in pickle assembly
  • Improve aab results by using section size
  • Refactor esil new in cmd_anal
  • Refactor ar set command to static func
  • Fix '/gg' output
  • Fix duplicate aarch64 syscalls
  • Fix leak in 'aex' command.
  • Fix compilation warning
  • Silence compilation warning in show_reg_args()
  • Fix leak in r_core_esil_step()
  • Check list allocation return value
  • Fix leak of RAnalBlock in false return code path
  • Check that vector length is not 0
  • Fix leak of list when using asj command
  • Fix leaks caused by not calling r_anal_op_fini()
  • Add pickle descriptions

analysis

  • Define =SN for the sparc register profile and improve warning message
  • Include bb instruction addresses in an array for abj
  • Implement aflx and aflx* commands to re-analyze function callers
  • Fix duplicate aarch64 syscalls

arch

  • Support assembler plugin resolution by aproximated name
  • Rename asm.arm_cs to asm.arm
  • Merge asm.sparc_gnu into anal.sparc_gnu
  • Lowercase all pickle instructions
  • Upgrade to the latest capstone-next for ppc purposes

asm

  • Fix integer overflow in match_c_lui()

bin

  • Fix boundary check in mach0 fixups reconstruction
  • Fix two oobreads in coresymbolication and dyldcache
  • Update coresymbolication cache parser
  • Add table's :help and ignore commas in i subcommand parsing
  • Fix incorrect relocs=false in macho
  • Fix regressions affecting dyldcache parsing
  • Fix #20624 - Implement ic, command to query klass information
  • Fix oba $$ in frida://0 global
  • Add support for REL file format plugin
  • Support powerpc coffs
  • Handle RABIN2_MACHO_SKIPFIXUPS env var in the macho parser
  • Add wasm globals to symbols
  • Fix leak in bin_sections

build

  • if != ifdef on msvc
  • Add lint for C++ include support

ci

  • Fix #20655 - Zip the blob for windows

config

  • Fix prj.alwasyprompt description text

cons

  • Fix a couple of coverities in canvas and dietline
  • Fix 'num' display with gentoo theme on 256 term
  • Add to all themes 'ecd' at start
  • Remove duplicate entry for basic theme
  • Fix background color for dark theme
  • Simplify ansi color mapping
  • Fix several bugs when interacting in VE mode
  • Fix leak in nextpal()
  • Fix leaks in VE mode
  • Fix leak of memory returned by r_str_ansi_crop()

core

  • Fix leaks when calling r_flag_all_list()
  • Fix leak in error path of r_core_anal_search_xrefs()
  • Fix leak of pointer left behind

crash

  • Fix stack exhaustion bug in the c++ gnu demangler
  • Fix oobread in protobuf parser
  • Fix oobread in r_str_is_printable_limited
  • Fix UB bug in afi command causing random segfaults
  • Harden swift demangler
  • Harden msvc demangler
  • Fill null deref check in the x509 parser
  • Fix two more bugs in pdb found by libfuzzer
  • Some safe fixes in rbin
  • More r_run_parseline fixes
  • Fix #9782 - r_run_parseline OOB read
  • Fix oob write in dyldcache
  • Fix null deref on non-capstone builds

crypto

  • Add SM4 block cipher

debug

  • Add new 'drp*' 'arp*' commands to flag the reg arena
  • Fix build for 32bit iOS debugger
  • Fix process detach in the xnu debugger
  • Fix arm64 register access in xnu debugger
  • Initial blind support for io.self for serenity

diff

  • Implement radiff2 -B to specify base address
  • Emit json when radiff2 is run with -Cj

disasm

  • Fix #20202 - pd-55 showing invalid instructions

esil

  • Fix tests and emulation for x86_cs BSR and BSF instructions
  • Add warning for esil op $$ deprecation
  • Tag dfg nodes that are vars with constant values properly in esil_dfg.c

fs

  • Implement mdd, mdq and ms's ls -l
  • Add initial fs.zip plugin, listing only for now

fuzz

  • Fix another crash in the protobuf parser
  • Fix too much time spent loading corrupted dyldcaches
  • Fix negative allocation in the dex parser
  • Fix infinite loop in dyldcache parser
  • Fix large allocation bug in wasm parser
  • Fuzz pdb
  • Fuzz protobuf
  • Fuzz pkcs7, punycode, x509
  • libFuzzer demangler target
  • libFuzzer bin target
  • add libFuzzer integration, r_run_parseline test

globals

  • Remove two global variables in the anal.ppc.cs plugin
  • Remove global in cons.rgb
  • Remove globals in bin.sms
  • Remove globals in flirt and apply some extra cleanups

graph

  • Implement new toyish visualization command agt
  • Implement aggb command, like agfb but for agn/age
  • Add cmd.bbgraph to use a different command to render the basic blocks
  • Remove hack fixing a bug that is now gone for agn

io

  • Initial implementation of the reg:// io plugin
  • Fix #20616 - Fix analysis when using io.cache
  • Implement wcu command to undo cached writes
  • Initial implementation of the xattr io plugin
  • Fix leaks on error path in r_io_zip_open_many()

lint

  • Enable linting for trailing tabs

panels

  • Fix #20651 - Decompiler panel was disapearing after clicking

print

  • Implement pxu{1,2,4,8} like pxd but unsigned
  • Fix w6e and w6d, Add w6x, p6[e|d][s|z] + tests
  • Fix #20540 - pc should use an unsigned char buffer
  • Implement p8x and p8* similar to y*

refactor

  • Add linting to spot misuses of r_strbuf_appendf and fix them all
  • Minor optimization of generated esil expressions
  • Remove some unused macros in anal_riscv_cs
  • Remove occurences of $$ in riscv esil
  • Remove occurences of $$ in mips_gnu esil
  • Remove occurences of $$ in bf and mips_cs esil
  • Move the asm.m68k.gnu into the anal
  • move asm.arm_windebg to anal.arm_wd
  • Remove occurences of $$ in v810/v850 esil
  • Minor optimization of generated esil in anal_arm_cs.c
  • Minor optimization of esil generation in anal_arm_cs.c
  • Avoid =[*] in arm_cs esil
  • Remove occurences of $$ in arm_cs esil
  • Move lanai from asm to anal
  • Move the hppa plugin from asm to anal
  • Use more R_LOG in cmd.open
  • Merge asm.arm.gnu into anal.arm.gnu
  • Move asm.ppc.cs into anal.ppc.cs
  • Merge asm_arm_cs disassembler into anal_arm_cs

search

  • Add help message for /at?
  • /at accepts a comma separated list of optypes
  • Enable emulation in /as, it's fast enough and results are better
  • Test and benchmark --with-sysmagic in the CI

shell

  • Add open command as a wrapper for the system launcher
  • Fix #20387 - woa 1 confusing error message
  • Honor autocompletion in the of command
  • Use RCoreHelp for j? and uc? to fix a lint
  • Add |E |D |J pipe aliases for base64 command execution and encoding
  • Support interpreting executable binaries with r2 -i or '.'
  • Don't print eol chars for now to fix an r2pipe issue
  • Make command repeat behave as expected with the foreach operator
  • Improve the yank command and help
  • Honor : table modifiers in om,
  • omt->om, and make omr print map size with no args
  • Implement s** for proper seek history parseable output
  • Implement ics command to list address of class methods
  • Protect ms shell with scr.interactive
  • Fix null deref crash in RTable and improve C,
  • Implement 'e,' for table format, old e, is now e:
  • Use RCore.help instead of eprintf in more commands under aa
  • Implement y- command and some other indentation fixes
  • Use : instead of =! in all the io plugin help messages
  • Fix autocompletion for :. for r2frida

tests

  • Fix total amount count of tests in r2r output
  • Add test index progress in default output
  • Support REQUIRE in r2r tests
  • Add a few tests for cBPF conditional jumps.

tools

  • Remove all global variables in rahash2
  • Implement native r2pm pkg registry, buffer r2pm -s
  • Enable r2pm-native when calling it from r2
  • Use R_LOG in libr.main and fix RLogLevelMatch
  • Allow rasm2 -f to open files with r_io files
  • Fix ragg2 -C for pe64
  • Fix memory leak on error path of rabin_do_operation()
  • Fix leaks of allocated memory for duplicate plugins
  • Check return value of r_list_new()
  • Improve pid directive in rarun2, better info reporting

types

  • Fix #16492 - Handle - suffix in te and ts, add tests

util

  • Tests for the "standard" splist() implementation
  • Minor bugfix in strbuf.c
  • Add some more asn1 oids from apple
  • Check for RGraph in r_graph_free()
  • Fix several issues in r_syscmd_join()
  • Fix leak of char* in r_table_visual_list()
  • Fix leak in some yanking cases
  • Fix possible leak of list after each loop iteration
  • Move eprintf message to debug log
  • Check if RList* is available before calling r_list_get_n()
  • Fix leak in r_log_vmessage()

visual

  • Add 'pxu' mode to
  • Improve visual text editor navigation ('j' moves to next line)
  • Fix #20602 - Insert and cursor glitching in hex panel
  • Implement interactive text editor mode in VPi command
  • Fix insert nibbles in visual hex editor
  • Use p8x and remove pcj from visual list

windows

  • Implement r_cons_is_tty for w32

write

  • Warn when bypassing the word bounds of numeric arguments in wo
  • New syntax for wox to differentiate hex and numbers
  • Implement wa+ command to assemble + seek
radare2 - 5.7.6

Published by github-actions[bot] about 2 years ago

Release Notes

Version: 5.7.6
Previous: 5.7.4
Commits: 167
Contributors: 19

Highlights

Authors

Adwaith V Gautham Alessandro Carminati Axel Iota ChoobieDesu Denis Ovsienko Dennis Goodlett Ilya Trukhanov Lazula Maurizio Papini Paul B Mahol RHL120 Richard Patel Sergi Àlvarez i Capilla Seunghwan Chun condret mrmacete pancake pancake pluswave

Changes

anal

  • Add mnemonic API to pickle arch
  • Add last opcodes to pickle assembler
  • Add python pickle machine (pypm) dissassembler
  • In cBPF jt and jf are unsigned, fix the code
  • Handle arm64's BTI instruction as a nop
    • Revert "ARM disassembler: don't compute [pc, reg] memory location
  • ARM disassembler: don't compute [pc, reg] memory location
  • Updated syscalls for aarch64 to linux 5.19.0-rc1
  • Update syscall table for linux-x64 from kernel 5.19-rc1
  • Fix leak in wasm opcode disassembly
    • Fix leak in wasm opcode disassembly

analysis

  • Handle arm64's BTI instruction as a nop
    • Revert "ARM disassembler: don't compute [pc, reg] memory location
  • ARM disassembler: don't compute [pc, reg] memory location

analysis"

    • Revert "ARM disassembler: don't compute [pc, reg] memory location

arch

  • Fix riscv left shift bugs and implement archinfo
  • Revert "Update capstone which improves the PPC support
  • Update capstone which improves the PPC support
  • Add pickle assembler

arch"

  • Revert "Update capstone which improves the PPC support

asm

  • Fix for riscv

bin

  • Fix returning imports table
  • Fix use-after-free in the macho swizzler
  • Add RABIN2_MACHO_NOFUNCSTARTS option for testing purposes
  • Expose dbgInfo.LineNum on macho files
  • Fix macho swizzle bug by cloning the plugin struct
  • Early check to avoid null deref on files with missing buffer
  • Workaround for the fatbin slice selection regression
  • Refactor wasm custom name parsing

build

  • GIT_TAP=$R2_VERSION if no .git is found
  • Initial work towards onifying r_util

ci

  • Build r2 with muon+samu
  • Publish m1 packages automatically on release time
  • Add line count history helper scripts

cons

  • Speed up rendering by caching context pointer
  • Fix picking colors for 256 colors terminals
  • Fix display issues with pss visual mode

core

  • Add cmd.undo and handles it for w and CC commands

crash

  • Fix double free when shrinking vectors
  • Fix oobread in iOS arm64 kernel parsing
  • Fix FPE crash in p2 visual mode
  • Fix buffer overrun in pd reported by durandal_1707
  • Fix crash when calling strcmp on NULL
  • Fix heap oobread in the macho parser
  • Fix asan heap oobread in the tms320 disassembler

disasm

  • Dont show asm.describe on strings

doc

  • Increase maximum recommended line length

esil

  • Fix x86 - ROL RCL ROR RCR with memory locations

fs

  • Fix last covs and support mount in ms
  • Refactor the RFS.Shell and add the getall command
  • Add fs.cwd to define default path in ms

globals

  • Remove time_t now global variable for magic

io

  • Update the embedded libzip under shlr/zip
  • Tiny optimization in RBuffer -0.01s speedup

lint

  • Fix a new linting to remove the double error message in RLOG calls

magic

  • Add RSA/DSA key magic

panels

  • Add Assembler entry in Tools/

print

  • Fix color changing for same block and prc=f
  • Fix p=F output
  • Allow to change entropy bars width with '[]' keys
  • Fix p=e output

projects

  • Fix two more projects tests with the new onnu

r2pm

  • Fix r2pm.sh path resolution issue

refactor

  • Refactor a few eprintf to R_LOG_ERROR
  • Merge asm.riscv into anal.riscv
  • Remove unused daylight logic in magic/mdump
  • Remove optyp global variable for magic
  • Ignore asm->immdisp
  • Merge arc from asm into anal and build it with meson
  • Merge v850.np into v850
  • Use arch/bits info from anal if asm is not available in r_core_bin_update_arch_bits
  • Merge asm_x86_cs into anal_x86_cs
  • Merge asm.mips(cs,gnu) into anal.mips
  • Merge asm.tms320 into anal.tms320

search

  • Fix /rx
  • mbr magic is not good for deltified matches
  • Remove noisy mail.news magic file
  • Fix /as on arm64-linux and add missing tests to cover it
  • Improve little and big endian LZMA header magic matching

shell

  • Add the infamous command tac
  • Implement ~$!! as a tac replacement and clarify the ~$! use
  • Handle the s# command as in 's #'
  • Partial #19887 - Refactor c[248], add and test c[248]*

tests

  • Fix ARC tests and improve r2r.asm output

tools

  • Fix #20439 - rafind2 -V search for values like in /v
  • Fix #16209 - ragg2 on macOS
  • Use of RNum.calc in rax2 to honor error code
  • Honor opasm in rasm2 -LL output

util

  • Be more strict when parsing numbers
  • The RThread.start(true) had racy deadlocks, re-enable the bg http server
  • Use R_LIKELY and r_return in the skiplist api
  • Optimized implementation of rand for skiplist

view

  • Fix r_cons_printf call in calculator
  • Add FPU/XMM/YMM panel displays

visual

  • Fix recently introduced stack buffer overflow
  • Make PageUp/Down keys less laggy
  • Allow seek to previous result item when it is at 0 offset
radare2 - 5.7.4

Published by github-actions[bot] over 2 years ago

Release Notes

Version: 5.7.4
Previous: 5.7.2
Commits: 79
Contributors: 11

Highlights

Authors

Alex Bender Baldanos Dennis Goodlett Richard Patel Richard Patel Sergi Àlvarez i Capilla condret gitcolt pancake pancake tbodt

Changes

anal

  • Honor syntax cfg in cs anal plugins
  • SPARC ignores cfg.bigendian because all instruction fetches are BE
  • Add big endian support for arm prelude search

arch

  • Re-enable the bpf.mr assembler

asm

  • Remove all instances of "ptr " in x86 cs assembly output
  • Move the lm32 plugin into the anal

bin

  • Fix o-- issue on macho-arm64
  • Don't hash files when loading, that's too heavy! 1.2s -> 0.8s
  • Fix wasm function offset lookup
  • Split wasm imports by types

ci

  • Ignore odr-violations by default when running asanified r2r

cleanup

  • Lint for x""

cons

  • Add r_sys_signable() and use it from r_cons_thready

core

  • Fix loading xtr bins without arch dedicated asm plugin loaded

doc

  • Correct help msg fro ph command

fs

  • Fix mountpoint listing in the rfs shell

io

  • Add omu command to create a unique map
  • Miniscule optimization of io vread and mapping operations

lint

  • Add R_MUSTUSE hint
  • Add a linting to avoid R_LOG calls ending with a dot
  • Use r_str_startswith() in libr/io/p instead of strncmp

print

  • Fix (null) printing on pi command

projects

  • Fix #20405 - Multiple fixes and improvements in projects

refactor

  • More eprintf -> RLOG here and there
  • Merge asm.java into anal.java
  • Move asm.sh disassembler into the anal.sh
  • Add another source linting to avoid newlines in RCore.cmd()
  • Minor simplification of meson build files
  • Merge asm_rsp into anal_rsp
  • Merge asm_propeller into anal_propeller
  • Merge asm_m680x_cs into anal_m680x_cs
  • Merge asm gb into anal
  • Merge the asm.mcs96 plugin into anal
  • Merge asm.cris into anal.cris
  • Use more R_LOG instead of eprintfs and add more linting checks
  • Add sys/lint.sh and run it in the CI
  • Merge asm.8051 into anal.8051
  • Merge asm.sparc into anal.sparc
  • Merge asm.alpha into anal.alpha

shell

  • Fix #16395 - Add open file command to the ms shell

tests

  • Remove the -r and -m flags from r2r

tools

  • Down with capitalism - lowercase all capitalized strings in r*2 -h
  • Add RABIN2_VERBOSE env var to set bin.verbose=true in rabin2
  • rabin2 -qqqqqq doesnt swap between simple and simplest now

web

  • Few http webserver improvements
radare2 - 5.7.2

Published by github-actions[bot] over 2 years ago

Release Notes

Twitter thread: https://twitter.com/radareorg/status/1539561234453987328?s=21&t=RMA5QEUIJoG6tdVvPCc-Cg

Version: 5.7.2
Previous: 5.7.0
Commits: 192
Contributors: 26

Highlights

Authors

Aleksey Kislitsa Apkunpacker Ben Demick Denis Ovsienko Dennis Goodlett Dennis Goodlett GiulioL GiulioLyons HighW4y2H3ll Lazula RHL120 Richard Patel Richard Patel Sergi Àlvarez i Capilla aemmitt aemmitt-ns colt condret lazymio meme pancake pancake pipothebit rax2 rax64 ypsvlq

Changes

anal

  • Add op->cycles for M68K move
  • Set data alignment of m68k CPUs
  • Use r10 as SP and as an sp alias on arm64
  • Fix archinfo for BPF
  • Add icg str argument for filtering classes to graph
  • Add z vector registers for ARM64 in the register profile
  • Add R_REG_TYPE_VEC
  • Remove dead code
  • Add esil support for VMOVDQU in anal_x86_cs.c
  • Fix ARM ujmp op type with rjmp & mjmp
  • Fix #20215 - Handle op->direction in XOR x86 instructions
  • Reduce LOC of i4004 assembler (only use gperf for 1 byte instructions)
  • Move i4004 asm to anal

analysis

  • Set data alignment of m68k CPUs
  • Use r10 as SP and as an sp alias on arm64
  • Fix archinfo for BPF
  • Add icg str argument for filtering classes to graph
  • Fix ARM ujmp op type with rjmp & mjmp

arch

  • Fix reg profile, add archinfo and opinfo for bpf.cs
  • Initial import of the asm.bpf plugin from extras
  • Add initial anal.bpf.cs plugin + disasm tests

asm

  • Support tbz,tbnz,rev16,rev32 instructions in the arm64 assembler
  • Support cset and sxt(b,h,w) instructions in the arm64 assembler
  • Support mnemonic list for all Capstone-based plugins
  • Support ccmn and csel instructions in the arm64 assembler
  • Support more arm64 instructions

bin

  • Fix #17174 - Add the flagname and real symbol name details in the output of icj
  • Better handling of invalid/corrupted wasm files
  • Use RPVector for wasm imports
  • Use RPVector for wasm data section
  • Refactor wasm start section parsing
  • Move RBinWasmObj-code to RPVector
  • Wasm use rpvector on elements
  • WASM use RBinWasmObj in vector parsing
  • Update wasm tests for exports
  • Fix wasm iE duplicates
  • Rename wasm subection index member to sec_i
  • Change wasm subsections into RPVectors
    • Use RPVector for wasm tables entries
    • Use RPVector for wasm memmories entries
    • Use RPVector for wasm global entries
  • Refactor wasm and add function section parsing
    • Remove unsed buf_read_new from wasm parser
    • Refactor wasm vector sub-section parsing
    • Add wasm function sub-section parsering
  • Fix ELF default arch of x86
  • Avoid false positives when loading s390 modules
  • Refactor wasm function types
  • Wasm allow partial custom name parsing
  • Wasm iE improvment

build

  • Windows builds include debug information by default
  • Add macos-m1 GHCI builds
  • Update v35arm64 to fix build on riscv
  • Massage MAKE_JOBS for sys/debian.sh too
  • Remove the r2p symlink on Make purge

cons

  • Fix/clarify the use of cons.vtmode/line.vtmode/vmode
  • Reduce stack in RLine.histLoad() and early return on windows to fix a crash

core

  • Fix fortune file detection
  • Make the gnu disassemblers thread safe

crash

  • Fix oobread in RTable exposed via an ELF reproducer
  • Fix #20336 - wasm bin parser
  • Fix oobread in wv
  • Fix #20248 - DoubleFree in RCons.pop() triggered via RCore.cmdStr()
  • Fix infinite loop in gdbserver =g
  • Fix several bugs in the RStack API

disasm

  • Fix negative on unsigned value in v850.pseudo
  • Update to the latest capstone to fix a bug for BPF
  • Fix #17961 - missing flags in asm.reloff=1 + scr.color=0

doc

  • Rename doc/crosscompile to doc/cross-compile.md
  • Add ABI stability explanation

esil

  • Fix SHRD instruction ESIL
  • Add ESIL to the anal.bpf.cs plugin

io

  • Fix bug in io_ihex
  • Optimize io.open() by skipping plugin iteration if no uri found
  • Add stdin:// uri handler in the io.malloc plugin

parse

  • Make existing types available to r_parse_c_string

print

  • Fix #20310 - Handle help suffix on more pd subcommands
  • Convert pf d specifier to hex dword

r2pipe

  • Fix: pthread_create: Resource temporarily unavailable

r2pm

  • Handle R2PM_UNINSTALL on Windows
  • Fix environment message for the package manager
  • Improvements in the native r2pm, being able to install samu and muon

refactor

  • Merge asm.avr into anal.avr
  • Merge asm.xap into anal.xap
  • Merge asm.i8080 into anal.i8080 and add a test
  • Merge asm.xcore_cs into anal.xcore_cs
  • Merge asm.amd29k into anal.amd29k
  • Merge asm.h8300 into anal.h8300
  • Merge asm.lh5801 into anal.lh5801
  • Merge asm.cr16 into anal.cr16
  • Merge asm.v850 into anal.v850 and add a test
  • Merge asm.malbolge into anal.malbolge
  • Merge asm.v810 into anal.v810
  • Merge asm.pdp11 into anal.pdp11
  • Merge asm.6502 into anal.6502
  • Remove more R_TH_LOCAL in TCC
  • Remove excess zeroing in anal_bpf.c
  • Merge asm.riscv.cs into anal.risc.cs
  • Move asm.pyc to anal.pyc
  • Merge asm.nios2 into anal.nios2

search

  • Honor cfg.bigendian in /v subcommands

shell

  • Fixes for the R2_FORTUENS system and home paths
  • Fix history file path construction
  • Fix error message in e- when resetting in debugger
  • Remove newline in date and pt. output
  • Expose R2_HISTORY in r2 -hh and r2 -H to locate history file

tests

  • Add Capstone aoml cases
  • Generate r2r.json for profiling the testsuite
  • Sort lines in r2r -h
  • Use absolute path for r2r -o

tools

  • Fix disalignment glitch in rasm2 -L and rasm2 -LL

util

  • Compile-time optimization for r_str_startswith()

visual

  • Fix arrows in visual prompt on windows cmd V:

windows

  • Autoset vtmode=1 or 2 depending on shell or visual
  • Detect cmd.exe as vtmode=2
  • vmode fixes visual shift issue in cmd.exe
  • Support building windbg plugin under mingw
radare2 - 5.7.0

Published by github-actions[bot] over 2 years ago

Release Notes

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

Highlights

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

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/abi

  • Rename REgg.Cfile to REgg.cfile
  • Rename corebind fields to coreb, for consistency with analb, iob
  • 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
  • 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
radare2 - 5.6.8 - codename: remora

Published by github-actions[bot] over 2 years ago

Release Notes

Version: 5.6.8
Previous: 5.6.6
Commits: 137
Contributors: 15

Highlights

Authors

Apkunpacker Dennis Goodlett Fernando Domínguez Francesco Tamagni Lazula RHL120 SeanH Sergi Àlvarez i Capilla condret junchao-loongson max-lv mdolmen n01e0 pancake pancake

Changes

analysis

  • Fix comma separated args in r_anal_function_format_sig
  • Skip more types of call instructions on linear emulation
  • Add missing 'direction' field in the output of aoj
  • ar command using ->anal, otherwise for non-debug builds that fails
  • Allow abt to handle addresses in the middle of basic blocks
  • Handle addresses in the middle of basic blocks in abf
  • Implement 'abf' command to list incoming bbs
  • Run 'aap' before 'aae' on arm64 binaries in 'aaa'

bin

  • Hide some dyldcache parsing error messages and improve string filtering
  • Fix infinite loop in strings and better use of is_breaked()
  • Handle ^C when loading dyldcache binaries
  • Show friendly warning when loading without R_DYLDCACHE_FILTER
  • Fix two more oobread bugs in the dyldcache plugin
  • Fix oobread crash in the rebasing method of dyldcache
  • Fix negative allocation attempt in izz that will surely fail
  • Fix mach0 class 64bit address sorting bug
  • Show 'missing X info' error in rabin2 -H
  • Warn the user when no header fields are found
  • Fix rebasing Mach-O DYLD_CHAINED_PTR_64
  • Add support for parsing swift metadata from macho binaries
  • Assume all machos are made by clang
  • Honor baddr=0 in RBin, as it's done for RIO
  • Fix oobread in symbols header parsing

build

  • Add missing loongarch for the meson
  • Add support for Visual Studio 2022 (community+enterprise)

ci

  • Disable offline builds
  • Ignore asan memory leaks when running the tests
  • Run the tests for non-debugger builds

crash

  • Fix null deref in code meta commands
  • Fix oobread bug in NE parser
  • Fix null deref in ne parser
  • Fix #19940 - infinite loop in x/i on invalid instructions
  • Fix oobread and unaligned casts in the NE entrypoint logic
  • Fix random segfault happening with wrong null preconditions in iobank
  • Fix UAF in aaef
  • Fix oobread in NE parser
  • Fix null deref in the ne parser
  • Fix oobread in dyldcache
  • Fix another oobread in the NE parser
  • Fix another oobread segfault in the NE bin parser
  • Fix oobread segfaults in the NE bin parser
  • Fix oobread in the macho parser
  • Fix 1 byte oobread in the cris analysis plugin

crypto

  • Fix undefined behaviour bugs in serpent crypto algorithm

debugger

  • Apple Silicon can hwstep

disasm

  • Fix #19876 - Smarter local variable and argument sorting
  • Show args before vars in afv summary also in pd

egg

  • Initial WIP implementation of the ESIL backend for ragg2

emulation

  • Fix aeim on --without-debugger builds

esil

  • Fix 'aeb' emulating the right instructions
  • Fix PPC ESIL of addis instruction
  • Honor esil.maxsteps in more commands and stop earlier when no =PC
  • Add esil.maxsteps to avoid infinite emulation loops

json

  • Fix aeabj output which returned different information than aeab
  • Instruct drrj to not emit ansi escapes to not damage

print

  • Fix pief printing N bytes instead of N instructions
  • Add psa command to print any kind of string
  • Support relative pointer resolution in pxr
  • Implement pfP for relative pointer format memory formatting
  • Add pfW for signed short format

projects

  • Add an error return to r_core_project_cat

r2pm

  • Increase commit log from 3 to 10 in

search

  • Initial implementation of the aavr command

security

  • Add sandbox checks for the debugger io plugins

shell

  • Fix infinite loop in -1 command
  • Improve wz help and error handling
  • Run r2pm from core internally
  • Fixes for the Trim.args() for ?e
  • Handle ^C in fg and improve ^C in pd
  • Lowercase all the help messages for consistency (2)
  • Honor escaping semicolons in macro definitions
  • Lowercase all the help messages for consistency
  • Use standard help api for aeim too
  • Add the cmp command to compare two (alias) files
  • Implement 'curl' command
  • Implement @c: temporal seek operator
  • Add r_core_return_code() and use it
  • Fix glob matching in several cases
  • Use strstr instead of rstr.glob for now in @@
  • Fix seek history for the 's..' partial seeks

signatures

  • Update byte signature flag name
  • Fix autoloading of

tools

  • Add rahash2 -J for simplified single object name=hash output
  • Allow rahash2 -a to be passed multiple times

types

  • Fix #16335 - tp not handling blocksize properly

util

  • Add tests for the code tokenizer and fix <<= assignments

visual

  • Visual color theme editor available from panels

zign

  • Fix bug in z/, that creates misplaced functions
radare2 - 5.6.6

Published by github-actions[bot] over 2 years ago

Release Notes

Version: 5.6.6
Previous: 5.6.4
Commits: 130
Contributors: 10

Highlights

Authors

Dennis Goodlett Dennis Goodlett Jules Maselbas Lazula Pau Rodriguez-Estivill Sergi Àlvarez i Capilla aandersonl aemmitt-ns pancake pancake

Changes

anal

  • Remove the hexagon from anal
  • Save sp,bp,src,dst in heap outside the loop
  • Add afiq for quiet functino info and refactor the anal/abi.inc
  • Add help for 'pie?', add pieq and add ninstr in afi[j]
  • Sanitize function names for prototypes
  • Unify asm.z80 into anal.z80
  • Restrict local vars and args in a 8KB range, otherwise skip
  • Adds afva in all fcns flags (if any)
  • Skip afva on functions with signature registered
  • Do not perform var/arg analysis on Java/Dalvik
  • Add missing eiz/riz registers for x86 and x64
  • Add mermaid output to all ag commands
  • Add an* and fix many other conceptually broken logics in an

analysis

  • Remove the hexagon from anal
  • Add afiq for quiet functino info and refactor the anal/abi.inc
  • Add help for 'pie?', add pieq and add ninstr in afi[j]
  • Sanitize function names for prototypes
  • Unify asm.z80 into anal.z80
  • Restrict local vars and args in a 8KB range, otherwise skip
  • Adds afva in all fcns flags (if any)
  • Skip afva on functions with signature registered
  • Add missing eiz/riz registers for x86 and x64
  • Add an* and fix many other conceptually broken logics in an

asm

  • Fix #19489 - Implement assembler for jrcxz

bin

  • Add help for the CL command
  • Cache file_exists when iterating over the source files
  • Complete DWARF4 register mappings

build

  • Only build library archives when -Dblob is provided
  • Fix some static meson blob dependency leftovers
  • Fix sys/release-notes when HEAD a tagged
  • Make -Dblob=true statically link all r2 libraries

ci

  • Publish r2blob-w64 on release and fix artifact name

crash

  • Fix heap OOB read in macho.iterate_chained_fixups
  • Fix UAF in aaaa on arm/thumb switching
  • Fix buffer overflow in asm.nbytes, add hard limit to 64
  • aaef on arm/thumb switches causes uaf
  • Break large loops when method name resolution fails

debug

  • Improve help message for dd? and autocomplete
  • Add 'dd+' to open files in the child process as read-write
  • Fix unitialized buffer read bug enumerating process files
  • Add ddf command
  • Fix dd command and update tests accordingly
  • Skip wired-to-ground registers in dr=
  • Fix drj in debug mode

disasm

  • Fix #19838 - Show pins in the disassembly as comments
  • Improve the way asm.nbytes plays with asm.flags.inbytes
  • Fix issue in asm.tabs.once causing iaito to trim instructions

doc

  • Update the Windows build instructions

esil

  • Add ESIL for x86 SSE float instructions
  • Implement 'aeb' using APIs instead of commands
  • Add aaepa command to set all unknown imports as ret0
  • Fix aecs and add test emulating hello world without libc
  • Add aaep and extend aep to support pin specific commands
  • Implement ESIL for the Stlxr arm64 instructions

fix

  • Fix undefined behaviour in RVector, RPVector, RInterval and container_of

print

  • Initial import of the code tokenizer

refactor

  • Lots of cleanups to reduce the regressions in TCC
  • Dont use != NULL as its implicit in C, even for bool casts

shell

  • Improve help message for psz, aek, aae, aep, aer and aex commands

tools

  • Use R_SYS_BITS by default in rasm2

visual

  • Fix back scrolling in the decompiler pane in panels
  • Improve panels prompt drawing the bottom box line one line above
  • Add scr.notch to blank N lines on top of the screen
  • Improve panels interactions with decompiler frame
  • Record seek history when cliking around in panels
  • Fix blank decompiler issue when clicking randomly in panels

windows

  • Add w64-static builds in the CI
  • Add 'configure.bat static' argument to build r2blob.static.exe
  • Fix meson -Dblob=true builds for static
  • Fix r2blob for windows
radare2 - 5.6.4 - codename "do bisa vijnu"

Published by github-actions[bot] over 2 years ago

Release Notes

Version: HEAD
Previous: 5.6.2
Commits: 67
Contributors: 11

Highlights

Dennis Goodlett Dennis Goodlett Lazula Pau Rodriguez-Estivill Sergi Àlvarez i Capilla aemmitt aemmitt-ns archcloudlabs pancake pancake pkubaj

Changes

anal

  • Handle jump tables in agfm
  • Add agfma to get assembly in mermaid graphs
  • Add agfm command to print cfg graphs using mermaid syntax

analysis

  • Add agfm command to print cfg graphs using mermaid syntax

bin

  • Find strings on maddr'd binaries with izz
  • Fix wide32 string detection that caused to miss other ascii strings
  • Fix large loading times in macho parser
  • Fix slow loading times for small ELF sample

build

  • Fix #19726 - fix meson definition order issue when using syslz4
  • Add rasm2 and rax2 wasi/wapm packages
  • Build fixes for wasi/wapm/wasm and update sdb

charset

  • Add initial support for katakana

crash

  • Fix timeout analyzing a small class reported by clusterfuzz
  • Fix DoS in PE/QNX/DYLDCACHE/PSX parsers
  • Fix DoS in kernelcache bin parser
  • Fix oobread in macho core symbolication
  • Fix null deref in bin.symbols
  • Fix DoS in the minidump parser
  • Fix DoS on macho parser spotted by scan coverity
  • Fix heap buffer overflow in dyldcache parser

debug

  • Add support for powerpc, powerpc64, powerpc64le and riscv64 on FreeBSD

disasm

  • Honor ArchInfo.opalign in pia
  • Fix #19610 - Honor minopsz in pia

esil

  • Add some sign extend to some v850 st/sst insns

print

  • Fix #19729 - Make pswj consistent with psw output
  • Fix #19739 - Fix oobread in pv* and fix bug in pvj

shell

  • Add aot command to show instruction types (like /atl)

visual

  • Restore and revert blocksize in V:
  • Fix #19737 - Handle ESC and space in the ascii hex column
radare2 -

Published by trufae over 2 years ago

Release Notes

Version: 5.6.2 (from 5.6.0)
Commits: 63 (from 13 contributors)

Highlights

  • Fixed 12 critical vulnerabilities (Thanks NowSecure, Google, Synopsys and HuntrDev! for reporting)
  • Support new file fileformat used by Xamarin to pack .NET libraries (XALZ)
  • ihex:// (intel hexadecimal object files) are working again (it was broken for a while)
  • lz4 deflating is now supported at API and commandline levels
  • FreeBSD is now part of the CI, improved stability and fixed all related warnings
  • The new w+ (wx+) commands write and seek to the end of the written chunk
  • Panels fixed a couple of glitches and improved usability with decompilers

Anderson Angel Diaz Anton Kochkov Bernhard M. Wiedemann Dennis Goodlett Florian M Nerijus Bendziunas PauRE Sergi Àlvarez i Capilla nemarci pancake pancake wargio

api

  • New r_inflate_lz4 API to reuse LZ4 across all libs
  • Support building with system-provided lz4 library

asm

  • Support assembling the cmn, teq and tst arm32 instructions
  • Fix oobread bugs in cr16 disassembler
  • Fix pop [rsp] emulation for x86

bin/io

  • Add ELF reloc patching for R_386_32 and R_386_PC32
  • Handle SH, MIPS and ARM in COFF binaries
  • Initial support for XALZ binaries from Xamarin
  • Fix ihex:// io parser as it was not working

ci

  • Partial #19687: Add release github actions workflow
  • Publish FreeBSD artifacts and purge the srcdir

cons

  • Fix 'disable mouse' ansi code
  • Minor rgb.parse optimization and remove the use of sscanf in pal.c
  • Fix visibility issue in the bluy theme

crash

  • Properly fix the UAF in r_io_bank_map_add_top
  • Early break when parsing corrupted DEXs to avoid DoS
  • Fix oobread in pxj
  • Prefer memleak over usaf in io.bank's rbtree bug
  • Fix DoS in MACHO parser spotted by clusterfuzz
  • Improve boundary checks to fix oobread segfaults
  • Fix DoS when loading a fuzzed DEX file
  • Fix UAF in pyc parser
  • Fix negative index in anal.arm64.cs
  • Fix bins/*/rep8 - UAF crash in pyc parser
  • Fix oobread segfault in java arith8.class
  • Fix java oobread in id_000000,sig_06,sync_m1,src_000048

panels

  • Fix panel focus glitch
  • Fix overlapping titles on small frames
  • Close menu when a different decompiler is selected

shell

  • New 'w+' command, to write a string and seek at the end
  • Fix parsing of 'ra?' and 'r0x' subcommands
  • Add prgl command to decompress current block using lz4
  • Fix Negative Offset in Hexdump Json Output
radare2 - 5.6.0 - codename Miteigi

Published by trufae over 2 years ago

Release Notes

Version: 5.6.0
Previous: 5.5.4
Commits: 254
Contributors: 16

Highlights

  • ABI breaks - RAnal api is the new home for the RAsm plugins, reduce installation size
  • Add an initial and working native reimplementation of r2pm in plain C (no posix shell required)
    • Windows support will come later, needs more testing and user feedback.
  • Initial release with support for threads (one RCore per-thread is supported for now)
    • Remove or make TLS globals, add atomic support, fix mutexes and threads
    • r2r testsuite now runs with the thread sanitizer enabled builds
    • Remove all uses of sdb_fmt in exchange of the thread safety r_strf
  • More tests for ESIL and improve quality on x86, arm64, riscv, v850 and more!
  • Improved usability and fixed some buggy interactions in panels, better help messages and improved color themes.
  • Support latest capstone, and prefer system wide installation for better offline builds
  • Add project loading in sandbox mode and add dirty bit to avoid saving things when nothing changed.
  • New commands: pdu, r-/r+, fc, aafs, pcc, /aF, isqq. iS,, axl, /e, pFB, ws# for more pascal string types support
  • Binary PLIST printing (pFB) which combines great with (pFA - for android binary xml)
  • Orders of magnitude faster analysis with aafs and sixref
  • Honor flag colors in hexdump and instruction tokenization in disasm
  • Fix 3 CVEs since 5.5.4, lots of memory leaks and all the coverity critical issues
    • Improve code quality by using new tools and stdint basic types
  • Support arm32 debugging on native arm64 linux hosts
  • Extend scripting support to quickjs and wren programming languages
  • Add time measurement directive to rarun2
  • Add Rabin Karp faster search algorithm (/e) and fix some bugs in the search loops
  • Add new arch plugins: loongarch, evm.cs, v850.np and chip8

Adrian Laskowski Apkunpacker Claudemirovsky Dennis Goodlett Francesco Tamagni Lazula RHL120 Roman Valls Guimera Sylvain Pelissier aemmitt-ns gogo2464 junchao-loongson lasek0 meme pancake pancake

Changes

abi

  • Move asm/wasm into anal, and add new opasm() callback

anal

  • Simpler var counting API
  • Add support for x86-32 callpop artifacts
  • Add ablc, ab-, Fix and optimize in af- and aafs
    • Add ablc, ab-, Fix and optimize in af- and aafs
  • Fix 'afls' and add tests
  • Fix heap overread in loongarch when len < 4
  • Add axl command for consistency with afl for 'axlc'
  • Fix reference order and use the API in sixref (2x faster)
  • Initial implementation of the 'aafs' command
  • Add support for the new loongarch architecture
  • Improve the v850.np analysis, fix all call refs

analysis

  • Simpler var counting API
  • Add support for x86-32 callpop artifacts
  • Add ablc, ab-, Fix and optimize in af- and aafs
    • Add ablc, ab-, Fix and optimize in af- and aafs
  • Fix 'afls' and add tests
  • Add axl command for consistency with afl for 'axlc'
  • Fix reference order and use the API in sixref (2x faster)
  • Initial implementation of the 'aafs' command
  • Add support for the new loongarch architecture
  • Improve the v850.np analysis, fix all call refs

api

  • Add r_core_help_match() to get help for a specific command

arch

  • Initial import of the evm.cs plugin

asm

  • Handle instruction operands in wasm.asm
  • Refactor, improve and move chip8 support out of libr/asm

bin

  • Parse relocs from Mach-O chained binds if no opcodes
  • Add support for rebasing ARM64E_USERLAND24 chained format
  • Fix isqq. command
  • Fix #19541 - Fix null deref and stack exhaustion bugs in the kernelcache
  • Implement iS, command (table query format for section listing)

build

  • Fix #18621 - Specify ABI version to be X.Y instead of X.Y.Z
  • Add 16GB pagefile for the windows ci
  • Simplify meson logic and use ole's PR to fix Windows
  • Add CI job to verify builds with system-wide capstone
  • Use system capstone if available in sys/install.sh
  • Fix ios-sdk compilation
  • Bring back the 32bit builds for Cydia
  • Use api9 for android-arm builds to bring back Kitkat support

charset

  • Add iso8859_1

cleanup

  • Remove globals from tcc code

cons

  • Use static RThreadLock in cons
  • Dont SIGINT in RCons when used in a thready way
  • Improve the 'fc' command to unset and get color flags easily
  • Add scr.theme and Lt commands as alias for 'eco'
  • Improve the basic theme
  • Fix all the known issues in the ayu theme
  • Honor jmp/call argument colors by type

core

  • Fix #19628 - wx+ as an alias for wxs
  • Mark all globals (or most of them) as TLS variables
  • Make RCons thread-friendly
  • Fix race conditions in RCoreTasks
  • Rewrite r_list_uniq with a faster algorithm

crash

  • Fix null deref in xnu.kernelcache
  • Optimize and fix heap overflow in asm.tabs using RStrBuf

debug

  • Expose the 32bit arm reg profile on 64bit hosts

disasm

  • Workaround to handle seg:off on x86_16 due to a capstone bug
  • Fix #15473 - Align meta dwords in the middle of instructions
  • Improve reg detection in asm highlighting + add test
  • Fix reg/flag detection in disasm colorization
  • Initial import of the v850.np plugin
  • Handle anal.cpu=? and fallback for asm.cpu when no asm plugin
  • Add asm.bytes.opcolor configuration option

doc

  • Add 'first session' example in the README

esil

  • Disable ESIL macros and add reproducer test
  • Add helper function for pending macro handling
  • Improve EVM analysis and update tests
  • Macrofication of the '+=' and '-=' esil operations
  • Add support for list12 logic in the v850.np distillation
  • Fix esil for bnd jmp x86 instrs and cmn arm instrs
  • Implement ESIL on more instructions for v850.np
  • Handle ESIL in more v850.np instructions

help

  • Fix helps for aan? aaf? and aes?
  • Fix help for the 'aaa' subcommands

io

  • Fix use-after-free in iobank rbtree usage

panels

  • Autoset cache flag on whitelisted panels on create
  • Fix #19410 - Fix cursor mode regression

parse

  • Use static RThreadLock in TCC

ports

  • Add basic support for loongarch

print

  • Add 'pFB' command to use the new BPLIST parser
  • Add scr.color.ophex to colorize 'px' with opcode type
  • Honor flag colors in 'px' hexdump
  • Fix pxa@e:hex.compact=true and add tests
  • Improve the way color flags are handled
  • Improve pcc output and add a test
  • Add 'pcc' command to print block as C char*string
  • Fix pdsf?, forbid V? and remove newlines in pxA?

projects

  • A better way to check if a project has been saved
  • Add prj.sandbox to enable experimental sandboxed project loading

r2pm

  • Initial implementation of r2pm.c

refactor

  • Use stdint like if there was no yesterday
  • Remove asm.hexagon, anal one is enough
  • Remove asm.ebc and merge disasm into the anal

search

  • Implement /aF and /aFd to search for instructions in functions
  • Add Rabin Karp algorythm to
  • Add r_search_maps to
  • Search adjacent maps together
  • Move /e to new search API
  • Fix bug in regex searching
  • Add longest field to RSearch
  • Add r_search_upate_read API

security

  • Implement fine grained sandbox control

shell

  • Implement rarun2 time=true attribute

tests

  • Initial implementation of the dummy benchmark

tools

  • Fix R2PM_DEPS handling in r2pm -ci

util

  • Fix: Mark r_print_format globals as TLS
  • Add atomic primitives for Windows
  • Add safe static lock initialization
  • Improvements and fixes for the threading APIs
  • Introduce r_strf and stop using sdb_fmt

visual

  • Fix #19409 - Close menu after creating a new panel from it
  • Handle vE as in VE - edit color theme
  • Fix fast jump with ahc on register calls

windows

  • Use I64x instead of llx format strings for mingw builds too

write

  • Add ws1, ws2 and ws4 commands for variable size pascal strings
radare2 - 5.5.4 - stability release

Published by trufae almost 3 years ago

Release Notes

Version: 5.5.4
Previous: 5.5.2
Commits: 30
Contributors: 8
Days: 9

Highlights

Changes

Architectures support

Changes related to disassembly, assembly and analysis:

  • Use cs_disasm_iter in anal.x86.cs to use less heap and speedup analysis and disassembly
  • Disable the disassembler logic in the asm plugin for 8051
  • Handle jbc [reg] in 8051 assembler
  • Handle registers on push on 8051
  • Improve pD, reading too many bytes on loop
  • Better Analysis plugin handling from the asm module

Binary parsing

  • Dont depend on case-sensitive FS to load the DLL sdbs
  • Support Mach-O DYLD_CHAINED_PTR_64_OFFSET format

Build/ CI

  • Check for an existing upstream remote in install scripts
  • Fix libr_lang linking issue (introduced in 5.5.2)
  • Do not remake on modules with d/ (faster 'make' builds)

Search

  • Cleanup public API for
  • Add JSON output to zb commands

Security

  • Fix #19476 - heap overflow in aao
  • Fix #19478 - null deref in symbols file
radare2 - 5.5.2

Published by trufae almost 3 years ago

Release Notes

Version: 5.5.2
Previous: 5.5.0
Commits: 92
Contributors: 16
TimeDelta: 20 days

Highlights

Ashwin Kumar Dennis Goodlett Lazula Octavio Gianatiempo Richard Liu Rick de Jager Sergi Àlvarez i Capilla aemmitt-ns aviciano condret gordon-quad meme meme pancake pancake slowhand99

Changes

ARM/THUMB

  • Fix #19464 - incorrect assembly for adrp on arm64
  • Use null plugin when using unexistent asm plugin
  • Handle more ELF relocs for ARM binaries
  • Fix #18967 - Fix emulation for the mov-pc thumb instruction

Binary parsing

  • Add Plan 9 symbol parsing
  • Fix PE Metadata header name parsing (.net related)
  • Add bin_xtr.xtr_pemixed for PE user plugin

build

  • Use remote URL for git pull in install scripts
  • Enable mingw32/mingw64 builds in the CI (new first class platform)

cons/ui

  • Improve the snow experience in panels mode
  • Add eco! and eco* and sort eco listing
  • Show prev nodes in graph.few
  • Improve cursor up/down in visual disasm when code is analyzed

crash

  • Fix invalid pointer read issue in dwarf parser
  • Fix #19455 - Negative tainted offset used in buffer for pyc causing oobread
  • Fix #19448 - Fix atoi on non-null terminated string in PE section headers
  • Fix #19446 - null derefs in the x509 parser
  • Fix #19443 - UAF in marshall null object
  • Fix #19442 - Fix heap underflow in pyc marshalling
  • Fix #19444 - Null derefs in PE signature logic

Other

  • Fix #19463 - io write error reporting regression
  • Fix #19473 - Support libc filename w/o version for heap analysis
  • Fix Dalvik’s esil conditionals
  • Initial support for VLIW on hexagon
  • Fix infinite loop in r_str_replace

Diff / Signatures

  • Implement symbol name list diffing in radiff2
  • Fix zj vars output
  • Add binary search alg to pvector

r2pipe

  • Fix r2pipe.cmd("Z") when command fails returns no output
  • Updated R2pipeSide support for Go and V
radare2 - 5.5.0 - 希

Published by trufae almost 3 years ago

Codename: Nozomi 希
Commits: 381
Contributors: 25
Associated Releases:

Breaking changes in api, esil, abi and commands. Plugins will need to be recompiled as usual.
Special thanks to giantbranch from NSFocus Tianji Lab for reporting several crash reproducers

  • New IOBanks APis and commands replacing skyline and making io faster (2-10x) @condret
  • Faster analysis, type matching, binary parsing (2-4x) @trufae
  • [] and =[] esil operations has been removed (size is mandatory) @condret
  • Lots of important bugs fixed in bin parsers and disassemblers @lazula
  • Add support for the latest iOS15 dyld4 Atlas-style cache formats @mrmacete
  • Autorename signature matching collisions and faster search @swoops
  • Add assembler for riscv and disassemblers for PDP11, Alpha64 and armv7.v35 @trufae
  • Improved integration with r2frida remote filesystems @as0ler
  • Cleaning debugger for windows (32 and 64) and macOS makes it more reliable and stable @trufae
  • Add seven segment printing (?ea for ascii-art text titles) @trufae
  • Improved xrefs visualization with new axfm and axtm commands @trufae
  • Add avg command to manage global variables @trufae
  • The sixref plugin is now easier to use to find xrefs on arm64 code @hot3eed
  • Improved multibin (select all bins or one) and multidex support in apk:// @trufae
  • Better build scripts for Windows (add asan and w32 profiles) @trufae
  • Added armv7.v35 and improves esil emulation with the arm64.v35 @aemmitt-ns
  • Add more help messages and set scr.prompt.tabhelp true by default @trufae
  • AES key wrap algorithm support in rahash2 @sylvainpelissier
  • Fix var serialization issues in debugger reloading (ood) and projects saving (Ps) @rhl120
  • Add Amiga and MSX rom/bin parser plugin and test @romerojoseant @trufae
  • Visual slides (r2s) allow interactive content to be used within r2 @trufae
  • Print and convert ternary values back and forth @trufae

Authors

0mhu Abdelrahman Eid Antoni Viciano Dennis Goodlett Fernando Domínguez Francesco Tamagni Jose Antonio Romero Lazula Murphy RHL120 Sergi Àlvarez i Capilla SkUaTeR Sylvain Pelissier aemmitt-ns condret devnull850 dogtopus hot3eed junchao-loongson meme murphy pancake pancake rhl120 thymol0

analysis

  • Check if ax[ft] argument is valid before showing xrefs to 0
  • Implement axtm, axfm and add helps for axf? and axt?
  • Improve debug message when misleading a function name
  • Add serialization API for vars
  • Improve sixref plugin UX
  • Copy the z80.archinfo into the gb plugin
  • Honor (min|max)-opsz and buffer bounds in aar
  • Hide the 'no calling conventions' warning and add =R0 for x86
  • Improve the reg profile for python
  • Fix crash when using the pyc disassembler without pyc bin
  • avr requires aeim before aaaa to not assert
  • New 'avg' command and RAnal.global to manage global variables
  • Remove unused enum
  • Fix tests for RAnalVar function relocation
  • Fix variable relocation on ood (#19219)
  • Fix 1 bb function analysis with a2f
  • Fix null deref when using anal.a2f
  • Improve sixref plugin UX

asm

  • Add the first multiarch assembler plugin: vasm
  • Initial implementation of the RISCV assembler
  • Minor refactors in disasm.c, primarily r_core_print_disasm()

bin

  • Use r_str_ndup in another bound check in dwarf
  • Fix crash when elf symbol initialization fails
  • Always init Mach-O options with defaults
  • Add Support For dyld4 Atlas-style Shared Library Caches
  • Handle allbins in im, iM, iT, iC, iV, iz
  • Implement multidex and proper multibin in apkall://
  • Handle allbins for iz, ic, iI, ie and iM
  • Implement 'ob *' to select all bins and honor in is,ii,ir,il
  • Add MSX rom/bin parser plugin and test
  • Fix some null checks around the open_many apis
  • Implement 'is,' for table query for symbols
  • Handle the ARM32 COFF case
  • Improve swift demangler and add bin.demangle.trylib config
  • Initial implementation of the HUNK file parser
  • Detect canary on statically linked RT and stripped PEs

build

  • Generate bin/d the same way as other sdb paths with meson
  • Fix wasi builds and update wapm package in the new dist/wapm
  • Respect v35 repos for offline builds
  • Dont user latest meson because its broken :D
  • Initial work towards supporting mingw32/64 again
  • Rename MD5 symbols to prevent OpenSSL collision

cons

  • Fix buffer overflow in RConsPixel API affecting the braile renderer
  • Improve default theme
  • Add scr.prompt.tabhelp enabled by default
  • Move more context fields out of the globals
  • Move the console flushing decision to the console context

core

  • Deprecate the file.openmany config variable

crash

  • Fix null deref in r2 -c 'oc 3' -
  • Fix #19178 - UAF in aaft when anal.detectwrites is enabled
  • Wrong bounds initializing dwarf dies (tests_64901)
  • Fix oobread in z80 disassembler (tests_65081)
  • Fix oobread crash in the ELF parser (tests_64931)
  • Fix oobread crash in DWARF's parse_die (tests_64926)
  • Save and check the reg arena size when peekpoking (Fix tests_64923)
  • Fix oobread crash in DWARF parser (tests_64922)
  • Fix oobread crash in dwarf parser with non-null terminated strings
  • Fix oobread crash in DWARF parser (tests_64924)
  • Fix oobread crash in the analysis loop with corrupted ELFs (tests_64928)
  • Fix uaf crash in aaft (tests_64927)
  • Fix UAF in aaft (tests_64923)
  • Fix oobread in VAX disassembler (tests_64920)
  • Fix oobread crash in RAnal.hexagon (tests_64900)

crypto

  • Remove global usage in AES encryption
  • Add AES Key Wrap Algorithm

debug

  • Make the macOS debugger more stable
  • Handle PPID on macOS debugger

diff

  • Add ci commands to compare two rbinobject data

disasm

  • Add disasm+decompiler side by side api for the codemeta api
  • Use hints to follow dwords
  • Add armv7 to the arm.v35 plugin
  • Fix pdi~invalid bug, at least when bbsize > 32
  • Add support for the ALPHA disassembler
  • Add PDP-11 disassembler support from binutils

esil

  • Improvements on the arm64.v35/cs plugins
  • Kill esil [], []= and related operations
  • Fix r2wars regression with REP cycle detection
  • Use sdb_itoa instead of snprintf for emulation

fs

  • Always use b64 encoded filepaths on the fs.io calls

help

  • Add help for the an command

io

  • Add r_io_map_add_bottom
  • Fix mapslit in r_io_map_add
  • Remove r_io_map_new from public API
  • Free maps on r_io_maps_fini
  • apk:// is the new apkall:// (add AndroidManifest.xml)
  • Use io banks by default
  • Speedup repetitive access to the same submap in io banks
  • Speedup r_io_map_get (O(2n) => O(2))
  • Add iobank support to r_io_read_at_mapped
  • Use new rbtree API in io_bank.c
  • Fix io bank cmp cb functions
  • Refix r_io_submap_set_to (typo)
  • Enable io bank support in r_io_map_resize
  • Kill r_io_map_location
  • Enable io bank support in r_io_nread_at
  • Implement r_io_bank_{read_from/write_to}_submap_at
  • Enable io bank support in r_io_v{read/write}_at
  • Enable io bank support in r_io_map_depriorize
  • Implement new r_io_desc_get_byuri() API
  • Enable io-bank support in r_io_map_get_paddr
  • Enable io-banks for r_io_map_del_for_fd
  • Fix return value in io_default close entry
  • Fix resource leak and logic bug in r_io_reopen
  • Check for access bytes in r_io_bank_{read/write}_at
  • Enable io-banks support in r_io_map_remap
  • Enable io-bank support in r_io_map_new
  • Kill r_io_map_add_batch
  • Remove unnecessary return val from r_io_map_del
  • Enable io-bank support in r_io_map_del
  • Rename r_io_map_next_available to r_io_map_locate and add use_banks support
  • Kill r_io_map_next_address
  • Improve r_io_bank_locate for replacing r_io_map_get_next_available
  • Add alignment support to r_io_bank_locate
  • Enable io banks in search; Kill search.in = io.sky.*
  • Add 2 comments for clarification
  • Improve "om"-command, show '*'-marker for current map
  • Implement map depriorization in io banks
    • Add r_io_bank_map_add_bottom and r_io_bank_map_depriorize
    • Fix potential bug in r_io_bank_update_map_boundaries and add some comment for clarification
  • Some cleanup and code deduplication
  • Fix oob write in r_io_bank_{read/write}_at
  • Fix omb-command map ids
  • Initial io.banks management commands
  • Rename r_io_bank_update_map_location to r_io_bank_update_map_boundaries and make it useable for map resize (siol eternal)
  • Some code cleanup (siol eternal)
  • Use incremental timestamp on map creation instead of real ones (siol eternal)
  • Implement r_io_bank_update_map_location (siol eternal)
  • Use r_list_iter_get_prev (siol eternal)
  • Implement r_io_bank_delete_map and fix some bugs (siol eternal)
  • Add r_io_bank_drain (siol eternal)
  • Implement r_io_submap_set{from/to} (siol_eternal) #18476
  • Implement r_io_bank_write_at (siol_eternal)
  • Implement r_io_bank_read_at (siol eternal)
  • Constify bankid and mapid in io-bank api (siol eternal)
  • Imnplement r_io_bank_map_priorize (siol eternal)
  • Speedup r_io_bank_map_add_top (siol eternal)
  • Add missing NULL-check (siol eternal)
  • Fix potential segfault (siol eternal)
  • Adjust codingstyle in libr/io/io_map.c (siol eternal)
  • Implement r_io_bank_locate (siol eternal)
  • Implement r_io_bank_map_add_top and r_io_bank_get (siol eternal)

print

  • Add lowercase seven-segmented-ascii-art alphabet for ?ea
  • Implement ?ef = echo framed text command
  • Add pve command to print values on any endianness

projects

  • Fix a problem serializing vartypes causing analysis info lost
  • Add .rvc_ignore
  • Add an rvc clone command

refactor

  • free/fini methods should return void
  • Cleanup and boolify some more debug apis
  • Boolify RIO.close()
  • Minor refactors in disasm.c, primarily r_core_print_disasm()

rvc

shell

  • Don't check for decompilers in $PATH
  • Honor console width in ls and fix lsj,lsq,lse
  • Add 'dir' command as an alias for 'ls'
  • Permit ending '%' in the env keys for % and @%
  • Handle 'git' command (from system PATH)
  • Better subcommand error messages for @@, @@@ and @@@@
  • Add @@@R to iterate over relocs

signatures

  • Add help message for zac
  • Fix bugs in types validator
  • Fix validation of next sigs
  • Fix leak in sig serialization
  • Simplify deserialization of byte
  • Add more information to var
  • Simplify types storage in r_sign
  • Refactor r_sign
  • Add return type to zj
  • Auto-rename name collisions in

tests

  • Enable R2_DEBUG_ASSERT=1 in r2r
  • Assume tests without FILE= just open -
  • Show instruction and bytes when failing asm tests

types

  • Optimize 'aaft' command, still far from fully optimized
  • Remove ctype.c 2yo deadcode
  • Add more types and skip some parse errors in to

util

  • New API to get fist hex bytes in str
  • Fix signed overflow in r_buf_fread_at
  • Fix UAF in new rbtree api and improve a varname
  • Port https://github.com/leiless/jw_rbtree to r_util (#19252)
  • Implement skip RTable filter
  • Implement ternary support for numeric input
  • Handle base64: prefix in the wtf command

visual

  • Dont loose scroll position when selecting new panels
  • Handle the .r2s extension for visual slides
  • Implement RCore.visual_slides()
  • Fix defining meta backwards in disasm
  • Use RUtil.Str.ss in disasm when scr.demo is set
  • Fix #18384 - Visual arg/var management not working sometimes
  • Fix Vvv output for stackpointer based vars
  • Implement ?ea and ~?ea to use the seven segment ascii art text rendering
radare2 - 5.4.2

Published by trufae about 3 years ago

CI / build and portability

  • Added macos-arm64 (M1) builds into the CI
  • Add configuration file for Vinix builds
  • Improve the CI to keep consistent directory names in dist zips

Windows related fixes

  • Fix w32 and w64 builds by not statically linking the runtime
  • Dynamically load more vista-related APIs to fix w32 startup crash
  • Support VS2019Pro, not only the Community toolchain in preconfigre.bat
  • Arrow keys working again in the prompt
  • Fix crash in dd command in debugger mode

Signatures

kudos to @swoops for those awesome improvements

  • Add support for collision calculations, improving speed in matches
  • rasign2 is now able to generate signatures for archive files (.a)
  • Load signatures from sdb file
  • Implemented 'next' signature types to detect functions based in context

Esil

  • Fix emulation of xchg rax, rax
  • Fix 16 bit pop/push sizes
  • Add aoeq command with just the esil expression
  • Correct FPU and SIMD register types

Shell

  • ls output is now alphabetically sorted
  • Add 'woi' command to inverse the contents of the block
  • Add isotp:// io plugin to let r2 talk to your car.
  • Autocomplete options in asm.assembler
  • Cleanup and fix some uaf bugs in @@@ actions
  • Fix glitch when moving cursor when scr.color=0
  • The o and mg commands now accepts base64: argument
  • Add s. and s.? commands to reload current block (same as s $$)
  • Fix /ai search for arm64 movs instructions
  • Handle ^C in @@ and @@@ as well as in macros
  • Support fish and tcsh

Disasm and Analysis

Kudos to @lazula for properly analyzing and fixing the 15yo disasm bug! great job!

  • Fix a 15 year old bug that was causing invalid disassembly when doing large listings
  • Add anal.cs variable to better support segmented memory addressing
  • Detect inlined strings in immediates using the movabs instruction under some circunstancies
  • Improve x86.nz assembler for better handling register/argument size

RBin

  • Fix loading PE binaries with tiny segments (like 1 byte in size)
  • Projects containing PE binaries don't break after reopening now
  • Add support for COFF files for ARM

Projects

  • Add more tests, ensure projects exists
  • Ravc2 - added rimraf, and reset action

Scripting

  • Fix flagspace issue spotted when using it via r2pipe and ccall://
  • Add REXX scripting support
  • Fix loading r2ghidra when using r2 via r2pipe (RTLD issue only for Linux)
  • Previously the whole configuration was serialized to disk on every command, this is now gone

Security

  • Fix some null derefs found in RCons, RConsGrep
  • Oob read in macho parser
  • Fix crash caused when io.cache was set
  • Support non-PIE builds (required for Vinix)
  • Support any value in http.webui fixing for the new wip webui
  • Add rmrf command for recursively removing directories
Package Rankings
Top 28.19% on Pypi.org
Badges
Extracted from project README
Latest packaged version Tests Status build tcc CII Best Practices Build Status Discord Snap package Termux package Alpine Linux Edge package Alpine Linux 3.19 package Alpine Linux 3.18 package Arch package AUR package EPEL 7 package EPEL 8 package EPEL 9 package Fedora Dev Fedora 40 Fedora 39 FreeBSD port OpenBSD port pkgsrc current package Homebrew package MacPorts package Haiku Ports Void Linux Ubuntu 24.04 package Ubuntu 23.04 package Ubuntu 20.04 package Ubuntu 18.04 package Debian Unstable package Debian 12 package Kali Linux Rolling package