This is a minor bug fix release after 5.1.0 was out. But as usual it comes with some new features! Contents are mainly bug fixes and behaviour and abi compat should be fine 5.0.0, this is, all the built packages for 5.1.x will work. Highlights:
New Stuff
UDS Search
The new /cu command search for UDS tables useful for reverse engineering ECU firmwares. The code has been taken from binbloom and integrated as all the other search commands in r2, so you can have json, quiet, and r2 commands outputs for it.
- Add /cu[qj*] and r_search_find_uds API
Color2g graph nodes
This feature has been there for more than 10 years, but barely tested or used, after a user request and some testing the afbc command to improve to support specifying the color by name or following the CSS syntax like its supported in the color themes.
In addition the @ key have been handled in the graph view to toggle graph.layout variable, so you can easily rotate between portrait and landscape modes.
Visual Gameboy 2bpp Pixmaps
You can now use the visual mode to search for 2bpp bitmaps usually embedded in Gameboy roms. This is part of the retro-r2 project which aims to improve the support for old game consoles
Encoding charsets
The custom charset encoding support have been extended over the w
command to be able to encode an ascii string into pokered charset encoding and write it directly. The decoding support was already added in ps
, and the integration and improvement of this feature will slowly come in next releases, as it fits into the retro-r2 plan and has been a long awaited feature by the rom hacking scene. Kudos @gogo2464 for that stuff!
Reverse Shell
Do you need to get access to a shell on a machine under nat or firewall? Try out the new =r
command! it will take the host:port as argument and try to connect there to expose an r2 shell. This was implemented to get a shell in the GHA CI to debug an issue, but I guess this feature could have more uses :)
Other Improvements
Analysis
- Allow to analyze bigger functions by reducing the stackframe usage and using anal.depth better
- Reclassify some AVR instructions away from SWI
Assembler
With the aim in mind to cook gameboy roms with just rasm2, the assembler directives have been documented in the help message and manpage, the .fill one now works with only 1 parameter.
- Improve .fill and rasm2 -hh with documented directives
- Refactor and cleanup the z80 assembler
bin
- Faster mach0 and dyldcache parsers
- Fix iCj for mach0
build
- Fix a credentials downgrade problem in Install.sh
- Introduce w32 and w64 in the CI
- Add Windows ZIP in the CI (#18310)
- Assign radare2 binr target
- Support statically linking system OpenSSL
- Define PYC_ROOT and WASM_ROOT (#18290)
shell
- Add print, println, and placeholder for printf and printfln