github radareorg/radare2 5.5.0
5.5.0 - 希

latest releases: 5.9.0, 5.8.8, 5.8.6...
2 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
Continue reading ...

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

Don't miss a new radare2 release

NewReleases is sending notifications on new releases.