Radare2 3.1.0 – Release Notes
Version: 3.1.0
From: 3.0.1
To: 3.1.0
Commits: 375
Contributors: 52
Radare2 3.1.0 – New Features & Fixes
Anal
- Improvements arm/thumb analysis
- anal: arm: emulate correctly BX PC in arm32/thumb
- anal: arm: modify r_anal_build_range_on_hints
- anal: arm: handle better anal hints to increase performance
- Use r_return in RAnalOp, reduce some code paths in xrefs search
- axt with a space handles local var xrefs
- Fix #9709 – Implement aeab to get input and output regs of the basic block
- Fix r_core_anal_graph_to and abt, abtj commands
- Fixed ttj feature for printing in JSON
- Set as dword all the jmptbl offsets
- Support overlapping basic blocks in anal.endsize
- Cannot extract reg args if no calling convention is present
- af-* removes jmprefs as well
- Enable invalid insn notification in fcn_recurse and remove warn-near-end break
- Handle alias returns and delay slot for SPARC
- pdf sparse honors anal.jmpmid + afb+ fills op_pos array (x86 only)
- Add new axff command (xrefs from function)
- Check addrs 1-by-1 in pdf sparse code
- Honor anal.jmpmid in r_anal_fcn_bbget_in (fixes test and bug in pdr and graph)
- Fix #10420 – Enable anal.jmpmid and support overlapping bbs
- Improve array indexing in disassembly
- Remove aae dup and enable anal.types.constraint in aaaa
- Small optimization and bugfix when auto-renaming functions
- anal.jmpmid: Continue analysis after jump to middle of instruction
- Use op->val instead of op->ptr in cmp [mem], imm
- Add missing FITFCNSZ in r_anal_fcn_split_bb
- Add new function prelude for ARM thumb
- Implement ARM32/Thumb ESIL for ADR and ADDW
- Fix #11879 – Move aae in aaa
- Check addrs 1-by-1 in pdf sparse code
Asm
- Support REX in NOT instruction for the x86 assembler
- Fix #12239 – crash in the x86.nz assembler
Bin
- Introduce RBinArchOptions to avoid creating fake RBinFile/Objects
- Access last ElfSymbol only after reallocating the array
- Fix #12194 – Resolve symbol names in WebAssembly bins
- New RBin plugin for “symbols” files
- Fix #9825 – Wrong import addresses in the ELF for ppc64 elfs
- Fix some bugs in RBin.mdmp
- Remove deprecated load methods from MZ parser
- Implement load_buffer for MZ parser
- Cleanup and fix the MZ
- Correctly allocate strings when filtering them
- Fix #12082 – infinite loop when loading PE
- Use ht to query strings for the cfstrings
- Refactoring RBin.open/close and RBinOptions
- Improve MSVC detection and demangling
- Another RBin API cleanup
- Fix last gf 4byte write overflow in ELF
- Fix big allocation issue found by googlefuzz in ELF
- Fix #11947 and fix #11945 – Implement iS= and iSq.
- Eliminate unnecessary global in mach0 parser
- Parse the LC_MAIN in rabin2 -H
- Fix googlefuzz crash caused by oob in shdr_link
- Fix loading of entrypoints on some huge mach0s
- Refactoring and optimization for the RBin.language identification
- Fix #11922 – Allocate space for sentinel too
- Fix a crash in the OMF RBin parser
- Lookup for golang and asan traces once
- Fix crash in fuzzed sega master system rom
- Fix crash in the MZ parser found by googlefuzz
- Parse the mach0’s requirements codesign slot
- Fix entry0’s hvaddr for ELF
Build
- Handle libr/libs.custom.mk to make partial r2 builds if you need just a portion of r2
- Fix ios-arm32
- Add –without-libuv and companion flags in ios-static-appstore.sh
- Fix MacOS Mojave User Debugging Problem
- Downgrade credentials when building with sudo
- Add -static for the binaries when –with-libr
- Add io.r2web, io.r2pipe, fs.io and debug.io for iOS
- Fix the build of the iOS SDK
Core
- Fix #12060 and #12072 – Rewrite r_num_abs and r_num_units
- Fix #10324 – Implement RLog API for leveled logging
Debug
- Fix #12022 – Slow backtrace fixed by speeding up ptrace_wrap_func()
- Add dbg.verbose variable to show more info when debugging
- Improve pid_to_task and handle =!pid
- Fix some spawn args escape bugs
Disasm
- Fix ANSI injection vulnerability in pd and pdj
- Fix #12202 – Add asm.maxflags to specify how many flags per offset we want to see
- Fix #11889 – Fix varsub when some ansi escape sequences are involved
- Fix echo in ppc disassembler on invalid instructions
- Honor asm.bb.middle in r_core_print_disasm_instructions()
- Honor asm.bb.middle in r_core_print_disasm_json() / pdfj
- Use fastcall in emustr on function calls
- Fix heap overflow in long asm lines /via radareorg/cutter#803
- Add asm.bb.middle: Realign disasm on bb start
Docs
- Remove legacy issue templates and use modern one’s
- Fixed typo in DEVELOPERS.md
Esil
- Fix zero interrupt issue
Graph
- Fix asm.flags.inbytes not showing in graph
Magic
- Add help in wtf!? and add bitcode magic signature
Panels
- First step to support xrefs in visual panels
Port
- self plugin is now working in DragonFlyBSD
- Support DragonflyBSD build and backtrace
- Adding self proc support for FreeBSD
- Implement , and ; in pf to rewind and be able to support unions
- Fix #12116 – Implement bytesize for pvj
- Add pfj Z format
Projects
- Open radare2 project after loading plugins and keep the -e flags
Refactor
- ELF plugin code cleaning
- Upgrade SDB and use the new HtPP, HtUP, HtUU
- Remove “referenced” from RBinObject and remove get_object
- Move trie, mixed, slist into Sdb’s Attic, and DES from util to crypto
- Remove other unused functions in RBin and make others static
- Cast arguments to ut8 when feeding ctype.h functions
- RBinSection now lives in the heap
- Remove unused functions in iosections
- Remove all S commands
- Use r_return_* in RAnal’s cc and fcn
- Modernize RFlag with asserts, boolified and more
- Initial import of the REvent API
- Remove SR commands
- Fix #11936 – Optimize RCons.hud with cache
- Fix build and start refactor of r_cons_hud()
- Remove Sf command
- Kill anal.bb.align variable
- remove r_bin_load_io2 and rename MODE defines
- Code cleanup in the mach0 parser
- Fix #11881 r_list_length assert for o->libs
- Some code cleanup and asserts in RBin
- Upgrade SDB and use the new HtPP, HtUP, HtUU
- Remove “referenced” from RBinObject and remove get_object
- Remove all S commands
Search
- /Cd is now using a proper bitmask to search the values
- Fix regression in /rc and avoid repeated errors
- Fix #11977 – Handle arg in on /r subcommands
- Fix #11961 – /at swi for unconditional (or cswi)
Types
- ta command now takes an optional offset argument
- Implemented tec command
- Add ttc – dump types in C syntax
- Fix #12166 – Implement tt* to list all types at once
Visual
- Add support for shift-arrows in st and rxvt-unicode
- Fix #12307 – Escape ansi chars in cbin
- Improve the Visual xrefs with from/to disasm and handle JK
- Move the fcn refs visual feature into the view instead of adding more keys
- Fix #12230 – Honor cursor in Vp xX
- Fix #12258 – Fix glitches in VV with |= aka cmd.gprompt
- Get cursor position only if screen_bounds == 1
- Fix VJ scrolling stuck issue
- Improve the visual titlebar in cursor is enabled
- Change the behaviour of V< and V> to make it slurp or dump files
- Initial support for key repetitions in visual mode
- Fix #11552 – Implemlent r_cons_more and refactor some less.c
- Implement scr.scrollbar
- Implement cmd.hexcursor feature
- Add stack.reg and handle pP in Vppc
- Add LL command to lock screen
- Fix the resizing algorithm of panels
- Fix help in panels
- Fix : command
- Change the default panels depending on the analysis
- Null terminate buffer to fix garbage in
psi
,psb
andpsz
- Properly support the Hud in panels ?? && _
- Handle / key in visual panels to set scr.highlight
- Handle ^C in RCons.less
Wasm
- Initial ESIL support for WASM
Windows
- Fix gmtime_r for msvc
- Fix visual panels crash on Windows
- Fix unicode path issues in Windows
Directly related posts: