#### Authors
[3393304070](mailto:49681813+3393304070@users.noreply.github.com) [Abhi](mailto:85984486+AbhiTheModder@users.noreply.github.com) [Adam Satko](mailto:54475808+satk0@users.noreply.github.com) [Azox](mailto:0x8008135@users.noreply.github.com) [Chédotal Julien](mailto:rjdi@wanadoo.fr) [Dennis Goodlett](mailto:128426715+dennis-doyensec@users.noreply.github.com) [Dennis Goodlett](mailto:dennis@doyensec.com) [John Sebastian Peterson](mailto:john.s.peterson@live.com) [Juho Kuisma](mailto:kuisma.juho+github@gmail.com) [Juho Kuisma](mailto:kuisma.juho@gmail.com) [Keegan Saunders](mailto:ksaunders@nowsecure.com) [Lzu Tao](mailto:taolzu@gmail.com) [Marcel Alexandru Nitan](mailto:nitan.marcel@protonmail.com) [Ole André Vadla Ravnås](mailto:oleavr@gmail.com) [Pau RE](mailto:prodrigestivill@gmail.com) [Sarveshwaar SS](mailto:94345639+Saru2003@users.noreply.github.com) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [Valentin Obst](mailto:89150207+vobst@users.noreply.github.com) [Valentin Obst](mailto:valentin.obst@fkie.fraunhofer.de) [astralia](mailto:astraliaz@gmail.com) [condret](mailto:condr3t@protonmail.com) [kcdq](mailto:38067507+cqke@users.noreply.github.com) [maliByatzes](mailto:130395400+maliByatzes@users.noreply.github.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) [satk0](mailto:54475808+satk0@users.noreply.github.com) [satk0](mailto:satko_a@op.pl)
#### Changes
Analysis
- Fix [#21171](https://redirect.github.com/radareorg/radare2/issues/21171) - Infinite loop with -e anal.slow=false workaround
- Support fixed x27 as global pointer reference on Dart binaries
- Fix some arm64 instruction types and LOADs not LEAs for arm64
- Fix memory direction and permissions detection in xref
- Support for jump table constructions for arm64 (Swift binaries)
- Fix invalid esil for add+shift on arm64
- Fix [#23286](https://redirect.github.com/radareorg/radare2/issues/23286) - Add ESIL translation for the MIPS movn instruction
- Fix ESIL for TST and AND v850 instructions
- Expose imm value on ADD/SUB arm64 instructions
- Implement ESIL and reg details for BRAA instructions on arm64
- Default jumptable word size is 32bit if not defined
- Fill the op.val for stm8 ref analysis
- Fix for xrefs permission indicator: -w- r--
- Use flags check esil references on flags in 'aae'
Architecture Support
- Assembler support for m68k
- Fix more x86 assembler instructions
- Added new Dalvik disassembler contribution by Keegan from NowSecure
- Capstone6 support: PowerPC, MIPS, ARM64
- Better TriCore support: fix control-flow-graph, calling conventions, asm.cpu, opex, pseudodisasm support, basic ESIL, and fixed register profile
- Handle asm.syntax=regnum for the arm.cs plugin
- Expose asm.cpu options for bpf, not just depend on asm.bits
- Generic pseudo disasm for non-supported archs
- Fix stm8 pseudo return
- Improvements for the tricore, arm, stm8 and x86 pseudo
- Colorize more stdint types in the ~:)) operator
- Check if value for rasm2 -c asm.cpu is valid and warn the user
- Make rasm2 flags more coherent (-s,-S,-o,-O)
- Fix .ascii and .asciiz directives for rasm2
Binary file formats
- Fix resizing ELF sections
- Detect Dart ELFs
- Fix duplicated and large swift symbol demangling issues
- Clarify bin.demangle.libs -> bin.demangle.pfxlib
- Speedup macho parser by reducing repetitive calls to RConfig.get
- Move lua bin parser, remove globals and refactor its code
- Detect VisionOS binaries
- Better bin.str.(min/max) defaults
Shell
- Replace ia with iA, deprecated 'ia'
- Add help for $?, ?$?, -, ' and improve other command helps
- Enforce valid value for asm.offset.relto
- Handle ^C in agf and afr
- Add -A and -H commands
- Replace "" with ' in more \* subcommands, wip deprecation for safetiness
- Fix .! multiline quoted scripts with the shouting dot
- Add 'test' command with -s, -f, -x and -d flags
- Accept '@ expressions that dont start with '0x'
- Use RCore.returnInvalidCommand in many commands for better error handling
- Add @[@f](https://redirect.github.com/f) (alias for @[@c](https://redirect.github.com/c):afla) inverse recursive function list
- Add f-0x f-? and other flag removal missing commands
- Improved syntax error handling on tmpseek expressions
Build
- Fixes for the webassembly builds for the Frida-trace UI
- Fix preconfigure.bat setuptools installation
- Install setuptools if needed in preconfigure.bat
- Undevilize preconfigure.bat and add MSBuild 2022 Community support
- Use the latest capstone 5.0.3
Crypto
- New commands poE and poD
- Add type definition for CCCrypt import for ios-arm64
- Add new command to print signature of a block
- Refactor listing crypto algorithms into a single function
- Fix rahash2 -B behavior
- Fix more bugs in /ck tire
- Fix oobread in /ck for search/tire
- Add CRC search to magic
- Add [`ed25519`](https://redirect.github.com/radareorg/radare2/commit/ed25519) private key search
Charset
- Add space character ascii.sdb.txt
- Support no string decoding/filtering in disasm, needed for chinese string references
Console
- Also export scr.color via R2\_COLOR env var
- Horziontal scrolling with control+wheel i graph and visual modes
- Emit span instead of font in the scr.html filter
- Add scr.css and scr.css.prefix used in 'ecc' for now
- New dark theme: gruvbox
- Fix eco\* and refactor theme loading logic
Debugger
- Use hwbp by default on mac-x64 (m1 fails)
- Fix xmm?\[hl] (dbg_drt test) for Linux x64
- Add xmm registers for the FreeBSD debugger
- Added registers st0 to st7, mm0 to mm7 while debugging under FreeBSD
- Fix [#23357](https://redirect.github.com/radareorg/radare2/issues/23357) - Add missing flag registers for the freebsd profile
- Fix bug when calling dr8 in the debug.io
- Fix [#23298](https://redirect.github.com/radareorg/radare2/issues/23298) - Breakpoints recoil not working on FreeBSD
Disassembly
- Use sumarized variable listing by default (asm.var.summary=4)
- Support tail addresses in pdua..
- Implement the ano command to manage function annotations
- Fix [#23273](https://redirect.github.com/radareorg/radare2/issues/23273) - Honor scr.strconv in emustr, fncarg and add tests
- Fix [#23012](https://redirect.github.com/radareorg/radare2/issues/23012) - Make pduoj json consistent with pdj
- Improved function argument emulation listing
IO
- Fix [#23405](https://redirect.github.com/radareorg/radare2/issues/23405) - Implement multibyte binary write support in the 'pb' command
- Fix wb single byte write behavior
- Add io.mapinc config variable
- Fix [#23313](https://redirect.github.com/radareorg/radare2/issues/23313) - aeim stack locate
- Fix [#23313](https://redirect.github.com/radareorg/radare2/issues/23313) - overlapping maps after aeim
Print
- Improve and document pfb bitfield printing in C, ascii art, oneliner
- Handle multiline comments in pdsf
- Display strings with 'ps' until first non-printable character instead of escaping
Projects
- Make -p/-P available from the r2 shell and better subcommand handling
- Honor absolute and relative paths in Pze
- Add scr.prompt.prj to show project name
- Save and restore annotations
r2pm
- Honor user env variables, Use git clone depth=1
- Fix [radareorg/radare2-pm#164](https://redirect.github.com/radareorg/radare2-pm/issues/164) - Verboser database/package upgrade r2pm -U / r2pm -UU
- Remove r2pm -HH, use r2pm -H (without argument), same as r2 and in sync with doc
Search
- Add /V value range support in rafind2
- Honor quiet mode to not set noisy flags in /azs
- Implement /xn command to search for repeated patterns
- Implement the /xv\[s] value array search command
- Find longer computed strings with /az
- Add comments (to replace flags) for asm strings
- Implement /azj and add a test
Types
- Fix null format when displaying unknown argument types
- Ignore "signed " prefixed types. signed is the default
- Add missing setuid/setgid signature type definition
Visual
- Better visual xrefs layout
- Fix some emulated reference hints
- Show function name when scrolling inside the function
- Fix the q; function signature bug in Vdf
Other
- Sync $R2\_FILE with 'o.' output
- Add -e cmd.exit to run commands before leaving
- Fix log level details in r2pipe output
- Add script to symbolicate iOS kernels using IPSW
- Update lang.qjs and use quickjs-ng instead
- Update the /m and /t webuis
- Initial implementation of the http sessions
- Deprecate the IS_DIGIT/IS_UPPER/IS_LOWER, we have posix
- Initial pavement for RCorePriv opaque struct
Security
- Fix segfault in hex2bin when length is zero
- Fix assert in some title-less graphs
- Fix null deref in poS
- Fix timeout bug in r2r when fd is closed
- Fix double free in lua bin parser
- Fix /cp segfault on missing key
- Fix invalid free in 'icc'
- Fix a 1 byte overflow in r2cmd and improve logic checks
- Fix another assert in the tricore.cs because of capstone bugs
- Fix null deref bug in the swift demangler
- Dont shift left signed types as reported in bug8 from [#23278](https://redirect.github.com/radareorg/radare2/issues/23278)
- Fix large left shift in buf.sleb as reported in bug7 from [#23278](https://redirect.github.com/radareorg/radare2/issues/23278)
- Fix another left shift UB in uleb aka bug5 from [#23278](https://redirect.github.com/radareorg/radare2/issues/23278)
- Fix addition overflow in ELF relocs as reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) (bug4)
- Fix large left int shift in TE as reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278)
- Fix multiplication overflow in PE as reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278)
- Fix UB in uleb128 left shift reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278)
- Fix [#23277](https://redirect.github.com/radareorg/radare2/issues/23277) - invalid allocation on verdef struct for ELF
- Sometimes functions end up asserting with empty names
- Fix assert in the omni command
- Fix segfault when deallocating arch plugins
- Fix null deref in Lcj
- Fix command injection bug in search hit bug exposed by bad asm string
- Fix memory leak in RLangSession.fini
- Implement ahb\*, use more single quote, fix codeinj vuln and more
#### Authors
[Adel](mailto:buildandcrash@users.noreply.github.com) [Brandon Lin](mailto:blin00@users.noreply.github.com) [Claudio Jeker](mailto:cjeker@diehard.n-r-g.com) [Enno T. Boland](mailto:g@s01.de) [Francesco Tamagni](mailto:mrmacete@protonmail.ch) [Lars Haukli](mailto:lars@flip.re) [Richard Patel](mailto:me@terorie.dev) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [Xavi Artigas](mailto:xavierartigas@yahoo.es) [astralia](mailto:astraliaz@gmail.com) [aviciano](mailto:48008331+aviciano@users.noreply.github.com) [condret](mailto:condr3t@protonmail.com) [ffg53](mailto:ggs121@protonmail.com) [meme](mailto:18178821+meme@users.noreply.github.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) [satk0](mailto:54475808+satk0@users.noreply.github.com) [shurizzle](mailto:shura1991@gmail.com)
#### Changes
**analysis**
- Ignore NEVER bit in branch instructions on SPARC
- Fix SPARC call instruction branches
- Expose mem delta on store variables
- Improved default function names
- Add anal.flagends to stop a functions when flags are found
- Fix aac on rebased files
- Fix aae behaviour on invalid instructions
- Optimize RAnalOp.setBytes with extra sauce for NEWABI
- Fix help for 'abt?'
- Honor codealign in nopskiHonor codealign in nopskip
- Reuse R_PERM in RAnalVarAccess.type instead of custom enum
- Make anal.vinfun false by default
- Show jmptbl bb cases in `ab` output (not just for abj)
- Initial support for MIPS jump tables (anal.jmp.tbl)
- Fix missing arm reference regression in aaaa
- Early stop with breakoninvalid reducing warning logs in 'aaaa'
- More type fixes
- Add more types from posix
- Fix missing entries in the afla matching with aflq
- Add anal.emu to run aaef in aaa and aef in af, for now optional
- Implement missing but documented abi and refactor ab/ap
- Only use anal hints in aac on arm 16/32
- Dont list vars in afij output
- Fix bb outputs computation in afij
- Fix [#22995](https://redirect.github.com/radareorg/radare2/issues/22995) - Dont list vars in afi, we have afv for this
- Register strtonum function type
- Improvements in aaa output and initial work towards twice afva checks
- The sixref command shouldnt change current seek
- Add op-count / bb-ratio info in afi/afij
**api**
- Implement r_base32 APIs for my future self
**arch**
- Initial support for the UXN machine
- Fix few instruction type issues for mips.gnu
- Expose missing cpus list in the ARM plugin
- Add support for sfence.vma instruction for riscv
- Missing read callbacks are now debug messages
**bin**
- Make dynsym and hash sections wordable
- Implement RBin.attr(str2bits)
- Implement RBinPlugin Commands in the new abi via i:
- Return earlier when bin.classes is false
- Use callAt instead of cmdAt for section formats
- Fix [#23064](https://redirect.github.com/radareorg/radare2/issues/23064) - Implemented iclc command
- Fix parsing dmp binaries on big endian systems
- Fix incorrect parsing of MZ headers in big-endian machines
- Tweak the custom swift demangler and fix tests
- Fix Objective-C classes Swift demangling
- Fix [#23110](https://redirect.github.com/radareorg/radare2/issues/23110) - Improve the swift demangler to handle more constructions
- Create sections for dyldcache stub islands
- Set dyldcache entry point to the first map
- Run the native swift demangler tests on darwin-x64 too
- Initial support for RBin->RIO redirections
- Early stop on corrupted macho method storage
- Early catch some missbehaves in the macho class parsing
- Fix iej/ilj on ob\* and remove ieee (use ie;iee instead)
- Fix the symbol parsing in Plan9
- Add dir.sourcebase newabi + faster bin.dbginfo on macOS
- Fix RABIN2\_SWIFTLIB and add tests from r2 and rabin2
- Fix dyldcache deps carving logic
- Make Mach-O size ut64
- Bring back the ig command to guess binary size
- Support resizing the BSS section with rabin2 -O
- Fix hash limit and fix segment hashing iSS
- Fix section hashing and clarify help
- Reduce memory dereferences in the macho parser and more cleanups
- More cleanups on the objc parser, with minor optimizations
- Minor optimizations in the ObjC demangler
**build**
- Also compile for WASI reactor
- Fix cwisstable on ppc-le
**ci**
- Muon build fixes
- Get rid of the deprecated macos-11 github targets
**cons**
- Reimplement internal cfg.editor line editor
- Few fixes for the line editor
- Highlight code modifier ~:))
- Support multiline RCons.message()
- Fix scr.html in pdc
**core**
- Avoid over-unsetting fixed arch / bits
- Add anal.fixed.\* (move anal.gpfixed and add arch/bits ones)
- Don't ask sections if fixed arch / bits set
- Show io and core plugin version in the json listing
- Honor log callback return value on custom callback calls
**crash**
- Fix null deref in `r2 -d l`
- Fix huge allocation when casting int to ut64
- Fix a recently introduced uaf in pdc
- Fix null deref in dbtj
- Fix null deref when running iS without any binobject loaded
- Fix stack overflow in strings search
- Fix infinite loop in the afla command spawned by a^5
- Fix [#22972](https://redirect.github.com/radareorg/radare2/issues/22972) - deadlock in :: fixed by handling ^C
- Each RLogCallback have its own user pointer
- Fix [#22969](https://redirect.github.com/radareorg/radare2/issues/22969) - segfault when running `axt@j>$f`
**crypto**
- Expose the ELF hash algorithm in `rahash2 -a elf`
- Initial support for [`Ed25519`](https://redirect.github.com/radareorg/radare2/commit/Ed25519) signatures
**debug**
- Adjust OpenBSD code to set the process state to be less wrong
- Fix drr - register periscoping on arm-thumb
- Better output for dL command
- Fix infinite loops in the heap parser and fix 2 broken tests
- Initial support for native debugger on Linux/s390x
- Fix the double-increment in the debug traces, avoid double tracing
- Add missing rv64 case for the native debugger
**decompilation**
- Initial support for stm8 pseudo
**decompiler**
- Pseudo for arm64 replacing xzr with zero
- Fix unmatching brace in pdc output
- Add few missing arm64 fpu instructions for pseudo
- Minor fixes for the x86 pseudo parsing
- Remove empty lines and onelinify the comments in pdc
- Better syntax for conditionals and switch/case constructions
- Implement pseudo for arm64 br and ldruh
- One more orphaned basic block in pdc
- bhi and ldrsw for arm64.pseudo
- - More refined goto statements in pdc and add and colorize missing returns
**diff**
- Check and early fail if symbol existance in radiff2-g
**disasm**
- Improve sparc.cs disasm replacing +- with -
- Add test and fix for the arm64 varsub issue
- Fix asm.emu derefenced word issue on big endian
- Fix improper display of IPv4 addresses in big-endian machines
- Store operations also deserve a place for asm.emu
- Honor cfg.json.num in pdbj
- Implement madd/msub/mneg support for arm64.pseudo
- Replace wzr with 0 in the arm.pseudo
- Fix asm.pseudo for arm64's movk
- Display instruction addresses on each switch blocks in pdco
- Initial support for small integer (SMI) anal hints in disasm (ahi)
- Add support for pascal strings meta type Csp
- Honor kernel crash hints in hexpairs for rasm2 -D
**doc**
- Add info about single module recompilation
**emulation**
- Use codeAlign instead of dataAlign for thumb stepping
**endian**
- Fix mdmp list sz
**esil**
- Fix dbg.trace behaviour with emulation
**fs**
- Build fs.squashfs with the make build system too
**graph**
- Remove non-id code from the gml graph output
**help**
- Fix afv help to make it accessible through tghe af?\*
**io**
- Fix io.cache
- Add :iF command to dsc
- Initial support for the UF2 file format
- Improve :iP command usability in dsc
- Refactor the io/oi commands and fix io behaviour
- Add iP command to dsc to get authenticated pointer info
- Fix dsc subcache format detection
- Dont seek from the server side rap
**json**
- Improve the smile operator code tokenizer ~:)
- Use RCorePJ if possible instead of PJ
**lang**
- Support base64 encoded r2js scripts
- Python goes before Python2 in the rlang plugin now
- Fix TS usage by making the exports object point to globals
- Add R2\_PAPI_SCRIPT env var for custom r2papi testing
**panels**
- Add manpage submenus under the Help
- Implement menu separators, project and analysis options
- Better key hints visualization
- Better key hints in for menu, tabs and title selected panel
**print**
- Honor hex.cols in pxb bitdump view
- Add phl/phL as an alias for Lh and update help
**projects**
- Implement prj.history to save/load the per-project command history
**qjs**
- Fix loading some r2frida-compiled scripts
**r2js**
- Fallback the default r2papi when not loaded from disk
- Update r2papi from git, use src from /tmp instead of npm
- Add Visual Studio "map" file parser script
**r2pipe**
- Add missing command to r2 `?`
- Fix r2pipe2 json format not being trimmed
- Add r2.cmd2\[j] APIs for r2js
**r2pm**
- Do not check for updates when r2pm -r, -h and -H
**ragg**
- Fix ragg2 foo.c on macOS
**refactor**
- Replace other r_return_\* uses and update DEVELOPERS.md
- Deprecate r_str_new and R_STR_DUP
**scripts**
- Add an r2js script to import il2cpp metadata
**search**
- Fix ^C in /ac
- Show offset of the truncated large strings
- Fix [#22974](https://redirect.github.com/radareorg/radare2/issues/22974) - minimum blocksize to reduce missing matches in /ad
- Reduce false positive on "java source" magic
- Add a magic file for flutter magics
- /ad supports glob matching now
**shell**
- Fix 'r2pm -r false' because `exit(system("false"))` is a lie
- !! for session history, !. for history save
- Fix move cursor right with arrow keys issue in dietline
- Support '0x, not just '[@0x](https://redirect.github.com/0x) and improve "'?'" help
- Add -D as an alias for iD
- Improve the multiline comment user experience
- Better parsing for the "join" command
- Fix 'rm $foo' and '$foo+=N'
- Improve argument parsing logic for 'tail'
- Fix the tail syscmd
- Rename ib as ooi
- Honor numeric argument in q!! and simplify command logic
- Add a warming help message under the `help` command
- Fix appending redirection on internal alias files
- Fix 'Cannot redirect the same fd twice' bug in the command parser
- Add JSON support to the iD command and improved error handling
- Implement the new fD command to filter/mangle flagnames
- Remove trailing space in aflq output
- Consistent json output with no file, more tests and reorder i? help
- Remove ihh and iHH, no need for confusing swappable aliases
- iSm is no longer a valid command as it was doing nothing
- Handle 'make' as a valid shell command
- Better handling the v subcommands
- Better help and invalid subcommand handling for s
- Autocomplete with tab the "open" argument
- Fix wt, aht help messages and early catch badly formatted help messages
- Add help for aab
- Add help for aax and aaF causing a?\* to be slow
- Fix s+0x1000000000
- Return proper json for some i\*j subcommands when no file or rbin is opened
- Initial implementation of r2pipe2
- Add r2pm hint for r2ai if the package is not installed
**socket**
- Add curl post support and minor http fixes
**tests**
- Run the json tests when loading no files in r2
- Empty strings cant be considered valid json
- Add r2r -H and honor R2R_JOBS as an env replacement for -j
**tools**
- Fix arch selection when loading no files `--` with r2 -a --
- radiff2 -A = aa instead of aaa
- Add rax2 -q to be quiet when printing hexdumps
**types**
- Fix and unify \[err/warn]{xc} function, improves decompilation
**util**
- Add support for "double" type in RTable
**visual**
- Improve Ve glitches on small terminals
- Honor cfg.editor when there's a comment in V;
- Fix bug in V;! not bringing back the mouse
- Add Bit Registers panel
- Initial implementation of ?iu for the onelinered custon UI
- Fix last memleaks, simplify Vz to toggle folding basic blocks
- Fix shift-tab and space behaviour in visual mode
- Improved space key behaviour for the hexdump
- Better error handling in vvs
- Always show function signature in visual disassembly
- Implement soft scrolling over varlisting in visual disasm
- Implement Vbw command to browse window types in visual
**windows**
- Fix [#23093](https://redirect.github.com/radareorg/radare2/issues/23093) - RStdin.slurp() on Windows
**zignatures**
- Make duplicated zignatures optional via zign.dups + tests
**zinatures**
- Add support for parsing next zignatures
#### Authors
[3B85A591](mailto:110870948+3B85A591@users.noreply.github.com) [Jules Maselbas](mailto:jmaselbas@zdiv.net) [Kenny Shen](mailto:kenny@machinesung.com) [Mewt R](mailto:25155631+MewtR@users.noreply.github.com) [MewtR](mailto:25155631+MewtR@users.noreply.github.com) [Mikael Berthe](mailto:mikael@lilotux.net) [Richard Patel](mailto:me@terorie.dev) [Roshanlal](mailto:roshanlaladchitre103@gmail.com) [Sevan Janiyan](mailto:venture37@geeklan.co.uk) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [astralia](mailto:astraliaz@gmail.com) [condret](mailto:condr3t@protonmail.com) [kyufie](mailto:imkyufie@gmail.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com)
#### Changes
**abi**
- Initial implementation of RBuffer.cache
- Add a --with-new-abi, use_new_abi meson option and a CI job
**analysis**
- Fix [#22947](https://redirect.github.com/radareorg/radare2/issues/22947) - afbij now returns an array
- Fix [#22939](https://redirect.github.com/radareorg/radare2/issues/22939) - ub shifts on sixref
- VAX maxinstrsize is 56, assume 64 bytes as maximum valid size
- Dont do aav via aaa on dalvik/java/python
- Fix invalid instructions on mips not recognized as invalid
- SWIs can define branches too
- Honor the optype to fill the opjump field
- Consider that software interrupt sometimes branch
- Honor maxopsz and minopsz in aae, speeding up emulation a little
- Reduce fp, do not run aav when minaddr is zero
- Suggest -B when finding invalid icod refs
- Speedup `ao` by blocksize orders of magnitude
- Catch invalid references earlier
- Fix type confussion bug side effecting arm64 on BE
- Add test for ARM-style jmptbl analysis
- Fix jmptable analysis on ARM
- 0707 is used as padding for the s390 compiler
- Add few function preludes for s390x - aap
**arch**
- Implement R_ARCH_INFO_ISVM
- Implement archinfo callback for Dalvik
- Initial support for stm8
- Add nor in the RAnalOp.toString()
- Provide proper archinfo details for xtensa
- Add missing =BP in the ppc regprofile
- Define aop.type for more s390 instructions
- Fix destination address for the brasil s390 instruction
**asm**
- Add a bunch of tests (ARM)
- Add support for writeback on indexed ldst (ARM)
- Fix mvn (ARM)
- Fix for register-operand shifts (ARM)
**bin**
- Handle another double string case for the lowerdash swift mangling
- Handle more Swift demangler tail attributes
- Improve osabi detection for android
- Handle deinit/dealloc swift mangling attributes
- Implement conformsToProtocol mangling logic for Swift
- Support the 'O' element in the swift demangler
- Improved stripped mach0 detection logic
- Do not parse beyond the end of the ELF dynplt section
- RBinFile.setCurBinFile() accepts null now
- Separate the arm vs arm64 reloc import logic
- Fix [#22865](https://redirect.github.com/radareorg/radare2/issues/22865) - Autodetect thumb main on arm16 elf binaries
- Fix [#22804](https://redirect.github.com/radareorg/radare2/issues/22804) - Implement a couple of relocs for ppc64
- Fix macho strip checks and add more tests
- Honor bin.filter on vectored symbols
- Use RBuffer.cache for mach0 swizzling
- Experiment with ir\* providing reloc write scripts
- Show utf8-blocks details as a separate column in strings listing
- Handle R\_390\_GLOB_DAT R\_390\_RELATIVE relocs for ELF/S390
- Load imports on ELF/s390 from the GOT section
**build**
- Fix git breaking the terminal
- Now sys/user.sh uses rpath and xdg prefix
- Honor NOSUDO and --prefix in sys/install.sh
- Honor --without-syscapstone in pkgconfig even when capstone is found
- Add user-purge target to rimraf user's r2 directories
- Update Windows's preconfigure.bat to autodetect host arch
- Move sys/osx-pkg into dist/macos/pkg
- Fix compilation on native linux-powerpc
- Guard off parts which do no apply to Darwin/PowerPC
- Add rabin2, radiff2 ragg2 and rahash2 to the wapm
**ci**
- Keep Ubuntu20, disable ASLR to workaround a racy asan bug caused by a kernel change
- Upgrade to ubuntu22 for the fuzz jobs
- Bring back the abidiff into the CI pipeline
**cons**
- Remove cursor move on Ctrl-l
- Add support for arrow keys on some terminals
**core**
- Remove the RCconfig(arch.arch) option
**crash**
- Fix some vulns spotted in the swift demangler
- Fix possible strlen (NULL) and reduce few dereferences in RConsGrep
- Fix two format strings receiving less arguments
- Fix [#22932](https://redirect.github.com/radareorg/radare2/issues/22932) - null deref in b64:
- Fix null deref in Vbc
- Fix null deref in CL when no binfile is loaded
- Fix oobread and oobwrite caused by an intovf in coff
- Fix [#22808](https://redirect.github.com/radareorg/radare2/issues/22808) - null deref in r2 -a riscv -c "/ad li a7, 227" clue
- Fix oobreads on fmt of RStr.scanf
- Fix for the infinite loop on windows RCore.fileOpen
- Fix invalid free in 'afl'
**debug**
- Fix segfault in 'drf' command
- Fix [#22831](https://redirect.github.com/radareorg/radare2/issues/22831) - Proper baddr on the FreeBSD debugger
- Add ^be|^le|^me rule in reg profiles to support little, big and middle endianness
- Specify endianness in the RReg instance
- Fix RReg endian bug, fixes debugger in s390 and ppc at least
- Fix unaligned ptrace reads - spotted on s390
**diff**
- Add `wcd` command for patch diffing instruction and sort `wc?` lines
**disasm**
- Don't show zero values as comments
- Fix aii package imports trick when scr.color
- Do not slurp absolute path sources on Apple
- Fix regression in asm.trace.times
- Handle 32 and 64 bit big endian data references (Vdrr1)
- Add asm.bytes.ascii to display instruction bytecodes as text
- Implement soft esil pins, only executed in the disasm loop
**endian**
- Fix [#22933](https://redirect.github.com/radareorg/radare2/issues/22933) - fix endian for c4 comparison
- Fix ahi i for .ipaddr casting instruction arguments in BE
- Fix mips.gnu on BE host
- Fix sparc disassembler for big endian hosts
- Fix reading segment count for ELF
- Fix endian bugs in the tcc enum parser
- Big endian RISC-V dis fix
- Big endian AVR encode fix
- Big endian fix for FLIRT
- Big endian fix for ESIL pokes
**esil**
- Dont use $$ in xtensa
**fun**
- Add some fun fortunes from GLaDOS//portal
**globals**
- Remove all globals from search
- Remove one global from the the esil emulation loop
**graph**
- Hide asm.dwarf.file in the summary graph
**help**
- Improve /?\* and /ad/? helps with 20 more lines
**lang**
- Initial support for Dart in rlang via system
- Initial support for RParse r2js plugins
**port**
- Fix pic_pic18 endian bug
- Fix bpf.mr endian
- Fix ebc_disas endian bugs
**print**
- Fix pfb and RBitmap in big endian
- Implement pdsfs command for strings-only listings
- Implement pdsfj - as the json output for pdsf
- Use proper color palette for prcn/prcb
- Nibble colordump under prcn/prcb. Idea by Patrick Hurd
- Add EBCDIC-ascii table for the new abi via ?ae
**projects**
- Add -P command in the shell and error code on project load
**r2js**
- Initial import of the tags.r2.js script (CTAGS support)
**r2pm**
- Honor R_SYS_DIRSEP in r2pm env var settings for Windows
**ragg2**
- Fix [#22859](https://redirect.github.com/radareorg/radare2/issues/22859) - saving returns w/ immediate string in args + tests
**refactor**
- Fix some memory leak issues in libr/core/cbin.c flagged by coverity
- Replace RaxActions enum with a struct
- Fixing some coverity issues in libr/core/panels.c
**scripts**
- Add unzip script example
**search**
- Make search.verbose=false
**shell**
- iX -> idx, also refactor some i? lines on subcommand helps
- Fix i subcommand help messages
- Fix o
- Show ledec+bedec instruction decoding results from `?`
- mal: manpage listing, markdown renderer, doc/ via man
- Add -k command that mimics r2 -k
- Show 'newabi' in r2 -v
- Show ASAN in -v options when compiling via `gcc`
- Add help for the afii command
- Fix command macro parsing and calling and add another test
- Register command calls in the history logs
- Fix ftw flag tags, broken after the RStr.glob refactoring
**test**
- Fix concurrency issue (improves [`71f57c6`](https://redirect.github.com/radareorg/radare2/commit/71f57c6c))
- Fix concurrency issue
**tools**
- Rename rax2 -L to rax2 -X
- Rename rax2 -I to rax2 -i
- Rename rax2 -B to rax2 -z
- Rename rax2 -l to rax2 -Z
- Rename rax2 -X to rax2 -H
- Rename rax2 -i to rax2 -C
- Rename rax2 = to -b
- Rename rax2 -b to rax2 -l
**visual**
- Fix VA Visual Assembler in debug mode when io.va is false
- Support live hexpairs input in the visual assembler
**webui**
- Fix [#22818](https://redirect.github.com/radareorg/radare2/issues/22818) - Add more mimetypes and avoid (null) from the webserver
**zignatures**
- Fix [#22894](https://redirect.github.com/radareorg/radare2/issues/22894) - Add z, to print zignatures in table format
- Implement 'z\[j\*] ' to show only 1 zignature
#### Authors
[ApkUnpacker](mailto:apkunpacker@gmail.com) [Armin Weihbold](mailto:armin.weihbold@gmail.com) [Armin Weihbold](mailto:koyaan@users.noreply.github.com) [Azox](mailto:0x8008135@users.noreply.github.com) [Begasus](mailto:begasus@gmail.com) [Chiller Dragon](mailto:chillerdragon@gmail.com) [Dennis Goodlett](mailto:128426715+dennis-doyensec@users.noreply.github.com) [Dennis Goodlett](mailto:jesupnotdown+git@gmail.com) [Dirk Eibach](mailto:dirk.eibach@gmx.de) [Dāvis Mosāns](mailto:davispuh@gmail.com) [Erik Griese](mailto:erik.griese@yahoo.de) [Francesco Tamagni](mailto:mrmacete@protonmail.ch) [François Revol](mailto:revol@free.fr) [GravisZro](mailto:noreply+github@adaptivetime.com) [Hertatijanto Hartono](mailto:dvertx@gmail.com) [Kacper Słomiński](mailto:kacper.slominski72@gmail.com) [Lars Haukli](mailto:lars@flip.re) [Lazula](mailto:26179473+Lazula@users.noreply.github.com) [Luc Tielen](mailto:Luc.Tielen@gmail.com) [Luc Tielen](mailto:ltielen@nowsecure.com) [Luc Tielen](mailto:luc.tielen@gmail.com) [Madghostek](mailto:madghostek@gmail.com) [Mewt R](mailto:25155631+MewtR@users.noreply.github.com) [MewtR](mailto:25155631+MewtR@users.noreply.github.com) [Michael Ortmann](mailto:41313082+michaelortmann@users.noreply.github.com) [Murphy](mailto:11234807+as0ler@users.noreply.github.com) [Nathan](mailto:20112968+nathansrf@users.noreply.github.com) [Nikolaos Chatzikonstantinou](mailto:nchatz314@gmail.com) [Omvpatil](mailto:120188097+Omvpatil@users.noreply.github.com) [Pau RE](mailto:prodrigestivill@gmail.com) [Pikachu](mailto:u202012160@hust.edu.cn) [Rami](mailto:72725910+ramikg@users.noreply.github.com) [ReWithMe](mailto:mizunokizu@gmail.com) [Richard Patel](mailto:me@terorie.dev) [RoboSchmied](mailto:github@roboschmie.de) [Sergi Àlvarez i Capilla](mailto:pancake@nowsecure.com) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [Sándor Oroszi](mailto:sandor.oroszi@onekey.com) [Tony O](mailto:822863+bqv@users.noreply.github.com) [Tronciu Vlad](mailto:105599724+TronciuVlad@users.noreply.github.com) [Vasilyy](mailto:v.balyasnyy@gmail.com) [Yiheng Cao](mailto:65160922+Crispy-fried-chicken@users.noreply.github.com) [Yuvraj Saxena](mailto:ysaxenax@gmail.com) [aemmitt-ns](mailto:51972960+aemmitt-ns@users.noreply.github.com) [ashamedbit](mailto:muralianiruddhan@gmail.com) [astralia](mailto:astraliaz@gmail.com) [condret](mailto:condr3t@protonmail.com) [dvertx](mailto:dvertx@gmail.com) [gogolovefish](mailto:64474767+gogolovefish@users.noreply.github.com) [junchao-loongson](mailto:68935141+junchao-loongson@users.noreply.github.com) [kyufie](mailto:imkyufie@gmail.com) [lasek0](mailto:79937932+lasek0@users.noreply.github.com) [meme](mailto:meme@users.noreply.github.com) [micronn](mailto:micronn@gmail.com) [neo-one0873](mailto:50387785+neo-one0873@users.noreply.github.com) [overmyerD](mailto:dalton@raptorpowersystems.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) [phix33](mailto:122955334+phix33@users.noreply.github.com) [ripatel-fd](mailto:ripatel+git@jumptrading.com) [solid-snail](mailto:111242479+solid-snail@users.noreply.github.com) [syheliel](mailto:syheliel@gmail.com) [toni](mailto:48008331+aviciano@users.noreply.github.com) [yep](mailto:nope) [zengwei2000](mailto:102871671+zengwei2000@users.noreply.github.com)
#### 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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/22742) - Implement R_X86\_64\_TPOFF64 reloc type for ELF
- Fix 'reloc conversion failed' on some ELFs
- Fix [#22737](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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
This PR contains the following updates:
5.7.6
->5.9.6
Release Notes
radareorg/radare2 (radareorg/radare2)
### [`v5.9.6`](https://redirect.github.com/radareorg/radare2/releases/tag/5.9.6) [Compare Source](https://redirect.github.com/radareorg/radare2/compare/5.9.4...5.9.6) #### Release Notes Version: 5.9.6 Previous: 5.9.4 Commits: 311 Contributors: 27 ```sh curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.6/radare2-5.9.6.tar.xz | tar xJv radare2-5.9.6/sys/install.sh ``` #### HighlightsMore details
#### Authors [3393304070](mailto:49681813+3393304070@users.noreply.github.com) [Abhi](mailto:85984486+AbhiTheModder@users.noreply.github.com) [Adam Satko](mailto:54475808+satk0@users.noreply.github.com) [Azox](mailto:0x8008135@users.noreply.github.com) [Chédotal Julien](mailto:rjdi@wanadoo.fr) [Dennis Goodlett](mailto:128426715+dennis-doyensec@users.noreply.github.com) [Dennis Goodlett](mailto:dennis@doyensec.com) [John Sebastian Peterson](mailto:john.s.peterson@live.com) [Juho Kuisma](mailto:kuisma.juho+github@gmail.com) [Juho Kuisma](mailto:kuisma.juho@gmail.com) [Keegan Saunders](mailto:ksaunders@nowsecure.com) [Lzu Tao](mailto:taolzu@gmail.com) [Marcel Alexandru Nitan](mailto:nitan.marcel@protonmail.com) [Ole André Vadla Ravnås](mailto:oleavr@gmail.com) [Pau RE](mailto:prodrigestivill@gmail.com) [Sarveshwaar SS](mailto:94345639+Saru2003@users.noreply.github.com) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [Valentin Obst](mailto:89150207+vobst@users.noreply.github.com) [Valentin Obst](mailto:valentin.obst@fkie.fraunhofer.de) [astralia](mailto:astraliaz@gmail.com) [condret](mailto:condr3t@protonmail.com) [kcdq](mailto:38067507+cqke@users.noreply.github.com) [maliByatzes](mailto:130395400+maliByatzes@users.noreply.github.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) [satk0](mailto:54475808+satk0@users.noreply.github.com) [satk0](mailto:satko_a@op.pl) #### Changes Analysis - Fix [#21171](https://redirect.github.com/radareorg/radare2/issues/21171) - Infinite loop with -e anal.slow=false workaround - Support fixed x27 as global pointer reference on Dart binaries - Fix some arm64 instruction types and LOADs not LEAs for arm64 - Fix memory direction and permissions detection in xref - Support for jump table constructions for arm64 (Swift binaries) - Fix invalid esil for add+shift on arm64 - Fix [#23286](https://redirect.github.com/radareorg/radare2/issues/23286) - Add ESIL translation for the MIPS movn instruction - Fix ESIL for TST and AND v850 instructions - Expose imm value on ADD/SUB arm64 instructions - Implement ESIL and reg details for BRAA instructions on arm64 - Default jumptable word size is 32bit if not defined - Fill the op.val for stm8 ref analysis - Fix for xrefs permission indicator: -w- r-- - Use flags check esil references on flags in 'aae' Architecture Support - Assembler support for m68k - Fix more x86 assembler instructions - Added new Dalvik disassembler contribution by Keegan from NowSecure - Capstone6 support: PowerPC, MIPS, ARM64 - Better TriCore support: fix control-flow-graph, calling conventions, asm.cpu, opex, pseudodisasm support, basic ESIL, and fixed register profile - Handle asm.syntax=regnum for the arm.cs plugin - Expose asm.cpu options for bpf, not just depend on asm.bits - Generic pseudo disasm for non-supported archs - Fix stm8 pseudo return - Improvements for the tricore, arm, stm8 and x86 pseudo - Colorize more stdint types in the ~:)) operator - Check if value for rasm2 -c asm.cpu is valid and warn the user - Make rasm2 flags more coherent (-s,-S,-o,-O) - Fix .ascii and .asciiz directives for rasm2 Binary file formats - Fix resizing ELF sections - Detect Dart ELFs - Fix duplicated and large swift symbol demangling issues - Clarify bin.demangle.libs -> bin.demangle.pfxlib - Speedup macho parser by reducing repetitive calls to RConfig.get - Move lua bin parser, remove globals and refactor its code - Detect VisionOS binaries - Better bin.str.(min/max) defaults Shell - Replace ia with iA, deprecated 'ia' - Add help for $?, ?$?, -, ' and improve other command helps - Enforce valid value for asm.offset.relto - Handle ^C in agf and afr - Add -A and -H commands - Replace "" with ' in more \* subcommands, wip deprecation for safetiness - Fix .! multiline quoted scripts with the shouting dot - Add 'test' command with -s, -f, -x and -d flags - Accept '@ expressions that dont start with '0x' - Use RCore.returnInvalidCommand in many commands for better error handling - Add @[@f](https://redirect.github.com/f) (alias for @[@c](https://redirect.github.com/c):afla) inverse recursive function list - Add f-0x f-? and other flag removal missing commands - Improved syntax error handling on tmpseek expressions Build - Fixes for the webassembly builds for the Frida-trace UI - Fix preconfigure.bat setuptools installation - Install setuptools if needed in preconfigure.bat - Undevilize preconfigure.bat and add MSBuild 2022 Community support - Use the latest capstone 5.0.3 Crypto - New commands poE and poD - Add type definition for CCCrypt import for ios-arm64 - Add new command to print signature of a block - Refactor listing crypto algorithms into a single function - Fix rahash2 -B behavior - Fix more bugs in /ck tire - Fix oobread in /ck for search/tire - Add CRC search to magic - Add [`ed25519`](https://redirect.github.com/radareorg/radare2/commit/ed25519) private key search Charset - Add space character ascii.sdb.txt - Support no string decoding/filtering in disasm, needed for chinese string references Console - Also export scr.color via R2\_COLOR env var - Horziontal scrolling with control+wheel i graph and visual modes - Emit span instead of font in the scr.html filter - Add scr.css and scr.css.prefix used in 'ecc' for now - New dark theme: gruvbox - Fix eco\* and refactor theme loading logic Debugger - Use hwbp by default on mac-x64 (m1 fails) - Fix xmm?\[hl] (dbg_drt test) for Linux x64 - Add xmm registers for the FreeBSD debugger - Added registers st0 to st7, mm0 to mm7 while debugging under FreeBSD - Fix [#23357](https://redirect.github.com/radareorg/radare2/issues/23357) - Add missing flag registers for the freebsd profile - Fix bug when calling dr8 in the debug.io - Fix [#23298](https://redirect.github.com/radareorg/radare2/issues/23298) - Breakpoints recoil not working on FreeBSD Disassembly - Use sumarized variable listing by default (asm.var.summary=4) - Support tail addresses in pdua.. - Implement the ano command to manage function annotations - Fix [#23273](https://redirect.github.com/radareorg/radare2/issues/23273) - Honor scr.strconv in emustr, fncarg and add tests - Fix [#23012](https://redirect.github.com/radareorg/radare2/issues/23012) - Make pduoj json consistent with pdj - Improved function argument emulation listing IO - Fix [#23405](https://redirect.github.com/radareorg/radare2/issues/23405) - Implement multibyte binary write support in the 'pb' command - Fix wb single byte write behavior - Add io.mapinc config variable - Fix [#23313](https://redirect.github.com/radareorg/radare2/issues/23313) - aeim stack locate - Fix [#23313](https://redirect.github.com/radareorg/radare2/issues/23313) - overlapping maps after aeim Print - Improve and document pfb bitfield printing in C, ascii art, oneliner - Handle multiline comments in pdsf - Display strings with 'ps' until first non-printable character instead of escaping Projects - Make -p/-P available from the r2 shell and better subcommand handling - Honor absolute and relative paths in Pze - Add scr.prompt.prj to show project name - Save and restore annotations r2pm - Honor user env variables, Use git clone depth=1 - Fix [radareorg/radare2-pm#164](https://redirect.github.com/radareorg/radare2-pm/issues/164) - Verboser database/package upgrade r2pm -U / r2pm -UU - Remove r2pm -HH, use r2pm -H (without argument), same as r2 and in sync with doc Search - Add /V value range support in rafind2 - Honor quiet mode to not set noisy flags in /azs - Implement /xn command to search for repeated patterns - Implement the /xv\[s] value array search command - Find longer computed strings with /az - Add comments (to replace flags) for asm strings - Implement /azj and add a test Types - Fix null format when displaying unknown argument types - Ignore "signed " prefixed types. signed is the default - Add missing setuid/setgid signature type definition Visual - Better visual xrefs layout - Fix some emulated reference hints - Show function name when scrolling inside the function - Fix the q; function signature bug in Vdf Other - Sync $R2\_FILE with 'o.' output - Add -e cmd.exit to run commands before leaving - Fix log level details in r2pipe output - Add script to symbolicate iOS kernels using IPSW - Update lang.qjs and use quickjs-ng instead - Update the /m and /t webuis - Initial implementation of the http sessions - Deprecate the IS_DIGIT/IS_UPPER/IS_LOWER, we have posix - Initial pavement for RCorePriv opaque struct Security - Fix segfault in hex2bin when length is zero - Fix assert in some title-less graphs - Fix null deref in poS - Fix timeout bug in r2r when fd is closed - Fix double free in lua bin parser - Fix /cp segfault on missing key - Fix invalid free in 'icc' - Fix a 1 byte overflow in r2cmd and improve logic checks - Fix another assert in the tricore.cs because of capstone bugs - Fix null deref bug in the swift demangler - Dont shift left signed types as reported in bug8 from [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) - Fix large left shift in buf.sleb as reported in bug7 from [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) - Fix another left shift UB in uleb aka bug5 from [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) - Fix addition overflow in ELF relocs as reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) (bug4) - Fix large left int shift in TE as reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) - Fix multiplication overflow in PE as reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) - Fix UB in uleb128 left shift reported in [#23278](https://redirect.github.com/radareorg/radare2/issues/23278) - Fix [#23277](https://redirect.github.com/radareorg/radare2/issues/23277) - invalid allocation on verdef struct for ELF - Sometimes functions end up asserting with empty names - Fix assert in the omni command - Fix segfault when deallocating arch plugins - Fix null deref in Lcj - Fix command injection bug in search hit bug exposed by bad asm string - Fix memory leak in RLangSession.fini - Implement ahb\*, use more single quote, fix codeinj vuln and more
More details
#### Authors [Adel](mailto:buildandcrash@users.noreply.github.com) [Brandon Lin](mailto:blin00@users.noreply.github.com) [Claudio Jeker](mailto:cjeker@diehard.n-r-g.com) [Enno T. Boland](mailto:g@s01.de) [Francesco Tamagni](mailto:mrmacete@protonmail.ch) [Lars Haukli](mailto:lars@flip.re) [Richard Patel](mailto:me@terorie.dev) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [Xavi Artigas](mailto:xavierartigas@yahoo.es) [astralia](mailto:astraliaz@gmail.com) [aviciano](mailto:48008331+aviciano@users.noreply.github.com) [condret](mailto:condr3t@protonmail.com) [ffg53](mailto:ggs121@protonmail.com) [meme](mailto:18178821+meme@users.noreply.github.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) [satk0](mailto:54475808+satk0@users.noreply.github.com) [shurizzle](mailto:shura1991@gmail.com) #### Changes **analysis** - Ignore NEVER bit in branch instructions on SPARC - Fix SPARC call instruction branches - Expose mem delta on store variables - Improved default function names - Add anal.flagends to stop a functions when flags are found - Fix aac on rebased files - Fix aae behaviour on invalid instructions - Optimize RAnalOp.setBytes with extra sauce for NEWABI - Fix help for 'abt?' - Honor codealign in nopskiHonor codealign in nopskip - Reuse R_PERM in RAnalVarAccess.type instead of custom enum - Make anal.vinfun false by default - Show jmptbl bb cases in `ab` output (not just for abj) - Initial support for MIPS jump tables (anal.jmp.tbl) - Fix missing arm reference regression in aaaa - Early stop with breakoninvalid reducing warning logs in 'aaaa' - More type fixes - Add more types from posix - Fix missing entries in the afla matching with aflq - Add anal.emu to run aaef in aaa and aef in af, for now optional - Implement missing but documented abi and refactor ab/ap - Only use anal hints in aac on arm 16/32 - Dont list vars in afij output - Fix bb outputs computation in afij - Fix [#22995](https://redirect.github.com/radareorg/radare2/issues/22995) - Dont list vars in afi, we have afv for this - Register strtonum function type - Improvements in aaa output and initial work towards twice afva checks - The sixref command shouldnt change current seek - Add op-count / bb-ratio info in afi/afij **api** - Implement r_base32 APIs for my future self **arch** - Initial support for the UXN machine - Fix few instruction type issues for mips.gnu - Expose missing cpus list in the ARM plugin - Add support for sfence.vma instruction for riscv - Missing read callbacks are now debug messages **bin** - Make dynsym and hash sections wordable - Implement RBin.attr(str2bits) - Implement RBinPlugin Commands in the new abi via i: - Return earlier when bin.classes is false - Use callAt instead of cmdAt for section formats - Fix [#23064](https://redirect.github.com/radareorg/radare2/issues/23064) - Implemented iclc command - Fix parsing dmp binaries on big endian systems - Fix incorrect parsing of MZ headers in big-endian machines - Tweak the custom swift demangler and fix tests - Fix Objective-C classes Swift demangling - Fix [#23110](https://redirect.github.com/radareorg/radare2/issues/23110) - Improve the swift demangler to handle more constructions - Create sections for dyldcache stub islands - Set dyldcache entry point to the first map - Run the native swift demangler tests on darwin-x64 too - Initial support for RBin->RIO redirections - Early stop on corrupted macho method storage - Early catch some missbehaves in the macho class parsing - Fix iej/ilj on ob\* and remove ieee (use ie;iee instead) - Fix the symbol parsing in Plan9 - Add dir.sourcebase newabi + faster bin.dbginfo on macOS - Fix RABIN2\_SWIFTLIB and add tests from r2 and rabin2 - Fix dyldcache deps carving logic - Make Mach-O size ut64 - Bring back the ig command to guess binary size - Support resizing the BSS section with rabin2 -O - Fix hash limit and fix segment hashing iSS - Fix section hashing and clarify help - Reduce memory dereferences in the macho parser and more cleanups - More cleanups on the objc parser, with minor optimizations - Minor optimizations in the ObjC demangler **build** - Also compile for WASI reactor - Fix cwisstable on ppc-le **ci** - Muon build fixes - Get rid of the deprecated macos-11 github targets **cons** - Reimplement internal cfg.editor line editor - Few fixes for the line editor - Highlight code modifier ~:)) - Support multiline RCons.message() - Fix scr.html in pdc **core** - Avoid over-unsetting fixed arch / bits - Add anal.fixed.\* (move anal.gpfixed and add arch/bits ones) - Don't ask sections if fixed arch / bits set - Show io and core plugin version in the json listing - Honor log callback return value on custom callback calls **crash** - Fix null deref in `r2 -d l` - Fix huge allocation when casting int to ut64 - Fix a recently introduced uaf in pdc - Fix null deref in dbtj - Fix null deref when running iS without any binobject loaded - Fix stack overflow in strings search - Fix infinite loop in the afla command spawned by a^5 - Fix [#22972](https://redirect.github.com/radareorg/radare2/issues/22972) - deadlock in :: fixed by handling ^C - Each RLogCallback have its own user pointer - Fix [#22969](https://redirect.github.com/radareorg/radare2/issues/22969) - segfault when running `axt@j>$f` **crypto** - Expose the ELF hash algorithm in `rahash2 -a elf` - Initial support for [`Ed25519`](https://redirect.github.com/radareorg/radare2/commit/Ed25519) signatures **debug** - Adjust OpenBSD code to set the process state to be less wrong - Fix drr - register periscoping on arm-thumb - Better output for dL command - Fix infinite loops in the heap parser and fix 2 broken tests - Initial support for native debugger on Linux/s390x - Fix the double-increment in the debug traces, avoid double tracing - Add missing rv64 case for the native debugger **decompilation** - Initial support for stm8 pseudo **decompiler** - Pseudo for arm64 replacing xzr with zero - Fix unmatching brace in pdc output - Add few missing arm64 fpu instructions for pseudo - Minor fixes for the x86 pseudo parsing - Remove empty lines and onelinify the comments in pdc - Better syntax for conditionals and switch/case constructions - Implement pseudo for arm64 br and ldruh - One more orphaned basic block in pdc - bhi and ldrsw for arm64.pseudo - - More refined goto statements in pdc and add and colorize missing returns **diff** - Check and early fail if symbol existance in radiff2-g **disasm** - Improve sparc.cs disasm replacing +- with - - Add test and fix for the arm64 varsub issue - Fix asm.emu derefenced word issue on big endian - Fix improper display of IPv4 addresses in big-endian machines - Store operations also deserve a place for asm.emu - Honor cfg.json.num in pdbj - Implement madd/msub/mneg support for arm64.pseudo - Replace wzr with 0 in the arm.pseudo - Fix asm.pseudo for arm64's movk - Display instruction addresses on each switch blocks in pdco - Initial support for small integer (SMI) anal hints in disasm (ahi) - Add support for pascal strings meta type Csp - Honor kernel crash hints in hexpairs for rasm2 -D
**doc**
- Add info about single module recompilation
**emulation**
- Use codeAlign instead of dataAlign for thumb stepping
**endian**
- Fix mdmp list sz
**esil**
- Fix dbg.trace behaviour with emulation
**fs**
- Build fs.squashfs with the make build system too
**graph**
- Remove non-id code from the gml graph output
**help**
- Fix afv help to make it accessible through tghe af?\*
**io**
- Fix io.cache
- Add :iF command to dsc
- Initial support for the UF2 file format
- Improve :iP command usability in dsc
- Refactor the io/oi commands and fix io behaviour
- Add iP command to dsc to get authenticated pointer info
- Fix dsc subcache format detection
- Dont seek from the server side rap
**json**
- Improve the smile operator code tokenizer ~:)
- Use RCorePJ if possible instead of PJ
**lang**
- Support base64 encoded r2js scripts
- Python goes before Python2 in the rlang plugin now
- Fix TS usage by making the exports object point to globals
- Add R2\_PAPI_SCRIPT env var for custom r2papi testing
**panels**
- Add manpage submenus under the Help
- Implement menu separators, project and analysis options
- Better key hints visualization
- Better key hints in for menu, tabs and title selected panel
**print**
- Honor hex.cols in pxb bitdump view
- Add phl/phL as an alias for Lh and update help
**projects**
- Implement prj.history to save/load the per-project command history
**qjs**
- Fix loading some r2frida-compiled scripts
**r2js**
- Fallback the default r2papi when not loaded from disk
- Update r2papi from git, use src from /tmp instead of npm
- Add Visual Studio "map" file parser script
**r2pipe**
- Add missing command to r2 `?`
- Fix r2pipe2 json format not being trimmed
- Add r2.cmd2\[j] APIs for r2js
**r2pm**
- Do not check for updates when r2pm -r, -h and -H
**ragg**
- Fix ragg2 foo.c on macOS
**refactor**
- Replace other r_return_\* uses and update DEVELOPERS.md
- Deprecate r_str_new and R_STR_DUP
**scripts**
- Add an r2js script to import il2cpp metadata
**search**
- Fix ^C in /ac
- Show offset of the truncated large strings
- Fix [#22974](https://redirect.github.com/radareorg/radare2/issues/22974) - minimum blocksize to reduce missing matches in /ad
- Reduce false positive on "java source" magic
- Add a magic file for flutter magics
- /ad supports glob matching now
**shell**
- Fix 'r2pm -r false' because `exit(system("false"))` is a lie
- !! for session history, !. for history save
- Fix move cursor right with arrow keys issue in dietline
- Support '0x, not just '[@0x](https://redirect.github.com/0x) and improve "'?'" help
- Add -D as an alias for iD
- Improve the multiline comment user experience
- Better parsing for the "join" command
- Fix 'rm $foo' and '$foo+=N'
- Improve argument parsing logic for 'tail'
- Fix the tail syscmd
- Rename ib as ooi
- Honor numeric argument in q!! and simplify command logic
- Add a warming help message under the `help` command
- Fix appending redirection on internal alias files
- Fix 'Cannot redirect the same fd twice' bug in the command parser
- Add JSON support to the iD command and improved error handling
- Implement the new fD command to filter/mangle flagnames
- Remove trailing space in aflq output
- Consistent json output with no file, more tests and reorder i? help
- Remove ihh and iHH, no need for confusing swappable aliases
- iSm is no longer a valid command as it was doing nothing
- Handle 'make' as a valid shell command
- Better handling the v subcommands
- Better help and invalid subcommand handling for s
- Autocomplete with tab the "open" argument
- Fix wt, aht help messages and early catch badly formatted help messages
- Add help for aab
- Add help for aax and aaF causing a?\* to be slow
- Fix s+0x1000000000
- Return proper json for some i\*j subcommands when no file or rbin is opened
- Initial implementation of r2pipe2
- Add r2pm hint for r2ai if the package is not installed
**socket**
- Add curl post support and minor http fixes
**tests**
- Run the json tests when loading no files in r2
- Empty strings cant be considered valid json
- Add r2r -H and honor R2R_JOBS as an env replacement for -j
**tools**
- Fix arch selection when loading no files `--` with r2 -a --
- radiff2 -A = aa instead of aaa
- Add rax2 -q to be quiet when printing hexdumps
**types**
- Fix and unify \[err/warn]{xc} function, improves decompilation
**util**
- Add support for "double" type in RTable
**visual**
- Improve Ve glitches on small terminals
- Honor cfg.editor when there's a comment in V;
- Fix bug in V;! not bringing back the mouse
- Add Bit Registers panel
- Initial implementation of ?iu for the onelinered custon UI
- Fix last memleaks, simplify Vz to toggle folding basic blocks
- Fix shift-tab and space behaviour in visual mode
- Improved space key behaviour for the hexdump
- Better error handling in vvs
- Always show function signature in visual disassembly
- Implement soft scrolling over varlisting in visual disasm
- Implement Vbw command to browse window types in visual
**windows**
- Fix [#23093](https://redirect.github.com/radareorg/radare2/issues/23093) - RStdin.slurp() on Windows
**zignatures**
- Make duplicated zignatures optional via zign.dups + tests
**zinatures**
- Add support for parsing next zignatures
More details
#### Authors [3B85A591](mailto:110870948+3B85A591@users.noreply.github.com) [Jules Maselbas](mailto:jmaselbas@zdiv.net) [Kenny Shen](mailto:kenny@machinesung.com) [Mewt R](mailto:25155631+MewtR@users.noreply.github.com) [MewtR](mailto:25155631+MewtR@users.noreply.github.com) [Mikael Berthe](mailto:mikael@lilotux.net) [Richard Patel](mailto:me@terorie.dev) [Roshanlal](mailto:roshanlaladchitre103@gmail.com) [Sevan Janiyan](mailto:venture37@geeklan.co.uk) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [astralia](mailto:astraliaz@gmail.com) [condret](mailto:condr3t@protonmail.com) [kyufie](mailto:imkyufie@gmail.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) #### Changes **abi** - Initial implementation of RBuffer.cache - Add a --with-new-abi, use_new_abi meson option and a CI job **analysis** - Fix [#22947](https://redirect.github.com/radareorg/radare2/issues/22947) - afbij now returns an array - Fix [#22939](https://redirect.github.com/radareorg/radare2/issues/22939) - ub shifts on sixref - VAX maxinstrsize is 56, assume 64 bytes as maximum valid size - Dont do aav via aaa on dalvik/java/python - Fix invalid instructions on mips not recognized as invalid - SWIs can define branches too - Honor the optype to fill the opjump field - Consider that software interrupt sometimes branch - Honor maxopsz and minopsz in aae, speeding up emulation a little - Reduce fp, do not run aav when minaddr is zero - Suggest -B when finding invalid icod refs - Speedup `ao` by blocksize orders of magnitude - Catch invalid references earlier - Fix type confussion bug side effecting arm64 on BE - Add test for ARM-style jmptbl analysis - Fix jmptable analysis on ARM - 0707 is used as padding for the s390 compiler - Add few function preludes for s390x - aap **arch** - Implement R_ARCH_INFO_ISVM - Implement archinfo callback for Dalvik - Initial support for stm8 - Add nor in the RAnalOp.toString() - Provide proper archinfo details for xtensa - Add missing =BP in the ppc regprofile - Define aop.type for more s390 instructions - Fix destination address for the brasil s390 instruction **asm** - Add a bunch of tests (ARM) - Add support for writeback on indexed ldst (ARM) - Fix mvn (ARM) - Fix for register-operand shifts (ARM) **bin** - Handle another double string case for the lowerdash swift mangling - Handle more Swift demangler tail attributes - Improve osabi detection for android - Handle deinit/dealloc swift mangling attributes - Implement conformsToProtocol mangling logic for Swift - Support the 'O' element in the swift demangler - Improved stripped mach0 detection logic - Do not parse beyond the end of the ELF dynplt section - RBinFile.setCurBinFile() accepts null now - Separate the arm vs arm64 reloc import logic - Fix [#22865](https://redirect.github.com/radareorg/radare2/issues/22865) - Autodetect thumb main on arm16 elf binaries - Fix [#22804](https://redirect.github.com/radareorg/radare2/issues/22804) - Implement a couple of relocs for ppc64 - Fix macho strip checks and add more tests - Honor bin.filter on vectored symbols - Use RBuffer.cache for mach0 swizzling - Experiment with ir\* providing reloc write scripts - Show utf8-blocks details as a separate column in strings listing - Handle R\_390\_GLOB_DAT R\_390\_RELATIVE relocs for ELF/S390 - Load imports on ELF/s390 from the GOT section **build** - Fix git breaking the terminal - Now sys/user.sh uses rpath and xdg prefix - Honor NOSUDO and --prefix in sys/install.sh - Honor --without-syscapstone in pkgconfig even when capstone is found - Add user-purge target to rimraf user's r2 directories - Update Windows's preconfigure.bat to autodetect host arch - Move sys/osx-pkg into dist/macos/pkg - Fix compilation on native linux-powerpc - Guard off parts which do no apply to Darwin/PowerPC - Add rabin2, radiff2 ragg2 and rahash2 to the wapm **ci** - Keep Ubuntu20, disable ASLR to workaround a racy asan bug caused by a kernel change - Upgrade to ubuntu22 for the fuzz jobs - Bring back the abidiff into the CI pipeline **cons** - Remove cursor move on Ctrl-l - Add support for arrow keys on some terminals **core** - Remove the RCconfig(arch.arch) option **crash** - Fix some vulns spotted in the swift demangler - Fix possible strlen (NULL) and reduce few dereferences in RConsGrep - Fix two format strings receiving less arguments - Fix [#22932](https://redirect.github.com/radareorg/radare2/issues/22932) - null deref in b64: - Fix null deref in Vbc - Fix null deref in CL when no binfile is loaded - Fix oobread and oobwrite caused by an intovf in coff - Fix [#22808](https://redirect.github.com/radareorg/radare2/issues/22808) - null deref in r2 -a riscv -c "/ad li a7, 227" clue - Fix oobreads on fmt of RStr.scanf - Fix for the infinite loop on windows RCore.fileOpen - Fix invalid free in 'afl' **debug** - Fix segfault in 'drf' command - Fix [#22831](https://redirect.github.com/radareorg/radare2/issues/22831) - Proper baddr on the FreeBSD debugger - Add ^be|^le|^me rule in reg profiles to support little, big and middle endianness - Specify endianness in the RReg instance - Fix RReg endian bug, fixes debugger in s390 and ppc at least - Fix unaligned ptrace reads - spotted on s390 **diff** - Add `wcd` command for patch diffing instruction and sort `wc?` lines **disasm** - Don't show zero values as comments - Fix aii package imports trick when scr.color - Do not slurp absolute path sources on Apple - Fix regression in asm.trace.times - Handle 32 and 64 bit big endian data references (Vdrr1) - Add asm.bytes.ascii to display instruction bytecodes as text - Implement soft esil pins, only executed in the disasm loop **endian** - Fix [#22933](https://redirect.github.com/radareorg/radare2/issues/22933) - fix endian for c4 comparison - Fix ahi i for .ipaddr casting instruction arguments in BE - Fix mips.gnu on BE host - Fix sparc disassembler for big endian hosts - Fix reading segment count for ELF - Fix endian bugs in the tcc enum parser - Big endian RISC-V dis fix - Big endian AVR encode fix - Big endian fix for FLIRT - Big endian fix for ESIL pokes **esil** - Dont use $$ in xtensa **fun** - Add some fun fortunes from GLaDOS//portal **globals** - Remove all globals from search - Remove one global from the the esil emulation loop **graph** - Hide asm.dwarf.file in the summary graph **help** - Improve /?\* and /ad/? helps with 20 more lines **lang** - Initial support for Dart in rlang via system - Initial support for RParse r2js plugins **port** - Fix pic_pic18 endian bug - Fix bpf.mr endian - Fix ebc_disas endian bugs **print** - Fix pfb and RBitmap in big endian - Implement pdsfs command for strings-only listings - Implement pdsfj - as the json output for pdsf - Use proper color palette for prcn/prcb - Nibble colordump under prcn/prcb. Idea by Patrick Hurd - Add EBCDIC-ascii table for the new abi via ?ae **projects** - Add -P command in the shell and error code on project load **r2js** - Initial import of the tags.r2.js script (CTAGS support) **r2pm** - Honor R_SYS_DIRSEP in r2pm env var settings for Windows **ragg2** - Fix [#22859](https://redirect.github.com/radareorg/radare2/issues/22859) - saving returns w/ immediate string in args + tests **refactor** - Fix some memory leak issues in libr/core/cbin.c flagged by coverity - Replace RaxActions enum with a struct - Fixing some coverity issues in libr/core/panels.c **scripts** - Add unzip script example **search** - Make search.verbose=false **shell** - iX -> idx, also refactor some i? lines on subcommand helps - Fix i subcommand help messages - Fix o
- Show ledec+bedec instruction decoding results from `?`
- mal: manpage listing, markdown renderer, doc/ via man
- Add -k command that mimics r2 -k
- Show 'newabi' in r2 -v
- Show ASAN in -v options when compiling via `gcc`
- Add help for the afii command
- Fix command macro parsing and calling and add another test
- Register command calls in the history logs
- Fix ftw flag tags, broken after the RStr.glob refactoring
**test**
- Fix concurrency issue (improves [`71f57c6`](https://redirect.github.com/radareorg/radare2/commit/71f57c6c))
- Fix concurrency issue
**tools**
- Rename rax2 -L to rax2 -X
- Rename rax2 -I to rax2 -i
- Rename rax2 -B to rax2 -z
- Rename rax2 -l to rax2 -Z
- Rename rax2 -X to rax2 -H
- Rename rax2 -i to rax2 -C
- Rename rax2 = to -b
- Rename rax2 -b to rax2 -l
**visual**
- Fix VA Visual Assembler in debug mode when io.va is false
- Support live hexpairs input in the visual assembler
**webui**
- Fix [#22818](https://redirect.github.com/radareorg/radare2/issues/22818) - Add more mimetypes and avoid (null) from the webserver
**zignatures**
- Fix [#22894](https://redirect.github.com/radareorg/radare2/issues/22894) - Add z, to print zignatures in table format
- Implement 'z\[j\*] ' to show only 1 zignature
More details
#### Authors [ApkUnpacker](mailto:apkunpacker@gmail.com) [Armin Weihbold](mailto:armin.weihbold@gmail.com) [Armin Weihbold](mailto:koyaan@users.noreply.github.com) [Azox](mailto:0x8008135@users.noreply.github.com) [Begasus](mailto:begasus@gmail.com) [Chiller Dragon](mailto:chillerdragon@gmail.com) [Dennis Goodlett](mailto:128426715+dennis-doyensec@users.noreply.github.com) [Dennis Goodlett](mailto:jesupnotdown+git@gmail.com) [Dirk Eibach](mailto:dirk.eibach@gmx.de) [Dāvis Mosāns](mailto:davispuh@gmail.com) [Erik Griese](mailto:erik.griese@yahoo.de) [Francesco Tamagni](mailto:mrmacete@protonmail.ch) [François Revol](mailto:revol@free.fr) [GravisZro](mailto:noreply+github@adaptivetime.com) [Hertatijanto Hartono](mailto:dvertx@gmail.com) [Kacper Słomiński](mailto:kacper.slominski72@gmail.com) [Lars Haukli](mailto:lars@flip.re) [Lazula](mailto:26179473+Lazula@users.noreply.github.com) [Luc Tielen](mailto:Luc.Tielen@gmail.com) [Luc Tielen](mailto:ltielen@nowsecure.com) [Luc Tielen](mailto:luc.tielen@gmail.com) [Madghostek](mailto:madghostek@gmail.com) [Mewt R](mailto:25155631+MewtR@users.noreply.github.com) [MewtR](mailto:25155631+MewtR@users.noreply.github.com) [Michael Ortmann](mailto:41313082+michaelortmann@users.noreply.github.com) [Murphy](mailto:11234807+as0ler@users.noreply.github.com) [Nathan](mailto:20112968+nathansrf@users.noreply.github.com) [Nikolaos Chatzikonstantinou](mailto:nchatz314@gmail.com) [Omvpatil](mailto:120188097+Omvpatil@users.noreply.github.com) [Pau RE](mailto:prodrigestivill@gmail.com) [Pikachu](mailto:u202012160@hust.edu.cn) [Rami](mailto:72725910+ramikg@users.noreply.github.com) [ReWithMe](mailto:mizunokizu@gmail.com) [Richard Patel](mailto:me@terorie.dev) [RoboSchmied](mailto:github@roboschmie.de) [Sergi Àlvarez i Capilla](mailto:pancake@nowsecure.com) [Sylvain Pelissier](mailto:sylvain.pelissier@gmail.com) [Sándor Oroszi](mailto:sandor.oroszi@onekey.com) [Tony O](mailto:822863+bqv@users.noreply.github.com) [Tronciu Vlad](mailto:105599724+TronciuVlad@users.noreply.github.com) [Vasilyy](mailto:v.balyasnyy@gmail.com) [Yiheng Cao](mailto:65160922+Crispy-fried-chicken@users.noreply.github.com) [Yuvraj Saxena](mailto:ysaxenax@gmail.com) [aemmitt-ns](mailto:51972960+aemmitt-ns@users.noreply.github.com) [ashamedbit](mailto:muralianiruddhan@gmail.com) [astralia](mailto:astraliaz@gmail.com) [condret](mailto:condr3t@protonmail.com) [dvertx](mailto:dvertx@gmail.com) [gogolovefish](mailto:64474767+gogolovefish@users.noreply.github.com) [junchao-loongson](mailto:68935141+junchao-loongson@users.noreply.github.com) [kyufie](mailto:imkyufie@gmail.com) [lasek0](mailto:79937932+lasek0@users.noreply.github.com) [meme](mailto:meme@users.noreply.github.com) [micronn](mailto:micronn@gmail.com) [neo-one0873](mailto:50387785+neo-one0873@users.noreply.github.com) [overmyerD](mailto:dalton@raptorpowersystems.com) [pancake](mailto:pancake@nopcode.org) [pancake](mailto:pancake@nowsecure.com) [phix33](mailto:122955334+phix33@users.noreply.github.com) [ripatel-fd](mailto:ripatel+git@jumptrading.com) [solid-snail](mailto:111242479+solid-snail@users.noreply.github.com) [syheliel](mailto:syheliel@gmail.com) [toni](mailto:48008331+aviciano@users.noreply.github.com) [yep](mailto:nope) [zengwei2000](mailto:102871671+zengwei2000@users.noreply.github.com) #### 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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/22742) - Implement R_X86\_64\_TPOFF64 reloc type for ELF - Fix 'reloc conversion failed' on some ELFs - Fix [#22737](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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](https://redirect.github.com/radareorg/radare2/issues/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