tag:github.com,2008:https://github.com/radareorg/radare2/releasesRelease notes from radare22024-11-19T11:38:30Ztag:github.com,2008:Repository/4869294/5.9.82024-11-19T12:08:39Z5.9.8<h2>Release Notes</h2>
<p>Version: 5.9.8<br>
Previous: 5.9.6<br>
Commits: 202<br>
Contributors: 15</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.8/radare2-5.9.8.tar.xz | tar xJv
radare2-5.9.8/sys/install.sh"><pre>curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.8/radare2-5.9.8.tar.xz <span class="pl-k">|</span> tar xJv
radare2-5.9.8/sys/install.sh</pre></div>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p>
<h2>Authors</h2>
<p><a href="mailto:54475808+satk0@users.noreply.github.com">Adam Satko</a> <a href="mailto:0x8008135@users.noreply.github.com">Azox</a> <a href="mailto:rjdi@wanadoo.fr">Chédotal Julien</a> <a href="mailto:juho.kuisma@csc.fi">Juho Kuisma</a> <a href="mailto:569494+qkaiser@users.noreply.github.com">Quentin Kaiser</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:46626766+W0nda@users.noreply.github.com">W0nda</a> <a href="mailto:astraliaz@gmail.com">astralia</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a> <a href="mailto:satko_a@op.pl">satk0</a> <a href="mailto:sha0c0d3r@gmail.com">sha0coder</a> <a href="mailto:pit95@pm.me">suidpit</a> <a href="mailto:w@104d.net">wagner riffel</a></p>
<h2>Changes</h2>
<p><strong>analysis</strong></p>
<ul>
<li>Add array of values for arguments in aobj</li>
<li>Fix aobj representing undefined behaviour bits</li>
<li>Fix string ref direction and improve false positive xref types</li>
<li>Better indirect code reference detection via flags</li>
<li>Skip string/format/data metatypes from the ref analysis</li>
<li>Fix false positive string ref spotted as write</li>
<li>Fix 'aa' warning when no sections in binobj</li>
<li>Make afvt work with 1 parameter to display the type, instead of silently failing</li>
<li>Add recursive information in afi</li>
<li>Implement aflmr command to list all recursive functions</li>
<li>Fixes for the stm8 calling convention</li>
<li>Add aflmu command to list function calls once</li>
<li>Handle direction and support pointer RAM references for stm8</li>
<li>Disable indirect pointer references for stm8</li>
<li>Implement 'afln' command to list all function names</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Add parse.pickle plugin</li>
<li>Add the gb.pseudo plugin</li>
<li>Fix more issues for stm8.pseudo</li>
<li>Add pseudo for rvf stm8 instruction</li>
<li>Clarify STM8 memory access, references and immediates in disasm</li>
<li>LOADs can be STOREs too in stm8land</li>
<li>Use [] syntax instead of the confusing () for stm8</li>
<li>In stm8 use brackets for memory writes with mov</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2616446880" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23538" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23538/hovercard" href="https://github.com/radareorg/radare2/issues/23538">#23538</a> - iS sha1,sha1/sort/inc table queries + entropy</li>
<li>Cache sections in dwarf parser</li>
<li>Handle table queries for imports and segments</li>
<li>Use raw symbol name in flatItem.realname instead of the flag name</li>
<li>Add math category imports (and few more string)</li>
<li>Improve iic subcommands for listing uniq xrefs and more</li>
<li>Improve iic command for classifying imports</li>
<li>Fix crash in 'iic' and add more import types</li>
<li>Fix RVA to offset conversion on PE binaries</li>
<li>Remove a hack that breaks parsing sections in some PE</li>
</ul>
<p><strong>bug</strong></p>
<ul>
<li>Fix broken test exposing reentrant RNum.math glitch</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2645978291" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23622" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23622/hovercard" href="https://github.com/radareorg/radare2/issues/23622">#23622</a> - Use USEMESON when builddir contain spaces</li>
<li>Fix make purge</li>
<li>Aim to fix the duplicated sha symbols from rvc cyclic dep</li>
<li>Correct OpenSSL imports</li>
<li>Fix qjs when using asan</li>
<li>Fix qjs symbols visibility</li>
<li>Define cstd for meson-w32</li>
<li>Install scripts</li>
</ul>
<p><strong>config</strong></p>
<ul>
<li>-e log.level accept strings too</li>
<li>Use XDG cachedir and expose it via dir.cache for annotations</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2630440764" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23588" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23588/hovercard" href="https://github.com/radareorg/radare2/issues/23588">#23588</a> - remove empty lines when sorting and add grep+end test</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2659868866" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23639" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23639/hovercard" href="https://github.com/radareorg/radare2/issues/23639">#23639</a> - Implement e+ command to set config vars in r2rc</li>
<li>Increase float and double precision</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2670335416" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23657" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23657/hovercard" href="https://github.com/radareorg/radare2/issues/23657">#23657</a> - Command injection vulnerability via rbin->r2</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2629263416" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23581" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23581/hovercard" href="https://github.com/radareorg/radare2/issues/23581">#23581</a> - Infinite loop with unsupported dwarf command</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2629263416" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23581" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23581/hovercard" href="https://github.com/radareorg/radare2/issues/23581">#23581</a> - (again) bin3 dwarf infinite loop</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2629263416" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23581" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23581/hovercard" href="https://github.com/radareorg/radare2/issues/23581">#23581</a> - (again) another infinite loop in the dwarf parser</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2629263416" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23581" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23581/hovercard" href="https://github.com/radareorg/radare2/issues/23581">#23581</a> - (again) another infinite loop in the dwarf parser</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2637973718" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23610" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23610/hovercard" href="https://github.com/radareorg/radare2/issues/23610">#23610</a> - Stop parsing compressed DWARF sections</li>
<li>Disable fortunes in sandbox mode, better null checks</li>
<li>Lots of small improvements and bug fixes in the dwarf parser</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2629263416" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23581" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23581/hovercard" href="https://github.com/radareorg/radare2/issues/23581">#23581</a> - DoS in DWARF parser</li>
<li>Fix infinite loop in pdc (pseudo decompilation)</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2613636869" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23529" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23529/hovercard" href="https://github.com/radareorg/radare2/issues/23529">#23529</a> - Stack exhaustion overflow in the c++ demangler</li>
</ul>
<p><strong>crypto</strong></p>
<ul>
<li>Simplify print hash</li>
<li>Update cipher plugin descriptions</li>
<li>Add ssl builds in the CI and add the SipHash SSL plugin</li>
<li>Create sip hash plugin</li>
<li>ASN.1 display corrections + fix tests</li>
<li>Correct print strhash</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1841230964" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22140" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22140/hovercard" href="https://github.com/radareorg/radare2/issues/22140">#22140</a> - Add bech32 encoding/decoding</li>
<li>Update algorithm descriptions</li>
<li>Add offset on MK hit for SM4</li>
<li>ASN.1 printings enhancements</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Revert <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/radareorg/radare2/commit/e0b197766811db0952d243b2df36969d34cee36e/hovercard" href="https://github.com/radareorg/radare2/commit/e0b197766811db0952d243b2df36969d34cee36e"><tt>e0b1977</tt></a> - bring back the full IO address space</li>
<li>Stop earlier in glibc checks in dmh</li>
<li>Fix dra? in debugger mode (exposed by ?*)</li>
</ul>
<p><strong>decompiler</strong></p>
<ul>
<li>Fix some broken gotos in pdc</li>
<li>Include callconv information in pdc output</li>
<li>Honor afs in pdc</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Fix false positive in op.ptr(char) reference</li>
<li>Add asm.cmt.wrap to ignore asm.cmt.right on long comments</li>
<li>Implement asm.cmt.pseudo config option</li>
</ul>
<p><strong>doc</strong></p>
<ul>
<li>Use SPDX license names for RLang plugins</li>
<li>Use SPDX namings for crypto, and list them in Vj</li>
<li>Use SPDX license namings in all the arch plugins</li>
<li>Use SPDX license namings on all the bin plugins</li>
<li>Use SPDX naming in all IO plugins</li>
<li>Fix segfault in dL and use SPDX namings on all debug plugins</li>
<li>Initial import of the scripts/licenses.r2.js</li>
</ul>
<p><strong>dwarf</strong></p>
<ul>
<li>Fix DWARF5 file parsing</li>
<li>Fix DWARF5 parsing when a MD5 checksum is present</li>
</ul>
<p><strong>fs</strong></p>
<ul>
<li>Dont load empty fs plugins</li>
</ul>
<p><strong>globals</strong></p>
<ul>
<li>Remove globals in RCore.cmdMeta</li>
</ul>
<p><strong>io</strong></p>
<ul>
<li>Minor fixes in io</li>
<li>Minor optimization in r_io_bank_locate</li>
<li>Give local seek to iobfd</li>
<li>Use R_IO_SEEK instead of SEEK</li>
<li>Undo some ret2libc harm</li>
<li>Dont priorize null:// maps on macho binaries</li>
<li>Honor custom seek when map address is set</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Handle base64: in #!-e</li>
<li>Fix #!python -e </li>
</ul>
<p><strong>lint</strong></p>
<ul>
<li>Add script for linting assert lines on all R_APIs</li>
</ul>
<p><strong>performance</strong></p>
<ul>
<li>Minor optimizations in RBuffer.bytes</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Import charsets from imhex</li>
<li>Fixed old_offset not restored on pdj</li>
<li>Improve error handling in pfb strings</li>
</ul>
<p><strong>projects</strong></p>
<ul>
<li>Save/restore comments in the new projects</li>
<li>New prj core plugin as PoC</li>
<li>Inform about the project path before removing</li>
<li>Honor prj.files in o*</li>
<li>Fix copying main executable when prj.files is set</li>
</ul>
<p><strong>r2js</strong></p>
<ul>
<li>Update to the latest quickjs-ng and pin commit to fix vs2022 build</li>
<li>Update to the latest quickjs-ng, so we dont need to ship custom patches</li>
<li>Fix "TypeError: not a function" error with an ugly hack</li>
<li>Update r2papi to the test version from git</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Add /h* and make /h behave like the rest</li>
<li>Add /abf to search loops in current function</li>
<li>Display SM4 master key when found</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Better handling invalid subcommands</li>
<li>Handle table queries for strings in "iz,"</li>
<li>Handle comma subcommand for "ic"</li>
<li>Support @% for reading variables too</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2622352468" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23561" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23561/hovercard" href="https://github.com/radareorg/radare2/issues/23561">#23561</a> - report 'drq' as an invalid command</li>
<li>Improve and extend $D numvars</li>
<li>Extended $M numvars</li>
<li>Refactor and improve $F and $B numvars</li>
<li>Refactor, improve and extend all the $S numvars</li>
<li>Refactor and extend the numvars for flags</li>
<li>Refactor instruction $variables under $i</li>
<li>Cleanup, handle errors and support : syntax for $k{}</li>
<li>Refactor and extend few RNum <math-renderer class="js-inline-math" style="display: inline-block" data-static-url="https://github.githubassets.com/static" data-run-id="8d0fb82783e106701e490fba46626254">$O-&gt;$</math-renderer>$c|$$$c + error handling</li>
<li>Fix xdg cachedir and histfile path issues</li>
<li>Fix invalid command error message when subcommand is the null char</li>
<li>Fix "?E C.." bug in clippy</li>
<li>Don't show license column in r2 -L. use json to get author+license</li>
<li>Handle more invalid subcommands under 'a'</li>
<li>Invalid h subcommands dont flush the error text</li>
<li>Fix all the plugins listing in r2 -Vj</li>
</ul>
<p><strong>test</strong></p>
<ul>
<li>Set pager to cat in sys/lint.sh</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>Add 'stdouterr' directive in rarun2</li>
<li>Add r2 -1 to redirect stderr into stdout</li>
</ul>
<p><strong>util</strong></p>
<ul>
<li>Initial implementation of the new LZ4 implementation</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Implement yank/paste in visual bit editor</li>
<li>Implement endian swap in visual bit editor</li>
<li>Support multibyte inc/dec with Vd1[+-]</li>
<li>Implement word size concept in the visual bit editor</li>
<li>Implement Vd1! to toggle all bits from the selected byte</li>
<li>Handle [] and ; keys in Vv</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.9.62024-10-13T22:27:45Z5.9.6<h2>Release Notes</h2>
<p>Version: 5.9.6<br>
Previous: 5.9.4<br>
Commits: 311<br>
Contributors: 27</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="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"><pre>curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.6/radare2-5.9.6.tar.xz <span class="pl-k">|</span> tar xJv
radare2-5.9.6/sys/install.sh</pre></div>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p>
<h2>Authors</h2>
<p><a href="mailto:49681813+3393304070@users.noreply.github.com">3393304070</a> <a href="mailto:85984486+AbhiTheModder@users.noreply.github.com">Abhi</a> <a href="mailto:54475808+satk0@users.noreply.github.com">Adam Satko</a> <a href="mailto:0x8008135@users.noreply.github.com">Azox</a> <a href="mailto:rjdi@wanadoo.fr">Chédotal Julien</a> <a href="mailto:128426715+dennis-doyensec@users.noreply.github.com">Dennis Goodlett</a> <a href="mailto:dennis@doyensec.com">Dennis Goodlett</a> <a href="mailto:john.s.peterson@live.com">John Sebastian Peterson</a> <a href="mailto:kuisma.juho+github@gmail.com">Juho Kuisma</a> <a href="mailto:kuisma.juho@gmail.com">Juho Kuisma</a> <a href="mailto:ksaunders@nowsecure.com">Keegan Saunders</a> <a href="mailto:taolzu@gmail.com">Lzu Tao</a> <a href="mailto:nitan.marcel@protonmail.com">Marcel Alexandru Nitan</a> <a href="mailto:oleavr@gmail.com">Ole André Vadla Ravnås</a> <a href="mailto:prodrigestivill@gmail.com">Pau RE</a> <a href="mailto:94345639+Saru2003@users.noreply.github.com">Sarveshwaar SS</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:89150207+vobst@users.noreply.github.com">Valentin Obst</a> <a href="mailto:valentin.obst@fkie.fraunhofer.de">Valentin Obst</a> <a href="mailto:astraliaz@gmail.com">astralia</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:38067507+cqke@users.noreply.github.com">kcdq</a> <a href="mailto:130395400+maliByatzes@users.noreply.github.com">maliByatzes</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a> <a href="mailto:54475808+satk0@users.noreply.github.com">satk0</a> <a href="mailto:satko_a@op.pl">satk0</a></p>
<h2>Changes</h2>
<p>Analysis</p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1494940982" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21171" data-hovercard-type="pull_request" data-hovercard-url="/radareorg/radare2/pull/21171/hovercard" href="https://github.com/radareorg/radare2/pull/21171">#21171</a> - Infinite loop with -e anal.slow=false workaround</li>
<li>Support fixed x27 as global pointer reference on Dart binaries</li>
<li>Fix some arm64 instruction types and LOADs not LEAs for arm64</li>
<li>Fix memory direction and permissions detection in xref</li>
<li>Support for jump table constructions for arm64 (Swift binaries)</li>
<li>Fix invalid esil for add+shift on arm64</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2508855563" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23286" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23286/hovercard" href="https://github.com/radareorg/radare2/issues/23286">#23286</a> - Add ESIL translation for the MIPS movn instruction</li>
<li>Fix ESIL for TST and AND v850 instructions</li>
<li>Expose imm value on ADD/SUB arm64 instructions</li>
<li>Implement ESIL and reg details for BRAA instructions on arm64</li>
<li>Default jumptable word size is 32bit if not defined</li>
<li>Fill the op.val for stm8 ref analysis</li>
<li>Fix for xrefs permission indicator: -w- r--</li>
<li>Use flags check esil references on flags in 'aae'</li>
</ul>
<p>Architecture Support</p>
<ul>
<li>Assembler support for m68k</li>
<li>Fix more x86 assembler instructions</li>
<li>Added new Dalvik disassembler contribution by Keegan from NowSecure</li>
<li>Capstone6 support: PowerPC, MIPS, ARM64</li>
<li>Better TriCore support: fix control-flow-graph, calling conventions, asm.cpu, opex, pseudodisasm support, basic ESIL, and fixed register profile</li>
<li>Handle asm.syntax=regnum for the arm.cs plugin</li>
<li>Expose asm.cpu options for bpf, not just depend on asm.bits</li>
<li>Generic pseudo disasm for non-supported archs</li>
<li>Fix stm8 pseudo return</li>
<li>Improvements for the tricore, arm, stm8 and x86 pseudo</li>
<li>Colorize more stdint types in the ~:)) operator</li>
<li>Check if value for rasm2 -c asm.cpu is valid and warn the user</li>
<li>Make rasm2 flags more coherent (-s,-S,-o,-O)</li>
<li>Fix .ascii and .asciiz directives for rasm2</li>
</ul>
<p>Binary file formats</p>
<ul>
<li>Fix resizing ELF sections</li>
<li>Detect Dart ELFs</li>
<li>Fix duplicated and large swift symbol demangling issues</li>
<li>Clarify bin.demangle.libs -> bin.demangle.pfxlib</li>
<li>Speedup macho parser by reducing repetitive calls to RConfig.get</li>
<li>Move lua bin parser, remove globals and refactor its code</li>
<li>Detect VisionOS binaries</li>
<li>Better bin.str.(min/max) defaults</li>
</ul>
<p>Shell</p>
<ul>
<li>Replace ia with iA, deprecated 'ia'</li>
<li>Add help for $?, ?$?, -, ' and improve other command helps</li>
<li>Enforce valid value for asm.offset.relto</li>
<li>Handle ^C in agf and afr</li>
<li>Add -A and -H commands</li>
<li>Replace "" with ' in more * subcommands, wip deprecation for safetiness</li>
<li>Fix .! multiline quoted scripts with the shouting dot</li>
<li>Add 'test' command with -s, -f, -x and -d flags</li>
<li>Accept '@ expressions that dont start with '0x'</li>
<li>Use RCore.returnInvalidCommand in many commands for better error handling</li>
<li>Add @<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/f/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/f">@f</a> (alias for @@c:afla) inverse recursive function list</li>
<li>Add f-0x f-? and other flag removal missing commands</li>
<li>Improved syntax error handling on tmpseek expressions</li>
</ul>
<p>Build</p>
<ul>
<li>Fixes for the webassembly builds for the Frida-trace UI</li>
<li>Fix preconfigure.bat setuptools installation</li>
<li>Install setuptools if needed in preconfigure.bat</li>
<li>Undevilize preconfigure.bat and add MSBuild 2022 Community support</li>
<li>Use the latest capstone 5.0.3</li>
</ul>
<p>Crypto</p>
<ul>
<li>New commands poE and poD</li>
<li>Add type definition for CCCrypt import for ios-arm64</li>
<li>Add new command to print signature of a block</li>
<li>Refactor listing crypto algorithms into a single function</li>
<li>Fix rahash2 -B behavior</li>
<li>Fix more bugs in /ck tire</li>
<li>Fix oobread in /ck for search/tire</li>
<li>Add CRC search to magic</li>
<li>Add ed25519 private key search</li>
</ul>
<p>Charset</p>
<ul>
<li>Add space character ascii.sdb.txt</li>
<li>Support no string decoding/filtering in disasm, needed for chinese string references</li>
</ul>
<p>Console</p>
<ul>
<li>Also export scr.color via R2_COLOR env var</li>
<li>Horziontal scrolling with control+wheel i graph and visual modes</li>
<li>Emit span instead of font in the scr.html filter</li>
<li>Add scr.css and scr.css.prefix used in 'ecc' for now</li>
<li>New dark theme: gruvbox</li>
<li>Fix eco* and refactor theme loading logic</li>
</ul>
<p>Debugger</p>
<ul>
<li>Use hwbp by default on mac-x64 (m1 fails)</li>
<li>Fix xmm?[hl] (dbg_drt test) for Linux x64</li>
<li>Add xmm registers for the FreeBSD debugger</li>
<li>Added registers st0 to st7, mm0 to mm7 while debugging under FreeBSD</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2536988359" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23357" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23357/hovercard" href="https://github.com/radareorg/radare2/issues/23357">#23357</a> - Add missing flag registers for the freebsd profile</li>
<li>Fix bug when calling dr8 in the debug.io</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2512014863" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23298" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23298/hovercard" href="https://github.com/radareorg/radare2/issues/23298">#23298</a> - Breakpoints recoil not working on FreeBSD</li>
</ul>
<p>Disassembly</p>
<ul>
<li>Use sumarized variable listing by default (asm.var.summary=4)</li>
<li>Support tail addresses in pdua..</li>
<li>Implement the ano command to manage function annotations</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2501785450" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23273" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23273/hovercard" href="https://github.com/radareorg/radare2/issues/23273">#23273</a> - Honor scr.strconv in emustr, fncarg and add tests</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2338871235" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23012" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23012/hovercard" href="https://github.com/radareorg/radare2/issues/23012">#23012</a> - Make pduoj json consistent with pdj</li>
<li>Improved function argument emulation listing</li>
</ul>
<p>IO</p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2555048856" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23405" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23405/hovercard" href="https://github.com/radareorg/radare2/issues/23405">#23405</a> - Implement multibyte binary write support in the 'pb' command</li>
<li>Fix wb single byte write behavior</li>
<li>Add io.mapinc config variable</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2525826055" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23313" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23313/hovercard" href="https://github.com/radareorg/radare2/issues/23313">#23313</a> - aeim stack locate</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2525826055" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23313" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23313/hovercard" href="https://github.com/radareorg/radare2/issues/23313">#23313</a> - overlapping maps after aeim</li>
</ul>
<p>Print</p>
<ul>
<li>Improve and document pfb bitfield printing in C, ascii art, oneliner</li>
<li>Handle multiline comments in pdsf</li>
<li>Display strings with 'ps' until first non-printable character instead of escaping</li>
</ul>
<p>Projects</p>
<ul>
<li>Make -p/-P available from the r2 shell and better subcommand handling</li>
<li>Honor absolute and relative paths in Pze</li>
<li>Add scr.prompt.prj to show project name</li>
<li>Save and restore annotations</li>
</ul>
<p>r2pm</p>
<ul>
<li>Honor user env variables, Use git clone depth=1</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2494566643" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2-pm/issues/164" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2-pm/issues/164/hovercard" href="https://github.com/radareorg/radare2-pm/issues/164">radareorg/radare2-pm#164</a> - Verboser database/package upgrade r2pm -U / r2pm -UU</li>
<li>Remove r2pm -HH, use r2pm -H (without argument), same as r2 and in sync with doc</li>
</ul>
<p>Search</p>
<ul>
<li>Add /V value range support in rafind2</li>
<li>Honor quiet mode to not set noisy flags in /azs</li>
<li>Implement /xn command to search for repeated patterns</li>
<li>Implement the /xv[s] value array search command</li>
<li>Find longer computed strings with /az</li>
<li>Add comments (to replace flags) for asm strings</li>
<li>Implement /azj and add a test</li>
</ul>
<p>Types</p>
<ul>
<li>Fix null format when displaying unknown argument types</li>
<li>Ignore "signed " prefixed types. signed is the default</li>
<li>Add missing setuid/setgid signature type definition</li>
</ul>
<p>Visual</p>
<ul>
<li>Better visual xrefs layout</li>
<li>Fix some emulated reference hints</li>
<li>Show function name when scrolling inside the function</li>
<li>Fix the q; function signature bug in Vdf</li>
</ul>
<p>Other</p>
<ul>
<li>Sync $R2_FILE with 'o.' output</li>
<li>Add -e cmd.exit to run commands before leaving</li>
<li>Fix log level details in r2pipe output</li>
<li>Add script to symbolicate iOS kernels using IPSW</li>
<li>Update lang.qjs and use quickjs-ng instead</li>
<li>Update the /m and /t webuis</li>
<li>Initial implementation of the http sessions</li>
<li>Deprecate the IS_DIGIT/IS_UPPER/IS_LOWER, we have posix</li>
<li>Initial pavement for RCorePriv opaque struct</li>
</ul>
<p>Security</p>
<ul>
<li>Fix segfault in hex2bin when length is zero</li>
<li>Fix assert in some title-less graphs</li>
<li>Fix null deref in poS</li>
<li>Fix timeout bug in r2r when fd is closed</li>
<li>Fix double free in lua bin parser</li>
<li>Fix /cp segfault on missing key</li>
<li>Fix invalid free in 'icc'</li>
<li>Fix a 1 byte overflow in r2cmd and improve logic checks</li>
<li>Fix another assert in the tricore.cs because of capstone bugs</li>
<li>Fix null deref bug in the swift demangler</li>
<li>Dont shift left signed types as reported in bug8 from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504749904" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23278" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23278/hovercard" href="https://github.com/radareorg/radare2/issues/23278">#23278</a></li>
<li>Fix large left shift in buf.sleb as reported in bug7 from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504749904" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23278" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23278/hovercard" href="https://github.com/radareorg/radare2/issues/23278">#23278</a></li>
<li>Fix another left shift UB in uleb aka bug5 from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504749904" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23278" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23278/hovercard" href="https://github.com/radareorg/radare2/issues/23278">#23278</a></li>
<li>Fix addition overflow in ELF relocs as reported in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504749904" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23278" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23278/hovercard" href="https://github.com/radareorg/radare2/issues/23278">#23278</a> (bug4)</li>
<li>Fix large left int shift in TE as reported in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504749904" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23278" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23278/hovercard" href="https://github.com/radareorg/radare2/issues/23278">#23278</a></li>
<li>Fix multiplication overflow in PE as reported in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504749904" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23278" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23278/hovercard" href="https://github.com/radareorg/radare2/issues/23278">#23278</a></li>
<li>Fix UB in uleb128 left shift reported in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504749904" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23278" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23278/hovercard" href="https://github.com/radareorg/radare2/issues/23278">#23278</a></li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2504734413" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23277" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23277/hovercard" href="https://github.com/radareorg/radare2/issues/23277">#23277</a> - invalid allocation on verdef struct for ELF</li>
<li>Sometimes functions end up asserting with empty names</li>
<li>Fix assert in the omni command</li>
<li>Fix segfault when deallocating arch plugins</li>
<li>Fix null deref in Lcj</li>
<li>Fix command injection bug in search hit bug exposed by bad asm string</li>
<li>Fix memory leak in RLangSession.fini</li>
<li>Implement ahb*, use more single quote, fix codeinj vuln and more</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.9.42024-08-08T14:38:29Z5.9.4<h2>Release Notes</h2>
<p>Version: 5.9.4<br>
Previous: 5.9.2<br>
Commits: 276<br>
Contributors: 18</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.4/radare2-5.9.4.tar.xz | tar xJv
radare2-5.9.4/sys/install.sh"><pre>curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.4/radare2-5.9.4.tar.xz <span class="pl-k">|</span> tar xJv
radare2-5.9.4/sys/install.sh</pre></div>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:buildandcrash@users.noreply.github.com">Adel</a> <a href="mailto:blin00@users.noreply.github.com">Brandon Lin</a> <a href="mailto:cjeker@diehard.n-r-g.com">Claudio Jeker</a> <a href="mailto:g@s01.de">Enno T. Boland</a> <a href="mailto:mrmacete@protonmail.ch">Francesco Tamagni</a> <a href="mailto:lars@flip.re">Lars Haukli</a> <a href="mailto:me@terorie.dev">Richard Patel</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:xavierartigas@yahoo.es">Xavi Artigas</a> <a href="mailto:astraliaz@gmail.com">astralia</a> <a href="mailto:48008331+aviciano@users.noreply.github.com">aviciano</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:ggs121@protonmail.com">ffg53</a> <a href="mailto:18178821+meme@users.noreply.github.com">meme</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a> <a href="mailto:54475808+satk0@users.noreply.github.com">satk0</a> <a href="mailto:shura1991@gmail.com">shurizzle</a></p>
<h2>Changes</h2>
<p><strong>analysis</strong></p>
<ul>
<li>Ignore NEVER bit in branch instructions on SPARC</li>
<li>Fix SPARC call instruction branches</li>
<li>Expose mem delta on store variables</li>
<li>Improved default function names</li>
<li>Add anal.flagends to stop a functions when flags are found</li>
<li>Fix aac on rebased files</li>
<li>Fix aae behaviour on invalid instructions</li>
<li>Optimize RAnalOp.setBytes with extra sauce for NEWABI</li>
<li>Fix help for 'abt?'</li>
<li>Honor codealign in nopskiHonor codealign in nopskip</li>
<li>Reuse R_PERM in RAnalVarAccess.type instead of custom enum</li>
<li>Make anal.vinfun false by default</li>
<li>Show jmptbl bb cases in <code>ab</code> output (not just for abj)</li>
<li>Initial support for MIPS jump tables (anal.jmp.tbl)</li>
<li>Fix missing arm reference regression in aaaa</li>
<li>Early stop with breakoninvalid reducing warning logs in 'aaaa'</li>
<li>More type fixes</li>
<li>Add more types from posix</li>
<li>Fix missing entries in the afla matching with aflq</li>
<li>Add anal.emu to run aaef in aaa and aef in af, for now optional</li>
<li>Implement missing but documented abi and refactor ab/ap</li>
<li>Only use anal hints in aac on arm 16/32</li>
<li>Dont list vars in afij output</li>
<li>Fix bb outputs computation in afij</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2328973566" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22995" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22995/hovercard" href="https://github.com/radareorg/radare2/issues/22995">#22995</a> - Dont list vars in afi, we have afv for this</li>
<li>Register strtonum function type</li>
<li>Improvements in aaa output and initial work towards twice afva checks</li>
<li>The sixref command shouldnt change current seek</li>
<li>Add op-count / bb-ratio info in afi/afij</li>
</ul>
<p><strong>api</strong></p>
<ul>
<li>Implement r_base32 APIs for my future self</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Initial support for the UXN machine</li>
<li>Fix few instruction type issues for mips.gnu</li>
<li>Expose missing cpus list in the ARM plugin </li>
<li>Add support for sfence.vma instruction for riscv</li>
<li>Missing read callbacks are now debug messages</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Make dynsym and hash sections wordable</li>
<li>Implement RBin.attr(str2bits)</li>
<li>Implement RBinPlugin Commands in the new abi via i:</li>
<li>Return earlier when bin.classes is false</li>
<li>Use callAt instead of cmdAt for section formats</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2366261933" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23064" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23064/hovercard" href="https://github.com/radareorg/radare2/issues/23064">#23064</a> - Implemented iclc command</li>
<li>Fix parsing dmp binaries on big endian systems</li>
<li>Fix incorrect parsing of MZ headers in big-endian machines</li>
<li>Tweak the custom swift demangler and fix tests</li>
<li>Fix Objective-C classes Swift demangling</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2400272735" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23110" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23110/hovercard" href="https://github.com/radareorg/radare2/issues/23110">#23110</a> - Improve the swift demangler to handle more constructions</li>
<li>Create sections for dyldcache stub islands</li>
<li>Set dyldcache entry point to the first map</li>
<li>Run the native swift demangler tests on darwin-x64 too</li>
<li>Initial support for RBin->RIO redirections</li>
<li>Early stop on corrupted macho method storage</li>
<li>Early catch some missbehaves in the macho class parsing</li>
<li>Fix iej/ilj on ob* and remove ieee (use ie;iee instead)</li>
<li>Fix the symbol parsing in Plan9</li>
<li>Add dir.sourcebase newabi + faster bin.dbginfo on macOS</li>
<li>Fix RABIN2_SWIFTLIB and add tests from r2 and rabin2</li>
<li>Fix dyldcache deps carving logic</li>
<li>Make Mach-O size ut64</li>
<li>Bring back the ig command to guess binary size</li>
<li>Support resizing the BSS section with rabin2 -O</li>
<li>Fix hash limit and fix segment hashing iSS</li>
<li>Fix section hashing and clarify help</li>
<li>Reduce memory dereferences in the macho parser and more cleanups</li>
<li>More cleanups on the objc parser, with minor optimizations</li>
<li>Minor optimizations in the ObjC demangler</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Also compile for WASI reactor</li>
<li>Fix cwisstable on ppc-le</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>Muon build fixes</li>
<li>Get rid of the deprecated macos-11 github targets</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Reimplement internal cfg.editor line editor</li>
<li>Few fixes for the line editor</li>
<li>Highlight code modifier ~:))</li>
<li>Support multiline RCons.message()</li>
<li>Fix scr.html in pdc</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Avoid over-unsetting fixed arch / bits</li>
<li>Add anal.fixed.* (move anal.gpfixed and add arch/bits ones)</li>
<li>Don't ask sections if fixed arch / bits set</li>
<li>Show io and core plugin version in the json listing</li>
<li>Honor log callback return value on custom callback calls</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix null deref in <code>r2 -d l</code></li>
<li>Fix huge allocation when casting int to ut64</li>
<li>Fix a recently introduced uaf in pdc</li>
<li>Fix null deref in dbtj</li>
<li>Fix null deref when running iS without any binobject loaded</li>
<li>Fix stack overflow in strings search</li>
<li>Fix infinite loop in the afla command spawned by a^5</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2318593291" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22972" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22972/hovercard" href="https://github.com/radareorg/radare2/issues/22972">#22972</a> - deadlock in :: fixed by handling ^C</li>
<li>Each RLogCallback have its own user pointer</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2318067724" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22969" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22969/hovercard" href="https://github.com/radareorg/radare2/issues/22969">#22969</a> - segfault when running <code>axt@j>$f</code></li>
</ul>
<p><strong>crypto</strong></p>
<ul>
<li>Expose the ELF hash algorithm in <code>rahash2 -a elf</code></li>
<li>Initial support for Ed25519 signatures</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Adjust OpenBSD code to set the process state to be less wrong</li>
<li>Fix drr - register periscoping on arm-thumb</li>
<li>Better output for dL command</li>
<li>Fix infinite loops in the heap parser and fix 2 broken tests</li>
<li>Initial support for native debugger on Linux/s390x</li>
<li>Fix the double-increment in the debug traces, avoid double tracing</li>
<li>Add missing rv64 case for the native debugger</li>
</ul>
<p><strong>decompilation</strong></p>
<ul>
<li>Initial support for stm8 pseudo</li>
</ul>
<p><strong>decompiler</strong></p>
<ul>
<li>Pseudo for arm64 replacing xzr with zero</li>
<li>Fix unmatching brace in pdc output</li>
<li>Add few missing arm64 fpu instructions for pseudo</li>
<li>Minor fixes for the x86 pseudo parsing</li>
<li>Remove empty lines and onelinify the comments in pdc</li>
<li>Better syntax for conditionals and switch/case constructions</li>
<li>Implement pseudo for arm64 br and ldruh</li>
<li>One more orphaned basic block in pdc</li>
<li>bhi and ldrsw for arm64.pseudo</li>
<li>
<ul>
<li>More refined goto statements in pdc and add and colorize missing returns</li>
</ul>
</li>
</ul>
<p><strong>diff</strong></p>
<ul>
<li>Check and early fail if symbol existance in radiff2-g</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Improve sparc.cs disasm replacing +- with -</li>
<li>Add test and fix for the arm64 varsub issue</li>
<li>Fix asm.emu derefenced word issue on big endian</li>
<li>Fix improper display of IPv4 addresses in big-endian machines</li>
<li>Store operations also deserve a place for asm.emu</li>
<li>Honor cfg.json.num in pdbj</li>
<li>Implement madd/msub/mneg support for arm64.pseudo</li>
<li>Replace wzr with 0 in the arm.pseudo</li>
<li>Fix asm.pseudo for arm64's movk</li>
<li>Display instruction addresses on each switch blocks in pdco</li>
<li>Initial support for small integer (SMI) anal hints in disasm (ahi)</li>
<li>Add support for pascal strings meta type Csp</li>
<li>Honor kernel crash hints in hexpairs for rasm2 -D</li>
</ul>
<p><strong>doc</strong></p>
<ul>
<li>Add info about single module recompilation</li>
</ul>
<p><strong>emulation</strong></p>
<ul>
<li>Use codeAlign instead of dataAlign for thumb stepping</li>
</ul>
<p><strong>endian</strong></p>
<ul>
<li>Fix mdmp list sz</li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Fix dbg.trace behaviour with emulation</li>
</ul>
<p><strong>fs</strong></p>
<ul>
<li>Build fs.squashfs with the make build system too</li>
</ul>
<p><strong>graph</strong></p>
<ul>
<li>Remove non-id code from the gml graph output</li>
</ul>
<p><strong>help</strong></p>
<ul>
<li>Fix afv help to make it accessible through tghe af?*</li>
</ul>
<p><strong>io</strong></p>
<ul>
<li>Fix io.cache</li>
<li>Add :iF command to dsc</li>
<li>Initial support for the UF2 file format</li>
<li>Improve :iP command usability in dsc</li>
<li>Refactor the io/oi commands and fix io behaviour</li>
<li>Add iP command to dsc to get authenticated pointer info</li>
<li>Fix dsc subcache format detection</li>
<li>Dont seek from the server side rap</li>
</ul>
<p><strong>json</strong></p>
<ul>
<li>Improve the smile operator code tokenizer ~:)</li>
<li>Use RCorePJ if possible instead of PJ</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Support base64 encoded r2js scripts</li>
<li>Python goes before Python2 in the rlang plugin now</li>
<li>Fix TS usage by making the exports object point to globals</li>
<li>Add R2_PAPI_SCRIPT env var for custom r2papi testing</li>
</ul>
<p><strong>panels</strong></p>
<ul>
<li>Add manpage submenus under the Help</li>
<li>Implement menu separators, project and analysis options</li>
<li>Better key hints visualization</li>
<li>Better key hints in for menu, tabs and title selected panel</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Honor hex.cols in pxb bitdump view</li>
<li>Add phl/phL as an alias for Lh and update help</li>
</ul>
<p><strong>projects</strong></p>
<ul>
<li>Implement prj.history to save/load the per-project command history</li>
</ul>
<p><strong>qjs</strong></p>
<ul>
<li>Fix loading some r2frida-compiled scripts</li>
</ul>
<p><strong>r2js</strong></p>
<ul>
<li>Fallback the default r2papi when not loaded from disk</li>
<li>Update r2papi from git, use src from /tmp instead of npm</li>
<li>Add Visual Studio "map" file parser script</li>
</ul>
<p><strong>r2pipe</strong></p>
<ul>
<li>Add missing command to r2 <code>?</code></li>
<li>Fix r2pipe2 json format not being trimmed</li>
<li>Add r2.cmd2[j] APIs for r2js</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Do not check for updates when r2pm -r, -h and -H</li>
</ul>
<p><strong>ragg</strong></p>
<ul>
<li>Fix ragg2 foo.c on macOS</li>
</ul>
<p><strong>refactor</strong></p>
<ul>
<li>Replace other r_return_* uses and update DEVELOPERS.md</li>
<li>Deprecate r_str_new and R_STR_DUP</li>
</ul>
<p><strong>scripts</strong></p>
<ul>
<li>Add an r2js script to import il2cpp metadata</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Fix ^C in /ac</li>
<li>Show offset of the truncated large strings</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2319358781" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22974" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22974/hovercard" href="https://github.com/radareorg/radare2/issues/22974">#22974</a> - minimum blocksize to reduce missing matches in /ad</li>
<li>Reduce false positive on "java source" magic</li>
<li>Add a magic file for flutter magics</li>
<li>/ad supports glob matching now</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Fix 'r2pm -r false' because <code>exit(system("false"))</code> is a lie</li>
<li>!! for session history, !. for history save</li>
<li>Fix move cursor right with arrow keys issue in dietline</li>
<li>Support '0x, not just '<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/0x/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/0x">@0x</a> and improve "'?'" help</li>
<li>Add -D as an alias for iD</li>
<li>Improve the multiline comment user experience</li>
<li>Better parsing for the "join" command</li>
<li>Fix 'rm $foo' and '$foo+=N'</li>
<li>Improve argument parsing logic for 'tail'</li>
<li>Fix the tail syscmd</li>
<li>Rename ib as ooi</li>
<li>Honor numeric argument in q!! and simplify command logic</li>
<li>Add a warming help message under the <code>help</code> command</li>
<li>Fix appending redirection on internal alias files</li>
<li>Fix 'Cannot redirect the same fd twice' bug in the command parser</li>
<li>Add JSON support to the iD command and improved error handling</li>
<li>Implement the new fD command to filter/mangle flagnames</li>
<li>Remove trailing space in aflq output</li>
<li>Consistent json output with no file, more tests and reorder i? help</li>
<li>Remove ihh and iHH, no need for confusing swappable aliases</li>
<li>iSm is no longer a valid command as it was doing nothing</li>
<li>Handle 'make' as a valid shell command</li>
<li>Better handling the v subcommands</li>
<li>Better help and invalid subcommand handling for s</li>
<li>Autocomplete with tab the "open" argument</li>
<li>Fix wt, aht help messages and early catch badly formatted help messages</li>
<li>Add help for aab</li>
<li>Add help for aax and aaF causing a?* to be slow</li>
<li>Fix s+0x1000000000</li>
<li>Return proper json for some i*j subcommands when no file or rbin is opened</li>
<li>Initial implementation of r2pipe2</li>
<li>Add r2pm hint for r2ai if the package is not installed</li>
</ul>
<p><strong>socket</strong></p>
<ul>
<li>Add curl post support and minor http fixes</li>
</ul>
<p><strong>tests</strong></p>
<ul>
<li>Run the json tests when loading no files in r2</li>
<li>Empty strings cant be considered valid json</li>
<li>Add r2r -H and honor R2R_JOBS as an env replacement for -j</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>Fix arch selection when loading no files <code>--</code> with r2 -a --</li>
<li>radiff2 -A = aa instead of aaa</li>
<li>Add rax2 -q to be quiet when printing hexdumps</li>
</ul>
<p><strong>types</strong></p>
<ul>
<li>Fix and unify [err/warn]{xc} function, improves decompilation</li>
</ul>
<p><strong>util</strong></p>
<ul>
<li>Add support for "double" type in RTable</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Improve Ve glitches on small terminals</li>
<li>Honor cfg.editor when there's a comment in V;</li>
<li>Fix bug in V;! not bringing back the mouse</li>
<li>Add Bit Registers panel</li>
<li>Initial implementation of ?iu for the onelinered custon UI</li>
<li>Fix last memleaks, simplify Vz to toggle folding basic blocks</li>
<li>Fix shift-tab and space behaviour in visual mode</li>
<li>Improved space key behaviour for the hexdump</li>
<li>Better error handling in vvs</li>
<li>Always show function signature in visual disassembly</li>
<li>Implement soft scrolling over varlisting in visual disasm</li>
<li>Implement Vbw command to browse window types in visual</li>
</ul>
<p><strong>windows</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2391418910" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/23093" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/23093/hovercard" href="https://github.com/radareorg/radare2/issues/23093">#23093</a> - RStdin.slurp() on Windows</li>
</ul>
<p><strong>zignatures</strong></p>
<ul>
<li>Make duplicated zignatures optional via zign.dups + tests</li>
</ul>
<p><strong>zinatures</strong></p>
<ul>
<li>Add support for parsing next zignatures</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.9.22024-05-20T23:35:18Z5.9.2<h2>Release Notes</h2>
<p>Version: 5.9.2<br>
Previous: 5.9.0<br>
Commits: 237<br>
Contributors: 15</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.2/radare2-5.9.2.tar.xz | tar xJv
radare2-5.9.2/sys/install.sh"><pre>curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.2/radare2-5.9.2.tar.xz <span class="pl-k">|</span> tar xJv
radare2-5.9.2/sys/install.sh</pre></div>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:110870948+3B85A591@users.noreply.github.com">3B85A591</a> <a href="mailto:jmaselbas@zdiv.net">Jules Maselbas</a> <a href="mailto:kenny@machinesung.com">Kenny Shen</a> <a href="mailto:25155631+MewtR@users.noreply.github.com">Mewt R</a> <a href="mailto:25155631+MewtR@users.noreply.github.com">MewtR</a> <a href="mailto:mikael@lilotux.net">Mikael Berthe</a> <a href="mailto:me@terorie.dev">Richard Patel</a> <a href="mailto:roshanlaladchitre103@gmail.com">Roshanlal</a> <a href="mailto:venture37@geeklan.co.uk">Sevan Janiyan</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:astraliaz@gmail.com">astralia</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:imkyufie@gmail.com">kyufie</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a></p>
<h2>Changes</h2>
<p><strong>abi</strong></p>
<ul>
<li>Initial implementation of RBuffer.cache</li>
<li>Add a --with-new-abi, use_new_abi meson option and a CI job</li>
</ul>
<p><strong>analysis</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2300256052" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22947" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22947/hovercard" href="https://github.com/radareorg/radare2/issues/22947">#22947</a> - afbij now returns an array</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2294986546" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22939" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22939/hovercard" href="https://github.com/radareorg/radare2/issues/22939">#22939</a> - ub shifts on sixref</li>
<li>VAX maxinstrsize is 56, assume 64 bytes as maximum valid size</li>
<li>Dont do aav via aaa on dalvik/java/python</li>
<li>Fix invalid instructions on mips not recognized as invalid</li>
<li>SWIs can define branches too</li>
<li>Honor the optype to fill the opjump field</li>
<li>Consider that software interrupt sometimes branch</li>
<li>Honor maxopsz and minopsz in aae, speeding up emulation a little</li>
<li>Reduce fp, do not run aav when minaddr is zero</li>
<li>Suggest -B when finding invalid icod refs</li>
<li>Speedup <code>ao</code> by blocksize orders of magnitude</li>
<li>Catch invalid references earlier</li>
<li>Fix type confussion bug side effecting arm64 on BE</li>
<li>Add test for ARM-style jmptbl analysis</li>
<li>Fix jmptable analysis on ARM</li>
<li>0707 is used as padding for the s390 compiler</li>
<li>Add few function preludes for s390x - aap</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Implement R_ARCH_INFO_ISVM</li>
<li>Implement archinfo callback for Dalvik</li>
<li>Initial support for stm8</li>
<li>Add nor in the RAnalOp.toString()</li>
<li>Provide proper archinfo details for xtensa</li>
<li>Add missing =BP in the ppc regprofile</li>
<li>Define aop.type for more s390 instructions</li>
<li>Fix destination address for the brasil s390 instruction</li>
</ul>
<p><strong>asm</strong></p>
<ul>
<li>Add a bunch of tests (ARM)</li>
<li>Add support for writeback on indexed ldst (ARM)</li>
<li>Fix mvn (ARM)</li>
<li>Fix for register-operand shifts (ARM)</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Handle another double string case for the lowerdash swift mangling</li>
<li>Handle more Swift demangler tail attributes</li>
<li>Improve osabi detection for android</li>
<li>Handle deinit/dealloc swift mangling attributes</li>
<li>Implement conformsToProtocol mangling logic for Swift</li>
<li>Support the 'O' element in the swift demangler</li>
<li>Improved stripped mach0 detection logic</li>
<li>Do not parse beyond the end of the ELF dynplt section</li>
<li>RBinFile.setCurBinFile() accepts null now</li>
<li>Separate the arm vs arm64 reloc import logic</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2266554587" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22865" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22865/hovercard" href="https://github.com/radareorg/radare2/issues/22865">#22865</a> - Autodetect thumb main on arm16 elf binaries</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2228649894" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22804" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22804/hovercard" href="https://github.com/radareorg/radare2/issues/22804">#22804</a> - Implement a couple of relocs for ppc64</li>
<li>Fix macho strip checks and add more tests</li>
<li>Honor bin.filter on vectored symbols</li>
<li>Use RBuffer.cache for mach0 swizzling</li>
<li>Experiment with ir* providing reloc write scripts</li>
<li>Show utf8-blocks details as a separate column in strings listing</li>
<li>Handle R_390_GLOB_DAT R_390_RELATIVE relocs for ELF/S390</li>
<li>Load imports on ELF/s390 from the GOT section</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Fix git breaking the terminal</li>
<li>Now sys/user.sh uses rpath and xdg prefix</li>
<li>Honor NOSUDO and --prefix in sys/install.sh</li>
<li>Honor --without-syscapstone in pkgconfig even when capstone is found</li>
<li>Add user-purge target to rimraf user's r2 directories</li>
<li>Update Windows's preconfigure.bat to autodetect host arch</li>
<li>Move sys/osx-pkg into dist/macos/pkg</li>
<li>Fix compilation on native linux-powerpc</li>
<li>Guard off parts which do no apply to Darwin/PowerPC</li>
<li>Add rabin2, radiff2 ragg2 and rahash2 to the wapm</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>Keep Ubuntu20, disable ASLR to workaround a racy asan bug caused by a kernel change</li>
<li>Upgrade to ubuntu22 for the fuzz jobs</li>
<li>Bring back the abidiff into the CI pipeline</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Remove cursor move on Ctrl-l</li>
<li>Add support for arrow keys on some terminals</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Remove the RCconfig(arch.arch) option</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix some vulns spotted in the swift demangler</li>
<li>Fix possible strlen (NULL) and reduce few dereferences in RConsGrep</li>
<li>Fix two format strings receiving less arguments</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2292784004" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22932" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22932/hovercard" href="https://github.com/radareorg/radare2/issues/22932">#22932</a> - null deref in b64:</li>
<li>Fix null deref in Vbc</li>
<li>Fix null deref in CL when no binfile is loaded</li>
<li>Fix oobread and oobwrite caused by an intovf in coff</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2229790682" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22808" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22808/hovercard" href="https://github.com/radareorg/radare2/issues/22808">#22808</a> - null deref in r2 -a riscv -c "/ad li a7, 227" clue</li>
<li>Fix oobreads on fmt of RStr.scanf</li>
<li>Fix for the infinite loop on windows RCore.fileOpen</li>
<li>Fix invalid free in 'afl'</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Fix segfault in 'drf' command</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2243648679" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22831" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22831/hovercard" href="https://github.com/radareorg/radare2/issues/22831">#22831</a> - Proper baddr on the FreeBSD debugger</li>
<li>Add ^be|^le|^me rule in reg profiles to support little, big and middle endianness</li>
<li>Specify endianness in the RReg instance</li>
<li>Fix RReg endian bug, fixes debugger in s390 and ppc at least</li>
<li>Fix unaligned ptrace reads - spotted on s390</li>
</ul>
<p><strong>diff</strong></p>
<ul>
<li>Add <code>wcd</code> command for patch diffing instruction and sort <code>wc?</code> lines</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Don't show zero values as comments</li>
<li>Fix aii package imports trick when scr.color</li>
<li>Do not slurp absolute path sources on Apple</li>
<li>Fix regression in asm.trace.times</li>
<li>Handle 32 and 64 bit big endian data references (Vdrr1)</li>
<li>Add asm.bytes.ascii to display instruction bytecodes as text</li>
<li>Implement soft esil pins, only executed in the disasm loop</li>
</ul>
<p><strong>endian</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2293059162" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22933" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22933/hovercard" href="https://github.com/radareorg/radare2/issues/22933">#22933</a> - fix endian for c4 comparison</li>
<li>Fix ahi i for .ipaddr casting instruction arguments in BE</li>
<li>Fix mips.gnu on BE host</li>
<li>Fix sparc disassembler for big endian hosts</li>
<li>Fix reading segment count for ELF</li>
<li>Fix endian bugs in the tcc enum parser</li>
<li>Big endian RISC-V dis fix</li>
<li>Big endian AVR encode fix</li>
<li>Big endian fix for FLIRT</li>
<li>Big endian fix for ESIL pokes</li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Dont use $$ in xtensa</li>
</ul>
<p><strong>fun</strong></p>
<ul>
<li>Add some fun fortunes from GLaDOS//portal</li>
</ul>
<p><strong>globals</strong></p>
<ul>
<li>Remove all globals from search</li>
<li>Remove one global from the the esil emulation loop</li>
</ul>
<p><strong>graph</strong></p>
<ul>
<li>Hide asm.dwarf.file in the summary graph</li>
</ul>
<p><strong>help</strong></p>
<ul>
<li>Improve /?* and /ad/? helps with 20 more lines</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Initial support for Dart in rlang via system</li>
<li>Initial support for RParse r2js plugins</li>
</ul>
<p><strong>port</strong></p>
<ul>
<li>Fix pic_pic18 endian bug</li>
<li>Fix bpf.mr endian</li>
<li>Fix ebc_disas endian bugs</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Fix pfb and RBitmap in big endian</li>
<li>Implement pdsfs command for strings-only listings</li>
<li>Implement pdsfj - as the json output for pdsf</li>
<li>Use proper color palette for prcn/prcb</li>
<li>Nibble colordump under prcn/prcb. Idea by Patrick Hurd</li>
<li>Add EBCDIC-ascii table for the new abi via ?ae</li>
</ul>
<p><strong>projects</strong></p>
<ul>
<li>Add -P command in the shell and error code on project load</li>
</ul>
<p><strong>r2js</strong></p>
<ul>
<li>Initial import of the tags.r2.js script (CTAGS support)</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Honor R_SYS_DIRSEP in r2pm env var settings for Windows</li>
</ul>
<p><strong>ragg2</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2257366169" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22859" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22859/hovercard" href="https://github.com/radareorg/radare2/issues/22859">#22859</a> - saving returns w/ immediate string in args + tests</li>
</ul>
<p><strong>refactor</strong></p>
<ul>
<li>Fix some memory leak issues in libr/core/cbin.c flagged by coverity</li>
<li>Replace RaxActions enum with a struct</li>
<li>Fixing some coverity issues in libr/core/panels.c</li>
</ul>
<p><strong>scripts</strong></p>
<ul>
<li>Add unzip script example</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Make search.verbose=false</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>iX -> idx, also refactor some i? lines on subcommand helps</li>
<li>Fix i subcommand help messages</li>
<li>Fix o</li>
<li>Show ledec+bedec instruction decoding results from <code>?</code></li>
<li>mal: manpage listing, markdown renderer, doc/ via man</li>
<li>Add -k command that mimics r2 -k</li>
<li>Show 'newabi' in r2 -v</li>
<li>Show ASAN in -v options when compiling via <code>gcc</code></li>
<li>Add help for the afii command</li>
<li>Fix command macro parsing and calling and add another test</li>
<li>Register command calls in the history logs</li>
<li>Fix ftw flag tags, broken after the RStr.glob refactoring</li>
</ul>
<p><strong>test</strong></p>
<ul>
<li>Fix concurrency issue (improves <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/radareorg/radare2/commit/71f57c6cfc85ab201efe66b176dabab141982ceb/hovercard" href="https://github.com/radareorg/radare2/commit/71f57c6cfc85ab201efe66b176dabab141982ceb"><tt>71f57c6</tt></a>)</li>
<li>Fix concurrency issue</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>Rename rax2 -L to rax2 -X</li>
<li>Rename rax2 -I to rax2 -i</li>
<li>Rename rax2 -B to rax2 -z</li>
<li>Rename rax2 -l to rax2 -Z</li>
<li>Rename rax2 -X to rax2 -H</li>
<li>Rename rax2 -i to rax2 -C</li>
<li>Rename rax2 = to -b </li>
<li>Rename rax2 -b to rax2 -l</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Fix VA Visual Assembler in debug mode when io.va is false</li>
<li>Support live hexpairs input in the visual assembler</li>
</ul>
<p><strong>webui</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2235283254" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22818" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22818/hovercard" href="https://github.com/radareorg/radare2/issues/22818">#22818</a> - Add more mimetypes and avoid (null) from the webserver</li>
</ul>
<p><strong>zignatures</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2277884460" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22894" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22894/hovercard" href="https://github.com/radareorg/radare2/issues/22894">#22894</a> - Add z, to print zignatures in table format</li>
<li>Implement 'z[j*] ' to show only 1 zignature</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.9.02024-03-31T15:36:20Z5.9.0 - Codename "Hyperborean"<h2>Release Notes</h2>
<p>Version: 5.9.0<br>
Previous: 5.8.8<br>
Commits: 1316<br>
Contributors: 65</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.0/radare2-5.9.0.tar.xz | tar xJv
radare2-5.9.0/sys/install.sh"><pre>curl -Ls https://github.com/radareorg/radare2/releases/download/5.9.0/radare2-5.9.0.tar.xz <span class="pl-k">|</span> tar xJv
radare2-5.9.0/sys/install.sh</pre></div>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:apkunpacker@gmail.com">ApkUnpacker</a> <a href="mailto:armin.weihbold@gmail.com">Armin Weihbold</a> <a href="mailto:koyaan@users.noreply.github.com">Armin Weihbold</a> <a href="mailto:0x8008135@users.noreply.github.com">Azox</a> <a href="mailto:begasus@gmail.com">Begasus</a> <a href="mailto:chillerdragon@gmail.com">Chiller Dragon</a> <a href="mailto:128426715+dennis-doyensec@users.noreply.github.com">Dennis Goodlett</a> <a href="mailto:jesupnotdown+git@gmail.com">Dennis Goodlett</a> <a href="mailto:dirk.eibach@gmx.de">Dirk Eibach</a> <a href="mailto:davispuh@gmail.com">Dāvis Mosāns</a> <a href="mailto:erik.griese@yahoo.de">Erik Griese</a> <a href="mailto:mrmacete@protonmail.ch">Francesco Tamagni</a> <a href="mailto:revol@free.fr">François Revol</a> <a href="mailto:noreply+github@adaptivetime.com">GravisZro</a> <a href="mailto:dvertx@gmail.com">Hertatijanto Hartono</a> <a href="mailto:kacper.slominski72@gmail.com">Kacper Słomiński</a> <a href="mailto:lars@flip.re">Lars Haukli</a> <a href="mailto:26179473+Lazula@users.noreply.github.com">Lazula</a> <a href="mailto:Luc.Tielen@gmail.com">Luc Tielen</a> <a href="mailto:ltielen@nowsecure.com">Luc Tielen</a> <a href="mailto:luc.tielen@gmail.com">Luc Tielen</a> <a href="mailto:madghostek@gmail.com">Madghostek</a> <a href="mailto:25155631+MewtR@users.noreply.github.com">Mewt R</a> <a href="mailto:25155631+MewtR@users.noreply.github.com">MewtR</a> <a href="mailto:41313082+michaelortmann@users.noreply.github.com">Michael Ortmann</a> <a href="mailto:11234807+as0ler@users.noreply.github.com">Murphy</a> <a href="mailto:20112968+nathansrf@users.noreply.github.com">Nathan</a> <a href="mailto:nchatz314@gmail.com">Nikolaos Chatzikonstantinou</a> <a href="mailto:120188097+Omvpatil@users.noreply.github.com">Omvpatil</a> <a href="mailto:prodrigestivill@gmail.com">Pau RE</a> <a href="mailto:u202012160@hust.edu.cn">Pikachu</a> <a href="mailto:72725910+ramikg@users.noreply.github.com">Rami</a> <a href="mailto:mizunokizu@gmail.com">ReWithMe</a> <a href="mailto:me@terorie.dev">Richard Patel</a> <a href="mailto:github@roboschmie.de">RoboSchmied</a> <a href="mailto:pancake@nowsecure.com">Sergi Àlvarez i Capilla</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:sandor.oroszi@onekey.com">Sándor Oroszi</a> <a href="mailto:822863+bqv@users.noreply.github.com">Tony O</a> <a href="mailto:105599724+TronciuVlad@users.noreply.github.com">Tronciu Vlad</a> <a href="mailto:v.balyasnyy@gmail.com">Vasilyy</a> <a href="mailto:65160922+Crispy-fried-chicken@users.noreply.github.com">Yiheng Cao</a> <a href="mailto:ysaxenax@gmail.com">Yuvraj Saxena</a> <a href="mailto:51972960+aemmitt-ns@users.noreply.github.com">aemmitt-ns</a> <a href="mailto:muralianiruddhan@gmail.com">ashamedbit</a> <a href="mailto:astraliaz@gmail.com">astralia</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:dvertx@gmail.com">dvertx</a> <a href="mailto:64474767+gogolovefish@users.noreply.github.com">gogolovefish</a> <a href="mailto:68935141+junchao-loongson@users.noreply.github.com">junchao-loongson</a> <a href="mailto:imkyufie@gmail.com">kyufie</a> <a href="mailto:79937932+lasek0@users.noreply.github.com">lasek0</a> <a href="mailto:meme@users.noreply.github.com">meme</a> <a href="mailto:micronn@gmail.com">micronn</a> <a href="mailto:50387785+neo-one0873@users.noreply.github.com">neo-one0873</a> <a href="mailto:dalton@raptorpowersystems.com">overmyerD</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a> <a href="mailto:122955334+phix33@users.noreply.github.com">phix33</a> <a href="mailto:ripatel+git@jumptrading.com">ripatel-fd</a> <a href="mailto:111242479+solid-snail@users.noreply.github.com">solid-snail</a> <a href="mailto:syheliel@gmail.com">syheliel</a> <a href="mailto:48008331+aviciano@users.noreply.github.com">toni</a> <a href="mailto:nope">yep</a> <a href="mailto:102871671+zengwei2000@users.noreply.github.com">zengwei2000</a></p>
<h2>Changes</h2>
<p><strong>abi</strong></p>
<ul>
<li>Use RPluginMeta in RCryptoPlugin</li>
<li>Use RPluginMeta in RFS</li>
<li>Remove dead code</li>
<li>Initial deprecation of the current RAnalPlugin</li>
<li>Refactor show flags into single showMode bitset</li>
<li>Change return type for r_bin_dwarf_parse_aranges</li>
<li>Update signature of patch_relocs callback</li>
<li>Make r_cons_grep_expression public, rm r_cons_grep_process</li>
<li>Rename r_str_next_split -> r_str_tok_next; make public</li>
<li>Remove grep for 570 (all fixed), update older R2_580 to 590</li>
<li>Rename REsil.address -> .addr for consistency</li>
<li>Remove several R2_590 ifdefs</li>
<li>RArch now depends on REsil</li>
<li>Use RPluginMeta in RArchPlugin</li>
</ul>
<p><strong>anal</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2102419539" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22552" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22552/hovercard" href="https://github.com/radareorg/radare2/issues/22552">#22552</a> - Fix variable access direction for arm64 store instruction</li>
<li>Fix aac bug caused by anal.in on binaries with sections</li>
<li>Add anfl command and anal.slow to bring back the old autoname functionality</li>
<li>Improve sigdb file format detection</li>
<li>Run .afna@@c:afla in aaaaa</li>
<li>Implement <code>afba</code> like afla but for basic blocks</li>
<li>Implement afla command to list function in the inverse call dependency order</li>
<li>Parse len argument in aaex</li>
<li>Initial support for xref sizes</li>
<li>Use base64 in "ax," and also show ref size column</li>
<li>Implement axt, - for table listing xrefs</li>
<li>Implement axtf - list function xrefs</li>
<li>Improve aan/afna/afns add json and use emulation</li>
<li>Permit partial block reads on analsearch loops</li>
<li>Remove noisy log message in aap</li>
<li>Add scr.analbar config var to have progressbar without scr.demo</li>
<li>Fix <code>ap</code> command using real fcn prelude info from arch plugin</li>
<li>Implement <code>aax</code> command to make a function on each CALL xref</li>
<li>Implement aaex command, like aae, but does not analyze any function</li>
<li>Fix /rc, document argument handling and add test</li>
<li>Improve JSON output for the afsvj command</li>
<li>Implement <code>afsvj</code> command</li>
<li>Implement <code>afs-</code> to delete a function signature</li>
<li>Implement r_anal_function_del_signature</li>
<li>Consider null bytes as invalid instructions too</li>
<li>Support 'aaa' in frida:// targets</li>
<li>Initial backtrace API and commands (abt)</li>
<li>Another improvement for <code>aaaa</code></li>
<li>Take invalid instructions in consideration for the bitfield decoding</li>
<li>Implement aobv command for visual instruction decoding</li>
<li>Show function colors in afl</li>
<li>Plant the seed for the tlocal bool in RAnalOp</li>
<li>Fix warning in aar when checking icod refs on unallocated memory</li>
<li>Implement CL+ and CLf, show info in afi/afij</li>
<li>Dont fall into calls surrounded by traps</li>
<li>Better (more verbose) output for <code>aaaaa</code></li>
<li>Add Cb - bind metadata type to draw reflines for data pointers</li>
<li>Add progressbar in 'aaa' when scr.demo is set</li>
<li>Show bb->esil in <code>ab</code> and <code>abj</code></li>
<li>Add 'afbd' to emulate bb regstates in the correct order</li>
<li>Add RAnalBlock.esil and abe command to manipulate it</li>
<li>Initial support for D calling convention</li>
<li>Add r_anal_function_get_graph</li>
<li>Add two missing log lines for aaa</li>
<li>Implement more swapped conditionals support in type propagation</li>
<li>Refactor aaft to use less allocations for buffer</li>
<li>Sort blocks only once in aaft</li>
<li>Reuse more allocated memory during aaft</li>
<li>Add test for a bug spotted in the aac command</li>
<li>Cleanup rebasing refs during oo</li>
<li>Add r_anal_xrefs_has_xrefs_at function</li>
<li>Remove duplicate xrefs delete function</li>
<li>R_API function to count xrefs at a specific address</li>
<li>Cleanup xrefs code</li>
<li>Optimize xrefs using swisstable</li>
<li>Reimplement the a2f core plugin into an analysis one</li>
<li>Analyze methods after parsing the C++ vtables</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1820097748" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22100" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22100/hovercard" href="https://github.com/radareorg/radare2/issues/22100">#22100</a> - Dont compute disp refs when ptr is set</li>
<li>Honor anal.jmp.ref in aar</li>
<li>Compute depth and save it in the bb</li>
<li>Save a bit of memory in xrefs implementation</li>
<li>Fix timeout and move possible slow test</li>
<li>Skipping empty blocks is now a warning</li>
<li>Show color field in the afbj output</li>
<li>Accept asm.bits=16/asm.os=android for syscalls + tests</li>
<li>Reduce false positives when scanning for syscalls on thumb code</li>
<li>Honor codealign, speedup syscall search emulation</li>
<li>Add anal.imports to analyze them early in aa</li>
<li>Honor RArchInfo.codealign in aar</li>
<li>Honor 'rsym.' flag prefix</li>
<li>Implement the abc- command to unset a bb color</li>
<li>Minor optimization in r_anal_block_op_starts_at</li>
<li>Use r_anal_ref_typemask() to sanitize xref types and update tests</li>
<li>Add and use the new Indirect Code XREF type to improve code coverage</li>
<li>Add the new r_anal_data_type() for better data type detection</li>
<li>Smol ref->type masked improvements</li>
<li>Add more function preludes for arm32</li>
<li>Fix some missing xrefs in /re $$</li>
<li>Handle 'asm.os=android' syscall as an alias for 'linux'</li>
<li>More verbose and clearer output for abl</li>
<li>Add RAnalFunction.traceCoverage() api and info in afi/afl/abi/..</li>
<li>Minor bugfix/improvement when ninstr == 0</li>
<li>Dont show function diff info when not diffing</li>
<li>Don't add more instructions than the ones we can handle in the basic blocks</li>
<li>Faster RAnal.bbTrace()</li>
<li>Add afix subcommand to list function info + xrefs</li>
<li>Add all-xrefs listings in 'afi' and 'afij'</li>
<li>Optimize: reg 32 <-> 64 conversion iterates over gpr only</li>
<li>Optimize anal.roregs</li>
<li>anal.gp also sets the reg value</li>
<li>Do not accept invalid xrefs (-1 <-> -1)</li>
<li>anal.strings does not disable bin.strings</li>
<li>RAnalValue no longer refs an RRegItem</li>
</ul>
<p><strong>analysis</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2102419539" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22552" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22552/hovercard" href="https://github.com/radareorg/radare2/issues/22552">#22552</a> - Fix variable access direction for arm64 store instruction</li>
<li>Fix aac bug caused by anal.in on binaries with sections</li>
<li>Add anfl command and anal.slow to bring back the old autoname functionality</li>
<li>Run .afna@@c:afla in aaaaa</li>
<li>Implement <code>afba</code> like afla but for basic blocks</li>
<li>Implement afla command to list function in the inverse call dependency order</li>
<li>Parse len argument in aaex</li>
<li>Initial support for xref sizes</li>
<li>Use base64 in "ax," and also show ref size column</li>
<li>Implement axt, - for table listing xrefs</li>
<li>Implement axtf - list function xrefs</li>
<li>Improve aan/afna/afns add json and use emulation</li>
<li>Permit partial block reads on analsearch loops</li>
<li>Remove noisy log message in aap</li>
<li>Add scr.analbar config var to have progressbar without scr.demo</li>
<li>Fix <code>ap</code> command using real fcn prelude info from arch plugin</li>
<li>Implement <code>aax</code> command to make a function on each CALL xref</li>
<li>Implement aaex command, like aae, but does not analyze any function</li>
<li>Fix /rc, document argument handling and add test</li>
<li>Improve JSON output for the afsvj command</li>
<li>Implement <code>afsvj</code> command</li>
<li>Implement <code>afs-</code> to delete a function signature</li>
<li>Implement r_anal_function_del_signature</li>
<li>Consider null bytes as invalid instructions too</li>
<li>Support 'aaa' in frida:// targets</li>
<li>Initial backtrace API and commands (abt)</li>
<li>Another improvement for <code>aaaa</code></li>
<li>Take invalid instructions in consideration for the bitfield decoding</li>
<li>Implement aobv command for visual instruction decoding</li>
<li>Show function colors in afl</li>
<li>Plant the seed for the tlocal bool in RAnalOp</li>
<li>Fix warning in aar when checking icod refs on unallocated memory</li>
<li>Implement CL+ and CLf, show info in afi/afij</li>
<li>Dont fall into calls surrounded by traps</li>
<li>Better (more verbose) output for <code>aaaaa</code></li>
<li>Add Cb - bind metadata type to draw reflines for data pointers</li>
<li>Add progressbar in 'aaa' when scr.demo is set</li>
<li>Show bb->esil in <code>ab</code> and <code>abj</code></li>
<li>Add 'afbd' to emulate bb regstates in the correct order</li>
<li>Add RAnalBlock.esil and abe command to manipulate it</li>
<li>Initial support for D calling convention</li>
<li>Add two missing log lines for aaa</li>
<li>Implement more swapped conditionals support in type propagation</li>
<li>Add test for a bug spotted in the aac command</li>
<li>Reimplement the a2f core plugin into an analysis one</li>
<li>Analyze methods after parsing the C++ vtables</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1820097748" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22100" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22100/hovercard" href="https://github.com/radareorg/radare2/issues/22100">#22100</a> - Dont compute disp refs when ptr is set</li>
<li>Honor anal.jmp.ref in aar</li>
<li>Compute depth and save it in the bb</li>
<li>Save a bit of memory in xrefs implementation</li>
<li>Fix timeout and move possible slow test</li>
<li>Skipping empty blocks is now a warning</li>
<li>Show color field in the afbj output</li>
<li>Accept asm.bits=16/asm.os=android for syscalls + tests</li>
<li>Reduce false positives when scanning for syscalls on thumb code</li>
<li>Honor codealign, speedup syscall search emulation</li>
<li>Add anal.imports to analyze them early in aa</li>
<li>Honor RArchInfo.codealign in aar</li>
<li>Honor 'rsym.' flag prefix</li>
<li>Implement the abc- command to unset a bb color</li>
<li>Minor optimization in r_anal_block_op_starts_at</li>
<li>Use r_anal_ref_typemask() to sanitize xref types and update tests</li>
<li>Add and use the new Indirect Code XREF type to improve code coverage</li>
<li>Add the new r_anal_data_type() for better data type detection</li>
<li>Smol ref->type masked improvements</li>
<li>Add more function preludes for arm32</li>
<li>Fix some missing xrefs in /re $$</li>
<li>Handle 'asm.os=android' syscall as an alias for 'linux'</li>
<li>More verbose and clearer output for abl</li>
<li>Add RAnalFunction.traceCoverage() api and info in afi/afl/abi/..</li>
<li>Minor bugfix/improvement when ninstr == 0</li>
<li>Dont show function diff info when not diffing</li>
<li>Don't add more instructions than the ones we can handle in the basic blocks</li>
<li>Faster RAnal.bbTrace()</li>
<li>Add afix subcommand to list function info + xrefs</li>
<li>Add all-xrefs listings in 'afi' and 'afij'</li>
<li>Optimize: reg 32 <-> 64 conversion iterates over gpr only</li>
<li>Optimize anal.roregs</li>
<li>anal.gp also sets the reg value</li>
<li>Do not accept invalid xrefs (-1 <-> -1)</li>
<li>anal.strings does not disable bin.strings</li>
<li>RAnalValue no longer refs an RRegItem</li>
</ul>
<p><strong>api</strong></p>
<ul>
<li>Implement RFile.newf()</li>
<li>Expose call as as a public r_core_cmd_call_str_at</li>
<li>Boolify the RCore.yank</li>
<li>Deprecate r_bin_get_fields</li>
<li>Make r_debug_num_callback internal and remove two R2_590</li>
<li>Use RPluginMeta in RLangPlugin</li>
<li>Rename RCons.chop() into .trim()</li>
<li>Rename RStrpool.ansiChop to ansiTrim()</li>
<li>RFlag.free() must return void</li>
<li>Use RPluginMeta in RBinPlugins</li>
<li>RBinPlugin.loadBuffer() -> load() .. and checkBuffer() too</li>
<li>Add .help() callback for the RCoreBind</li>
<li>Keep RCons.strcat defines for backward compat</li>
<li>Implement the new RAnal.cmd()</li>
<li>Eliminate RBin.a2b()</li>
<li>Deprecate r_anal_op_hexstr()</li>
<li>Ship our own thread safe and portable r_str_tok_r in r_util</li>
<li>Move the base36 api from .h to .c</li>
<li>Delete unused r_cache from rutil</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Implement 'wao recj' for 'tbz/tbnz' arm64 instructions</li>
<li>Fix assembling 'mov ax, bx' for x86-16</li>
<li>Add Initial Support for assembling ARM MTE Instructions</li>
<li>Fix type confusion in pyc</li>
<li>Fix infinite loop exposed in iaito when selecting mcore</li>
<li>Add support for compressed nops in riscv</li>
<li>Add support for fslsp/QorIQ</li>
<li>Fix some op types m680x</li>
<li>Pre-fill op type depending on insn group info m680x</li>
<li>Fill more op fields in m680x</li>
<li>Strip some special chars for intel syntax in m680x</li>
<li>Fix registers description for m680x</li>
<li>List valid CPUs for m680x, specify endianness</li>
<li>Add UB check in the loongarch decoder</li>
<li>Add RArch.esilCb() and register a new op for x86</li>
<li>Implement r_arch_find() and use it from CoreBin</li>
<li>Fix arch.riscv.vs plugin (decoding always failed)</li>
<li>Move the brainfuck arch platform description into a script</li>
<li>Add missing space after comma in 6502 disasm</li>
<li>Implement arch.platform eval var + nes scripts</li>
<li>nds32: Fix esil for sethi, dummy BP for the regprofile and fix rcall/ret5</li>
<li>Initial register profile definition for nds32</li>
<li>Implement esil expressions for some nds32 instructions</li>
<li>Add "intel" syntax support for the nds32 plugin</li>
<li>Implement 'add r#, K' in the x86 assembler</li>
<li>Initial support for nds32</li>
<li>Update arch from Config while finding best matches</li>
<li>Fix rasm2 -a arm.v35 tests on x86</li>
<li>Define more op.type for pyc</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1806024703" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22061" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22061/hovercard" href="https://github.com/radareorg/radare2/issues/22061">#22061</a> - Add 'auipc' instruction for the RV64 assembler</li>
<li>Properly define the conditional software interrupts</li>
<li>Improve SPARC control flow and code coverage</li>
<li>Fix bad esil on arm32 shift-reg instruction</li>
<li>Uncomment the new R_ARCH_INFO enum replacing R_ANAL_ARCHINFO</li>
<li>Handle xrefs from vector instructions on x86</li>
<li>Migrate the LAST and final boss X86 plugin</li>
<li>Unsigned capstone init option only for x86</li>
<li>Improve plugin resolution</li>
<li>Mark init, fini, and decode arch callbacks as const</li>
<li>Remove global state from qjs plugins</li>
<li>Fix division by zero when pcalign is 0</li>
<li>Fix sparc.{cs|gnu} endian behaviour and add tests</li>
<li>s390 b instruction in an UJMP because it depends on a reg</li>
<li>Mark java tests as broken until the arch refactor is done</li>
<li>Unify the invalid instruction behaviour</li>
<li>Make all arch plugins const (better perf)</li>
<li>Remove global state from arm gnu plugin</li>
<li>Removed deprecated variable for gb plugin</li>
<li>Migrate arm_cs plugin</li>
<li>Migrate dalvik plugin</li>
<li>Migrate 8051 plugin</li>
<li>Migrate libr/asm/arch/include</li>
<li>Migrate the mips.cs plugin</li>
<li>Migrate the AVR plugin</li>
<li>Migrate the arm.gnu plugin</li>
<li>Migrate the gameboy plugin</li>
</ul>
<p><strong>asan</strong></p>
<ul>
<li>Fix oobread in the java disassembler</li>
</ul>
<p><strong>asm</strong></p>
<ul>
<li>Fix linenum error message when failing to assemble</li>
<li>Use a hashtable fo the .equ rasm2 directive</li>
<li>Null deref in rasm2</li>
<li>Deprecate r_asm_op_get_buf and make r_asm_code_equ_get public</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Expose numeric reloc type for PE, NE, LE, BFLT, MACH0 and ELF in ir and irj</li>
<li>Rebase LE objects independently</li>
<li>Implement R_X86_64_DTPOFF64 reloc type for ELF</li>
<li>Implement R_X86_64_DTPMOD64 reloc for type for ELF</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2204010506" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22742" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22742/hovercard" href="https://github.com/radareorg/radare2/issues/22742">#22742</a> - Implement R_X86_64_TPOFF64 reloc type for ELF</li>
<li>Fix 'reloc conversion failed' on some ELFs</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2202335846" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22737" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22737/hovercard" href="https://github.com/radareorg/radare2/issues/22737">#22737</a> - Honor endianness in ih for elf + tests</li>
<li>Fix LE sections sizes and add zerofills</li>
<li>Fix handling of LE cross-page relocs</li>
<li>Fix entry point field name discrepancy in .ih* between 32bit and 64bit ELF</li>
<li>Support arm64 type 1026 relocs</li>
<li>Patch relocs in LE</li>
<li>Implement irqq and move the command handler out of the subcommand loop</li>
<li>Do not report bad imports addresses in elf objects</li>
<li>Better logging for unsupported arm64 elf relocs</li>
<li>Initial import of the RBin.io plugin</li>
<li>Improve uricheck to avoid bin.relocs.apply mess things up</li>
<li>Support unlimited buffer size for PE format</li>
<li>Fix kernelcache sections vaddr offset</li>
<li>Fix rebasing of dyld cache pointers at page boundary</li>
<li>Add support for iOS Simulator dyld caches</li>
<li>Fix/respect bin demangle macho c++ bins v3</li>
<li>Walk Mach-O exports from LC_DYLD_EXPORTS_TRIE too</li>
<li>Update pyc magic detection</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2086476837" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22539" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22539/hovercard" href="https://github.com/radareorg/radare2/issues/22539">#22539</a> - Remove 2044 max hard limit in string scan</li>
<li>Implement the ciE command to compare exports between two objects</li>
<li>Add initial support for vsf dialect produced by C64 Debugger app</li>
<li>Handle ^C when loading/filtering symbols just in case</li>
<li>Use RBinName in RBinSymbol</li>
<li>Support coff objects</li>
<li>Fix security issues in coff plugin</li>
<li>Support XCOFF entrypoint and imports via loader</li>
<li>Fix how local symbols are matched to images in dyldcache</li>
<li>Allow images to be repeated with different names in dyldcache</li>
<li>Fix "alien dep" infinite loop carving deps in dyldcache</li>
<li>Basic XCOFF32 section handling</li>
<li>Support WinNT RISC COFF and AIX XCOFF32</li>
<li>Support DWARF section names for XCOFF64</li>
<li>Refactor ih outside the awful i loop, add ihh and fix ihq/ihj..</li>
<li>Improve RBinField to hold and expose the value in the flag names</li>
<li>Fix pf format size warnings in .ih* for ELF</li>
<li>Use RBinName for RBinClass too</li>
<li>Add support for list-of-lists in ObjC class parsing</li>
<li>Fail loading dyldcache if not using dsc://</li>
<li>Move dyld cache rebasing logic to io plugin</li>
<li>Improved ia tests and trim trailing spaces in strings</li>
<li>Refactor to use RBinName for RBinField(s)</li>
<li>Use RBinPlugin.symbolsVec() in Kernelcache</li>
<li>Handle R_KERNELCACHE_FILTER env in RBin.kernelCache</li>
<li>Deprecate addrline2, it's only used internally</li>
<li>Implement iSqq and iSSqq commands</li>
<li>m68k is 32 bit</li>
<li>Fix entry point determination and info for HUNK file parser</li>
<li>Revert "Initial part of a large refactoring using RBinName, unified attributes</li>
<li>Fix bin.limit for macho imports</li>
<li>Initial part of a large refactoring using RBinName, unified attributes</li>
<li>Handle Kotlin as an alias for Java in icc classdump</li>
<li>Initial implementation of RBinName and RBinAttr</li>
<li>Handle Swift demangling for __C. symbols</li>
<li>Hide visibility string if empty and show more Swift super-classes</li>
<li>Parse Swift super classes</li>
<li>Parse Swift field types</li>
<li>Fix symbol range bug in isq.</li>
<li>Support symbolic symbols in the swift demangler</li>
<li>Reintroduce RBinPlugin->{init/fini} for plugins that need to initialize a third party global runtime</li>
<li>Initial implementation of iic and improved symclass</li>
<li>Import safetiness symbol name database from iaito</li>
<li>Show base address associated with the binobj in obj</li>
<li>Handle more builtin types in the swift demangler and be more flexible</li>
<li>Faster ASAN CI by improving parsing checks in LE bins</li>
<li>Add C++ classdumper</li>
<li>Fix warning spotted in latest gcc failing msvc demangler</li>
<li>Prepend dynamically loaded bin plugins befor static bin plugins</li>
<li>Implement <code>ick</code> to dump classes in k=v form</li>
<li>Implement Swift formatter for <code>icc</code> and change some objc things</li>
<li>Fix header miscalculation</li>
<li>Introduce some memleaks in order to fix ownership later and avoid UAF now</li>
<li>Add support for qdsp6 elf relocs</li>
<li>Add test and avoid double path concats in some dwarfs</li>
<li>Honor baddr in the dwarf parsing</li>
<li>Some more code cleanup in the swift metadata parser</li>
<li>Demangle Swift methods and support __s types</li>
<li>Detect nds32 arch in ELF binaries</li>
<li>Support demangling swift types</li>
<li>Demangle Swift superclass names earlier and laterer in the popaline</li>
<li>Don't push NULL into the klass->super empty list</li>
<li>Add ic+/ic- to register new classes and methods</li>
<li>Shrink dynstr section size to file bounds if needed</li>
<li>Fix null deref in the ELF parser when dynstr section is too large</li>
<li>Bring back the bin.cache, and warn about bin.relocs.apply too</li>
<li>Support RVec in mangling/swift</li>
<li>Demangle dynamic attributes for Swift</li>
<li>Move dyldcache symbols to symbols_vec</li>
<li>Fix uninitialized mach0 opts in dyldcache loading</li>
<li>Fix type confussion bug in the RBin.loadLangs()</li>
<li>Remove the boffset callback from the ninds and z64 plugins</li>
<li>Remove init/fini from RBinPlugin</li>
<li>Remove unnecessary arguments to RBin.loadBuffer()</li>
<li>Fix early bail out in dwarf-only Mach-O symbol parsing</li>
<li>Revert buggy "Fix ub in macho classparsing" and add test</li>
<li>Take .got and .rela.plt into account as wordable sections</li>
<li>Rename RBinFile->o => RBinFile->bo</li>
<li>Fix visibility of r_bin_class_{new/free}</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1816919367" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22096" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22096/hovercard" href="https://github.com/radareorg/radare2/issues/22096">#22096</a> - Stop on zero vernext for ELF</li>
<li>Optimize mach0 va2pa by using vec</li>
<li>Don't load macho segments over and over, use vec</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="598309865" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/16531" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/16531/hovercard" href="https://github.com/radareorg/radare2/issues/16531">#16531</a> - vaddr of strings in kernelcaches</li>
<li>Fix canary check in mach0 binaries</li>
<li>Fix elf tests</li>
<li>Use symbols_vec in the ELF parser</li>
<li>Improvements on the rust and c++ mangling detection</li>
<li>RBinSymbol api now works with RVec for mach0</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1813050972" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22080" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22080/hovercard" href="https://github.com/radareorg/radare2/issues/22080">#22080</a> - Segfault in xtr.sep64 parser</li>
<li>Add support for PT_OPENBSD_NOBTCFI in the ELF parser</li>
<li>Deprecate RBin.isString() API</li>
<li>Initial public vector api for rbin</li>
<li>Add RABIN2_NOFUNCSTARTS env var to speedup macho parsing ignoring the FUNCSTART info</li>
<li>Handle bin.limit in ELF and support strings, imports, ..</li>
<li>Warn when finding compressed dwarf sections</li>
<li>Honor io.va in class/method/field listing</li>
<li>Add bin.limit eval var and use it for macho</li>
<li>Fix ELF variable scope UB issue causing asan CI to fail</li>
<li>Introduce RBinImport.lsymbol and move the rsym. logic from core</li>
<li>ElfObject now takes a user-defined base address</li>
<li>ELF's .rel.plt is also a wordable section</li>
<li>More debug logs and less strictness in the ELF parser</li>
<li>Dont show the demangled relocs when no name in json</li>
<li>Fix null deref in the dyldcache parser</li>
<li>Use the internal RVector in mach0.vapa</li>
<li>Rename internal function</li>
<li>Import the bin.pcap plugin from extras</li>
<li>Support bin details from non-arch bin files</li>
<li>Use more overlay for relocs</li>
<li>Make RBinSymbol.clone() API public</li>
<li>The addr2line function, now also returns the column</li>
<li>Unresolved elf symbols are now debug logs</li>
<li>Use ut64 for bin bind offsets</li>
</ul>
<p><strong>bin"</strong></p>
<ul>
<li>Revert "Initial part of a large refactoring using RBinName, unified attributes</li>
</ul>
<p><strong>bug</strong></p>
<ul>
<li>Fix invalid macro identifiers in r_print</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2204543108" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22745" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22745/hovercard" href="https://github.com/radareorg/radare2/issues/22745">#22745</a> - Fix Android static builds and autodetect NDK on Ubuntu</li>
<li>Honor --prefix in /sys/install.sh</li>
<li>Fix static linking on macOS</li>
<li>Add --disable-debugstuff to build without R_LOG_DEBUG, ^C and other stuff</li>
<li>Less default plugins for the custom meson</li>
<li>Fix regression in capstone 5.0.1 (--with-syscapstone)</li>
<li>Support static linkages via pkg-config</li>
<li>Add --without-syscapstone commandline flag, needed for asan</li>
<li>Fix mrproper on BSD systems (max args for rm)</li>
<li>Add support for cs5 and csnext</li>
<li>Initialize xtensa_default_isa to fix clang's linker bug</li>
<li>Honor nogpl for xtensa in the meson</li>
<li>Use capstone-5.0 release tarball (instead of 4.0.2)</li>
<li>Use realpath to force absolute path in sys/install.sh prefix</li>
<li>LZ4 removal for make and meson, relates to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1175463106" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/19849" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/19849/hovercard" href="https://github.com/radareorg/radare2/issues/19849">#19849</a></li>
<li>Use relative includes instead of assuming libr/arch/include</li>
<li>Haiku have ptrace but not sys/ptrace.h</li>
<li>Fix 'missing setsockopt' issue on HaikuOS</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>Add copilot support for pull requests</li>
</ul>
<p><strong>config</strong></p>
<ul>
<li>PDB server list is now space separated instead of using semicolons</li>
<li>Rename asm.usercomments to asm.cmt.user</li>
<li>Check cons->line is there in <code>scr.demo</code> setter</li>
<li>Introduce bin.relocs.apply config var</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Revert "Minor optimization by avoiding one unnecessary clearline in the dietline</li>
<li>Minor optimization by avoiding one unnecessary clearline in the dietline</li>
<li>Add log.cons option to log errors through the RCons buffer</li>
<li>Add missing r_cons_canvas_goto_write</li>
<li>Make it possible to use Enter to submit the command in dietline vi-mode</li>
<li>fix minor bugs</li>
<li>simplify code</li>
<li>Implement vi horizontal motions (f/F & t/T) + more di (delete in) vi commands in dietline</li>
<li>Implement <code>~</code> (swap case) dietline vi-mode command + fix color bug in prompt</li>
<li>Refactor <code>d</code> (delete) commands and implement <code>c</code> (change) commands in dietline vi-mode</li>
<li>Fix word deletion bugs in dietline vi-mode</li>
<li>Improve dietline vi-mode word motion commands (b, e, d)</li>
<li>Make behaviour of some dietline vi commands closer to vim's</li>
<li>Don't print empty lines via io.system</li>
<li>Make r_cons_pal_parse to always return ansi + RColor</li>
<li>Fix XML indent</li>
<li>Initial support for sixel graphics</li>
<li>VC and VVC rotate over 0,1,2,3 values in scr.color</li>
<li>Support bold attribute for the scr.html filter</li>
<li>Minor scr.demo improvements on startup</li>
<li>Implement the golden platinum shiny prompt</li>
<li>Fix ~{}~foo grepping indented json</li>
<li>Rename gui.alt_background -> gui.background2</li>
<li>Fix RCons.pal varnames to make them all follow the same syntax</li>
<li>Add <code>ec func_var_name</code> in the color palette</li>
<li>Disable the RConsMark api because getCursor is too slow</li>
<li>Add the monochrome theme</li>
<li>Free cons context marks during deinit</li>
<li>Better default colors that works for light and dark terminals</li>
<li>Initial implementation of the RConsMark API</li>
<li>Eliminate some globals</li>
</ul>
<p><strong>cons"</strong></p>
<ul>
<li>Revert "Minor optimization by avoiding one unnecessary clearline in the dietline</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Use size or vsize consistently in iS.</li>
<li>Fix iS. paddr vaddr confusion</li>
<li>Add sd command to show the delta seek relative to different bases</li>
<li>Faster RCoreCall via RCoreCmd</li>
<li>Add more RCore.cmd_at() variants</li>
<li>Remove global state in visual UI</li>
<li>Refactor structure of metadata for core plugins</li>
<li>Fix removing core plugins from Lc after L-</li>
<li>Only have 1 generic qjs plugin</li>
<li>Add cursor mark to ds_print_data_type</li>
<li>Add cons mark for cursor in ds_print_show_cursor</li>
<li>Add column info to print_meta_offset</li>
<li>Add hello world text box on visual refresh</li>
<li>Expose injprot value in bin_info</li>
<li>Speedup plugin loading and startup times</li>
<li>Add the new RCore.cmdCallAt() and cmdfAt() APIS</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2216358347" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22767" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22767/hovercard" href="https://github.com/radareorg/radare2/issues/22767">#22767</a> - Some UB when malloc(0) in RBuffer api</li>
<li>Dont use the COFF symtable if the initalization fails</li>
<li>Fix segfault when loading a python rlang plugin after a qjs one</li>
<li>Dim symbol and section count to avoid future coff issues</li>
<li>Add null terminator in symbol name union, fixes two tests</li>
<li>Add test for the fuzzed coff file</li>
<li>Fix large offset passed to the pascal demangler</li>
<li>Fix double free in the io.gprobe plugin</li>
<li>Fix oobread on the inline metadata used in disasm</li>
<li>Fix another oobread in the nds32 disassembler and add tests</li>
<li>Fix index out of bounds in the nds32 disassembler</li>
<li>Fix heap buffer overflow in the mach0 parser</li>
<li>Fix oobread in dalvik disassembler</li>
<li>Fix negative index and oobread in array in pyc</li>
<li>Fix negative realloc in the ELF parser</li>
<li>Fix 1 byte oobread in the h8300 by defining the archinfo details</li>
<li>Fix 1 byte overflow in pyc parser</li>
<li>Use the safe r_str_scanf instead of scanf to parse gdb profile</li>
<li>Fix op_pos oobread crash in ollvm'd binary</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2061904224" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22523" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22523/hovercard" href="https://github.com/radareorg/radare2/issues/22523">#22523</a> - 1 byte oobread in the java disassembler</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1965363992" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22349" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22349/hovercard" href="https://github.com/radareorg/radare2/issues/22349">#22349</a> - oobread in xnu kernelcache</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1954592663" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22333" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22333/hovercard" href="https://github.com/radareorg/radare2/issues/22333">#22333</a> - Fix oob index in global variable for nds32</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1954595581" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22334" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22334/hovercard" href="https://github.com/radareorg/radare2/issues/22334">#22334</a> - oob index in global for nds32 causing segfault</li>
<li>Improve the situation in the non-null terminated string handling in mach0land</li>
<li>Fix oobread in the ELF parser. Spotted by clusterfuzz</li>
<li>Fix null deref assert in pdj</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1775988759" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21970" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21970/hovercard" href="https://github.com/radareorg/radare2/issues/21970">#21970</a> - Null checks in the R_LOG api</li>
<li>Fix crash in emu.ssa reproducible even when disabled</li>
<li>Fix oobs in the java parser, use RLOG and stop earlier</li>
</ul>
<p><strong>crypto</strong></p>
<ul>
<li>Add json and hexpairs output to encryption modes in rahash2</li>
<li>Support numeric seed/key values via rahash2 -S and honor endianness via -e</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Fix the fix for dmh after ood</li>
<li>adapt get_main_arena_offset_with_relocs to different libc versions</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2165785632" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22667" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22667/hovercard" href="https://github.com/radareorg/radare2/issues/22667">#22667</a> - do not call drx() on non-intel chips</li>
<li>Add new way to resolve main_arena</li>
<li>Refactor resolve_glibc_version, improve libc regex</li>
<li>Fix call to thread_set_state in armv7</li>
<li>Fix armv7 build for xnu native</li>
<li>Avoid failing reg read if conversion fails on xnu native</li>
<li>Fix thread_set_state on arm64e</li>
<li>Improve argument parsing for the dmp command</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2117144027" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22563" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22563/hovercard" href="https://github.com/radareorg/radare2/issues/22563">#22563</a> - fix 'cannot assemble' in dmp, using egg shellcodes</li>
<li>Autodetect libc version and support manual specification</li>
<li>Import the debug.evm plugin from radare2-extras</li>
<li>Fix bad parsing, uaf and other crashes in the dts command</li>
<li>dcco steps over the function call after finding the call</li>
<li>Fix bitsize when listing regs via ar=</li>
<li>Debug plugin fallbacks</li>
<li>Add the missing bp.null plugin</li>
<li>Assume sysgdb:// implies -d</li>
<li>Add support for macos-x86-64 in sysgdb://</li>
<li>Initial support for arm64 via lldb (local and remote) in sysgdb://</li>
<li>No warnings when /proc/pid/maps is not available on remote gdb targets</li>
<li>Revert "Dont dupe map file and name if not necessary</li>
<li>Dont dupe map file and name if not necessary</li>
<li>Prefix 0x hex values in drr</li>
<li>Fix dptj and add dpt? help match</li>
<li>Implement 'dpq' command to just show the current pid</li>
<li>Add dbg.glibc.path eval var to override magic guessing</li>
<li>dce is no longer a windows-specific command</li>
<li>Refactor r_debug_trace_list</li>
<li>Store tracepoints in vec</li>
<li>Migrate rv32ima plugin</li>
<li>Migrate gdb plugin</li>
<li>Migrate winkd plugin</li>
<li>Migrate qnx plugin</li>
<li>Migrate bochs plugin</li>
<li>Store current debug plugin session, migrate plugin</li>
<li>Improve naming for callback functions to reduce confusion</li>
<li>Add cleanup of plugins</li>
<li>Redesign plugins to have user data</li>
<li>Add RRegType "privileged" and use it from the gdb profile</li>
</ul>
<p><strong>debug"</strong></p>
<ul>
<li>Revert "Dont dupe map file and name if not necessary</li>
</ul>
<p><strong>diff</strong></p>
<ul>
<li>Analysis diffing warnings are now debug messages</li>
<li>Implement EXPERIMENTAL <code>radiff2 -T</code> to analyze bins in parallel</li>
<li>Handle one more level of -A in radiff2</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2125123250" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22576" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22576/hovercard" href="https://github.com/radareorg/radare2/issues/22576">#22576</a> - Add esil object in pdJ with detailed info</li>
<li>Dont show asm.emu comments when asm.comments is off</li>
<li>Rename asm.calls to asm.cmt.calls</li>
<li>Fix glitch in asm.bytes.space</li>
<li>Implement <code>pdsq</code> and <code>pdsfq</code> commands. Improve help message</li>
<li>Fix glitch when asm.bytes.space+asm.bytes.align+asm.nbytes%2</li>
<li>Improve asm.offset.relto only via pd</li>
<li>Avoid double disasm in some situations</li>
<li>Emulate previous basic block instructions when emu.bb is set</li>
<li>Implement emu.bb and honor it in <code>pd</code></li>
<li>More stable asm.indent, but still experimental</li>
<li>Add asm.flags.inoffset</li>
<li>Add asm.flags.prefix (true by default)</li>
<li>Show basic block color even if asm.trace is false</li>
<li>Show noreturn attribute in the function signature</li>
<li>Add asm.lines.limit config variable to hide asm.lines if disasm is larger</li>
<li>Fix glitch + tests asm.bytes.{align,space}</li>
<li>Improved unaligned cases in the listings</li>
<li>Add asm.trace.{stats|color} and better trace visualization in graph and disasm</li>
</ul>
<p><strong>doc</strong></p>
<ul>
<li>Update rax2 manpage and fix help</li>
<li>Add r2pipe2.md RFC</li>
<li>Extend the manpage reader to support more attributes</li>
<li>Update manpage for rasign2</li>
<li>Update ESIL manpage</li>
<li>Update rafind2 manpage</li>
<li>Update documentation for macOS/arm64e</li>
<li>README: Fix unit tests target after <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/radareorg/radare2/commit/fd9f8d631fa4f9eca5a91695157354dd3f51acd0/hovercard" href="https://github.com/radareorg/radare2/commit/fd9f8d631fa4f9eca5a91695157354dd3f51acd0"><tt>fd9f8d6</tt></a></li>
<li>Add r2diaphora reference in the readme</li>
</ul>
<p><strong>emulation</strong></p>
<ul>
<li>Implement arAj and show help in arA?</li>
<li>Fix aesou - not stop on calls and properly parse argument</li>
<li>abpe now runs the commands and old abpe is now abpe*</li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Add the esil.forth plugin to support the basic ops for the language to work</li>
<li>Initial implementation of the ESIL compiler in the ae! command</li>
<li>Move esil2c from core to libr.esil</li>
<li>New command 'aeae', like aea, but taking an esil expression as argument</li>
<li>Add '= ' and ':= ' esil ops as a workaround for <code>ae</code> oneliners</li>
<li>Implement dre/are to list regs in esil format</li>
<li>Add loopcounts to ESIL trace</li>
<li>Remove global state for old callbacks</li>
<li>Reintroduce r_esil_plugin_remove to satisfy generic plugin management in core</li>
<li>Fix esil_plugin_remove</li>
<li>anal->esil can't be null now, improve default initialization</li>
<li>Improve aesue feedback and add tests</li>
<li>Fix 'ae 1,xmm0,=', bug in '=' esil op with 128bit regs</li>
<li>Fix x86 XOR ESIL for 64bit registers</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1794765432" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22029" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22029/hovercard" href="https://github.com/radareorg/radare2/issues/22029">#22029</a> ESIL for REP[Z] RET</li>
<li>Fix esil plugins by removing leftover and adding aeL command</li>
</ul>
<p><strong>fix</strong></p>
<ul>
<li>Fix mnemonic output in m680x plugin</li>
</ul>
<p><strong>fs</strong></p>
<ul>
<li>Expose ownership and permissions to the posix filesystem</li>
<li>Show error when unmounting not mounted mountponts</li>
</ul>
<p><strong>globals</strong></p>
<ul>
<li>Remove globals from bin.avr</li>
</ul>
<p><strong>graph</strong></p>
<ul>
<li>Fix graph title not current</li>
<li>Honor colors in graphviz output</li>
<li>Add graph.bb.maxwidth eval var and VV[] keys to adjust it</li>
<li>Use VisualMark in the interactive graphs</li>
<li>Honor pal.title color in the interactive graph</li>
<li>Add '%' key in the interactive graph to hud over function code</li>
<li>Fix segfault and wrong graph layout in aegv</li>
</ul>
<p><strong>hash</strong></p>
<ul>
<li>Add missing authors for the crypto plugins, update manpage</li>
</ul>
<p><strong>io</strong></p>
<ul>
<li>Add dyld shared cache rebase info v5</li>
<li>Fix potential double free in io_map_overlay and io_treebuf</li>
<li>Bring seek error back to UT64_MAX in dsc</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1899561195" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22269" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22269/hovercard" href="https://github.com/radareorg/radare2/issues/22269">#22269</a> - RAP seek over 2GiB</li>
<li>Support whole address space for IO</li>
<li>Show error when user applies relocs on urified ios</li>
<li>Remove unused undo field in RIOPlugin</li>
<li>Fix r_io_v2p</li>
<li>Revert "Large null:// allocation causing negative pointer issues on iobank</li>
<li>Improve map tying support</li>
<li>Move dyld cache rebasing logic to io plugin</li>
<li>Add dsc:// io plugin for dyld cache</li>
<li>Adjust map boundaries on RIODesc resize</li>
<li>Assure map boundary sanity on creation</li>
<li>Faster frida://0 startup times</li>
<li>Add gprobe:// flash commands</li>
<li>Properly handle gprobe:// Print-messages</li>
<li>gprobe:// receiving is fixed, so checksums can be verified</li>
<li>Make sure that gprobe:// data is completely sent before receiving</li>
<li>Fix gprobe:// serial port setup, so no CR/LF conversion happens</li>
<li>Implement :j for ihex:// (json info)</li>
<li>Implement :i in ihex:// to generate a new ihex</li>
<li>Add system callback for the ihex:// plugin to get the written ranges</li>
<li>Fix infinite loop in io.ihex</li>
<li>Honor <code>r2 -n</code> with frida:// targets</li>
<li>Add x86-32 support to sysgdb://</li>
<li>Initial import of the sysgdb:// plugin</li>
<li>Implement r_io_bank_get_byname and the omnb= command</li>
<li>Implement the new cyclic:// plugin</li>
<li>om handles the '.' as an alias for the current fd</li>
<li>Implement "o=num|flag" to change current fd</li>
<li>Implement o** and om** to jsut get the flags</li>
<li>Fix io.seek bug in self://</li>
<li>Relax =+rap://ip/ (missing file) assert check</li>
<li>Fix type of enabled field in io cache</li>
<li>Refactor structure of metadata for io plugins</li>
<li>Fix memory leak with cleaning up qjs io plugins</li>
<li>Implement qjs bridge for r2frida via io->system</li>
<li>Add r_io_bank_get_region_at and r_io_get_region_at</li>
<li>Harden some makros</li>
<li>Add map overlay support to r_io_bank_write_to_submap_at</li>
<li>Add r_io_map_drain_overlay and r_io_drain_overlay</li>
<li>Some hardening for r_io_map_write_to_overlay</li>
<li>Deprecate RIORelocMap; Introduce RIOMap overlay</li>
<li>Add wc--* command to purge all cache layers</li>
<li>Redesigned IO cache with layers</li>
<li>Fix bug in io_treebuf plugin</li>
<li>Add r_io_{desc/fd}_system</li>
<li>Switch to the new io cache implementation, remove old code</li>
</ul>
<p><strong>io"</strong></p>
<ul>
<li>Revert "Large null:// allocation causing negative pointer issues on iobank</li>
</ul>
<p><strong>js</strong></p>
<ul>
<li>Add JSON output to /e</li>
<li>Honor cfg.json in axt and other a subcommands</li>
<li>Honor cfg.json.num in pj_n too</li>
<li>Upgrade r2papi to the latest 0.2.2 adding Process and Module objects</li>
<li>Only show fields and methods json objects if not empty</li>
<li>Improve Ldj and Lcj outputs</li>
</ul>
<p><strong>json</strong></p>
<ul>
<li>Add JSON output to /e</li>
<li>Honor cfg.json in axt and other a subcommands</li>
<li>Honor cfg.json.num in pj_n too</li>
<li>Only show fields and methods json objects if not empty</li>
<li>Improve Ldj and Lcj outputs</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>To use r2pipe-ts we depend on nodejs, so ts scripts need node now</li>
<li>Implement r2pipe on the r2js lang plugin</li>
<li>Use the core api to run home scripts and handle more extensions</li>
<li>Fix nim and typescript plugins</li>
<li>Implement r2.callAt and speedup r2.call for the qjs</li>
<li>Fix js warnings when R2_DEBUG_NOPAPI is set</li>
<li>Expose the global 'ptr' function like in Frida</li>
<li>Update r2papi.ts to 0.1.2: add new apis</li>
<li>Add js example converting json zignatures into r2 scripts</li>
<li>Add r2.syscmd and r2.syscmds for lang.qjs</li>
<li>Support qjs.io.close callback</li>
<li>Add initial support for writing IO plugins in QJS</li>
<li>Refactor qjs code</li>
<li>Allow N > 5 qjs plugins</li>
<li>RLangPluginInit now returns bool</li>
</ul>
<p><strong>optimization</strong></p>
<ul>
<li>Slight code improvement for init_ehdr</li>
</ul>
<p><strong>panels</strong></p>
<ul>
<li>Add 'Full Version' entry in the help menu</li>
</ul>
<p><strong>perf</strong></p>
<ul>
<li>Inline sdb.hash improve performance in hash</li>
</ul>
<p><strong>port</strong></p>
<ul>
<li>Fix MSVC Arm support</li>
<li>Fix archos detection on AIX</li>
<li>Portability fixes</li>
<li>mangling/microsoft: Fix dollar in identifier</li>
<li>AIX configure support</li>
<li>Don't use /dev/stderr</li>
<li>Fix lock_init sym collision on AIX</li>
<li>Add AIX config support</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Add colors and improve the pie chart rendering a bit</li>
<li>Add <code>pf2</code> using util/format2.c as wip refactoring</li>
<li>Fix hexdump with half rows filled and pairs=false</li>
<li>Fix inter basic block <code>goto loc</code> in pdc</li>
<li>Implement <code>afsv</code> command to visualize function signature with given args</li>
<li>Implement pv1d vs pv1u</li>
<li>Reduce cache misses in JSON parsing apis</li>
<li>Implement pso in sync with /az to search strings constructed with code</li>
<li>Implement pvd command (pv2d, pv4d), like pv, but in decimal</li>
<li>Add support for 16 and 32bit pascal strings</li>
<li>Implement p8d command to print bytes in decimal</li>
<li>Implement psn command to print string until newline</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Fix r2pm on some windows (packages contain \r\n instead of \n</li>
<li>Make R2PM_PLUGDIR point to the system directory in global mode</li>
<li>Add support for R2PM_CONFLICT</li>
<li>Dont load r2 plugins when called from packaging</li>
<li>Add R2PM_LIBDIR env var</li>
<li>Fix update requirements to make startup faster</li>
<li>Make -U implicit when there's no dbdir cloned yet</li>
<li>Don't reinstall pkg dependencies when not doing clean installs if thay are already there</li>
<li>r2pm -t now tags tags/commits and it's now strict</li>
<li>R2PM_SUDO + SUDO just in case</li>
<li>Set library path for r2 prefix and r2pm prefix in r2pm -r</li>
<li>Deprecate the wordish arguments in r2pm</li>
</ul>
<p><strong>r2r</strong></p>
<ul>
<li>Load plugins when running extra tests</li>
<li>Add R2R_TIMEOUT env for r2r and use it from the CI</li>
<li>Add missing error code checks in chdir calls</li>
</ul>
<p><strong>rax2</strong></p>
<ul>
<li>Add RPrint.binFromStr and RStr.binstr2bin and RStr.binstr2str</li>
</ul>
<p><strong>refactor</strong></p>
<ul>
<li>Renaming r_num_get_float to r_num_get_double</li>
<li>Make clear that r_return* is a macro!</li>
<li>elf_init: Clean up the code a little bit</li>
<li>Use .inc.c in libr/core</li>
</ul>
<p><strong>reg</strong></p>
<ul>
<li>Implement 24bit regwrite support</li>
<li>Add =TR to reference the thread register in the register profile</li>
<li>Optimize r_reg_cond_from_string</li>
<li>Add GP and RA register alias names</li>
</ul>
<p><strong>sdb</strong></p>
<ul>
<li>Fix undefined behavior in swisstable impl</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Add support for globbing flags for <code>search.in</code></li>
<li>Honor search.badpages in RCore.analSearchXrefs</li>
<li>Add search.named option (disabled by default)</li>
<li>Improve syscall search results on x86 (/as)</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Support using the question mark in rlang plugin calls</li>
<li>Add base64 for CC (not only CCu)</li>
<li>Add "b=" command as an alias for "b "</li>
<li>Handle ^F and ^B in RCons.less</li>
<li>Handle -jv and make that logic generic across all tools</li>
<li>Make rahash2 -qc really quiet (report only via return code)</li>
<li>Support internal files in the tac command</li>
<li>Bring back the multiline macro support</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2158519308" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22656" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22656/hovercard" href="https://github.com/radareorg/radare2/issues/22656">#22656</a> - Handle quoted pipes</li>
<li>Add scr.timeout covering the ^C blocks</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2157467535" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22652" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22652/hovercard" href="https://github.com/radareorg/radare2/issues/22652">#22652</a> - Handle ^C in pdj</li>
<li>Improve help message for <code>afl,?</code></li>
<li>Initial WIP implementation of pl</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2133841739" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22594" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22594/hovercard" href="https://github.com/radareorg/radare2/issues/22594">#22594</a> - Handle long flags in r_getopt as an alias for help</li>
<li>Implement support for json and r2 output for %env</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2130583038" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22588" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22588/hovercard" href="https://github.com/radareorg/radare2/issues/22588">#22588</a> - Support multiple redirections in the same line</li>
<li>Fix error and add missing help for <code>r2 -qc '?*~abcd' --</code></li>
<li>afbt -> afb,</li>
<li>Refactor <code>ie</code> outside the subcommand loop</li>
<li>Move 'ic?' help into a separate listing</li>
<li>Add support for wide pascal strings</li>
<li>Fix dc derivatives causing unintended seek</li>
<li>Initial ic, ia refactor and make icc take lang as argument</li>
<li>Fix <code>?*></code> dumping to screen</li>
<li>Implement ~$$ for internal sort+uniq grep filter</li>
<li>Port <code>iaj</code> fixing some invalid json bugs</li>
<li>Fix iiqq confussion and start delooping the i subcommands</li>
<li>Add afn* command</li>
<li>0x command also saves seek history</li>
<li>Verbose R2_ARGS for debugging purposes</li>
<li>pdua now takes a math arg, not just a number</li>
<li>Keep r2 short help under 80 columns</li>
<li>Implement sfp and sff commands to seek nearest function or flag</li>
<li>Fix popd warning when there's only 1 pushed folder</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1960326153" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22344" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22344/hovercard" href="https://github.com/radareorg/radare2/issues/22344">#22344</a> - Fix invalid json in <code>ax.j</code> command</li>
<li>Hide the rasm2/rabin2/.. unrelated plugin loading errors</li>
<li>Add afcj as an alias for afcfj</li>
<li>Add help for arb?</li>
<li>Fix code instead of help message for the yank command</li>
<li>Add more emojis for <code>ls -e</code></li>
<li>Fallback to 'o.' when running dpe without debugger</li>
<li>Implement iE, command to table-query exported symbols</li>
<li>Fix glitch iterating script files provided via -i</li>
<li>Honor bin.lang in the icc command</li>
<li>Recognize the 'yr' command as owned by r2yara</li>
<li>Show bools as bools and ints as ints in <code>ej</code> json output</li>
<li>Fix 'unknown subcommand' error in ?* .. aet?</li>
<li>Add im* subcommand and honor bin->mem callback</li>
<li>Add <code>obi</code> as an alias for <code>i</code></li>
<li>Expand r2 -Vj output to include all plugins, thirdparty and other version info</li>
<li>Implement 'Lbj' to list bin plugins in json</li>
<li>Bring back the r2 -Lj, and fix -LLj</li>
<li>Add scr.prompt.code to display return code in the prompt</li>
<li>Add signed subcommand for the <code>pv</code> family</li>
<li>List analysis plugins with the 'a:' command</li>
<li>Implement missing Lb command</li>
<li>Fix |H and temporal scr.html</li>
<li>Add 'aet' +help, fix assert in 'r2 -d XXX' and RConfig.getB</li>
<li>Support 'e key.?' syntax as alternative to 'e?key.'</li>
<li>Fix <code>?vi [1:$$]</code> to read 1 byte from current offset</li>
<li>Add ~<> cons filter to indent XML</li>
<li>Reference abc command in the afbc help message</li>
<li>abt->abp (path between bbs) and add the new abt for tracing tags</li>
<li>Fix some bugs in the ls command parsing</li>
<li>Fix 'ar=32' vs 'ar= 32' both are valid</li>
<li>Fix autocompletion for pfc.</li>
<li>Add file.anal times in ?T</li>
</ul>
<p><strong>shlr</strong></p>
<ul>
<li>Fix qjs MSVC support</li>
<li>sdb-sync</li>
<li>Improve quickjs portability</li>
</ul>
<p><strong>signatures</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1838542437" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22132" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22132/hovercard" href="https://github.com/radareorg/radare2/issues/22132">#22132</a> - Add support for loading zignatures in multiple formats</li>
</ul>
<p><strong>test</strong></p>
<ul>
<li>Fix running arch/debug specific tests in r2r</li>
<li>Implement the NORUN directive for r2r</li>
<li>Some more tests for the COFF bigobj binary</li>
<li>Add 'F' in r2r to fix all tests, fix fgets usage</li>
<li>Fix mnemonic output in m680x plugin</li>
<li>Implement ENV directive for r2r</li>
<li>Implement they REPEAT directive for r2r</li>
<li>Use meson in the perf suite, add GHA scripts and 'make some'</li>
<li>Add memory log parser</li>
<li>Initial implementation of the benchmark suite</li>
<li>Fix <code>cd test/db/cmd && r2r .</code></li>
<li>Document R2R_OFFLINE</li>
<li>Fix return code when running r2r against .c files</li>
<li>Accept .c files as argument to r2r</li>
</ul>
<p><strong>tests</strong></p>
<ul>
<li>Fix running arch/debug specific tests in r2r</li>
<li>Implement the NORUN directive for r2r</li>
<li>Add 'F' in r2r to fix all tests, fix fgets usage</li>
<li>Implement ENV directive for r2r</li>
<li>Implement they REPEAT directive for r2r</li>
<li>Use meson in the perf suite, add GHA scripts and 'make some'</li>
<li>Add memory log parser</li>
<li>Initial implementation of the benchmark suite</li>
<li>Fix <code>cd test/db/cmd && r2r .</code></li>
<li>Document R2R_OFFLINE</li>
<li>Fix return code when running r2r against .c files</li>
<li>Accept .c files as argument to r2r</li>
</ul>
<p><strong>thread</strong></p>
<ul>
<li>Current cmd.depth depends on core, not on the global cons context now</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2189222279" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22698" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22698/hovercard" href="https://github.com/radareorg/radare2/issues/22698">#22698</a> - Implement rax2 -j flag for json output</li>
<li>Rename rax2 -l to rax2 -n</li>
<li>Rename rax2 -n/-N to rax2 -x/-c</li>
<li>Rename rax2 -x to rax2 -X</li>
<li>Support quiet json plugin listing in rahash2 via -qjL or -jjL</li>
<li>Implement rahash2 -Lj to list plugins in JSON</li>
<li>Fix rax2 -l behaviour</li>
<li>Implement R2_ARGS environment</li>
<li>Handle RARUN2_ARGS env var in rarun2</li>
<li>Swap -a and -A in rasign2</li>
</ul>
<p><strong>util</strong></p>
<ul>
<li>Handle URL safe base64 decoding</li>
<li>Implement the sub-beats computation in RTime.beats()</li>
<li>Improve RStr.rwx permission string parsing</li>
<li>Implement scansets support in RStr.scanf</li>
<li>Initial import of our custom and safe r_str_scanf</li>
<li>Fix <code>diff</code> command</li>
<li>Fix r_print_hexdump() when called with RPrint *=NULL</li>
<li>Fix bug in r_str_split_list</li>
<li>Implement RRange.toString()</li>
<li>Joyful RStringSplit.asVector()</li>
<li>Swiss htuu / htpu / htsu</li>
<li>Add last function to vec</li>
<li>Fix issue with creating vec of pointer type</li>
<li>Cleanup swisstable code</li>
<li>Add cwisstable headers + support headers</li>
<li>Add hacky implementation of r_graph_pdom_tree</li>
<li>Fix domtree graph</li>
<li>JSON is not happy with \x</li>
<li>Allow append in vec to deep copy</li>
<li>Rework vec macros to inline finalizer function</li>
<li>Implement small vec optimization</li>
<li>Refactor vec generate macro</li>
<li>Do not sort vec if empty</li>
<li>Fix memory leaks in diffing code</li>
<li>Add more vector algorithms (partition, uniq, eraseback, ..)</li>
<li>Add sort function RVec, const correctness</li>
<li>Add find_index function to RVec</li>
<li>Update find to take any value type for more general use</li>
<li>Add find function to Vec</li>
<li>Cosmetic patch</li>
<li>Add r_graph_dom_tree</li>
<li>Add new optimized vector implementation</li>
<li>RFile.path() returns NULL if not found</li>
<li>Get rid of the unused skyline data structure</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2190267775" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22706" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22706/hovercard" href="https://github.com/radareorg/radare2/issues/22706">#22706</a> - Honor dbg.follow in F7/F8</li>
<li>Follow r:SP in the stack panel</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2152450603" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/22640" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/22640/hovercard" href="https://github.com/radareorg/radare2/issues/22640">#22640</a> - improve sidepanels in limited space</li>
<li>Show proper help in VT and support tab and body scroll</li>
<li>Fix vbl and add vbL for the old one</li>
<li>Handle [] keys in VT</li>
<li>Add cmd.vprompt2 to run a command after the visual prompt</li>
<li>Use pdr instead of pdf to show non-linear functions in Vv</li>
<li>Fix regression in visual hex cursor</li>
<li>Implement scrolling in current r2slide</li>
<li>Fix visual marks commands: fV* and fV-#</li>
<li>Unify the visual_find() code with graph and visual</li>
<li>Implement VV% for the plain V%</li>
<li>Integrate Cb with disasm asmq key hints</li>
<li>Improve usability of Vdr - show disasm while renaming function names</li>
<li>Make V/ update the highlights in realtime</li>
</ul>
<p><strong>vuln</strong></p>
<ul>
<li>Patch Escape Sequence Injection Bypass</li>
</ul>
<p><strong>write</strong></p>
<ul>
<li>Implement 'wao+' command and remove RCore.hackHelp()</li>
</ul>
<p><strong>zignatures</strong></p>
<ul>
<li>Add rasign2 -i to run a script before generating signatures</li>
<li>Mangled function signatures for za</li>
<li>Hide duplicated xrefs in zg</li>
<li>Fix missing zignature xrefs, resolving source function name instead of flag</li>
<li>Enumerate any kind of refs/xrefs not just call/code ones</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.8.82024-01-15T02:56:04Z5.8.8<h2>Release Notes</h2>
<p>Version: 5.8.8<br>
Previous: 5.8.6<br>
Commits: 192<br>
Contributors: 11</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl -Ls https://github.com/radareorg/radare2/releases/download/5.8.8/radare2-5.8.8.tar.xz | tar xJv
radare2-5.8.8/sys/install.sh"><pre>curl -Ls https://github.com/radareorg/radare2/releases/download/5.8.8/radare2-5.8.8.tar.xz <span class="pl-k">|</span> tar xJv
radare2-5.8.8/sys/install.sh</pre></div>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:dennis@doyensec.com">Dennis Goodlett</a> <a href="mailto:dennis@hurricanelabs.com">Dennis Goodlett</a> <a href="mailto:dvertx@gmail.com">Hertatijanto Hartono</a> <a href="mailto:Luc.Tielen@gmail.com">Luc Tielen</a> <a href="mailto:ltielen@nowsecure.com">Luc Tielen</a> <a href="mailto:11234807+as0ler@users.noreply.github.com">Murphy</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a> <a href="mailto:122955334+phix33@users.noreply.github.com">phix33</a> <a href="mailto:74342662+167rgc911@users.noreply.github.com">rgc</a></p>
<h2>Changes</h2>
<p><strong>anal</strong></p>
<ul>
<li>Small improvement on tail call detection</li>
<li>Check for noret destinations in afbr listings</li>
<li>Consider zero pages as invalid code</li>
<li>Dont enable debug tracing from type propagation</li>
<li>Implement ahb-* missing command</li>
<li>Make macos/ios targets inherit types from darwin</li>
<li>Fix aod command for pickle arch</li>
</ul>
<p><strong>analysis</strong></p>
<ul>
<li>Small improvement on tail call detection</li>
<li>Check for noret destinations in afbr listings</li>
<li>Consider zero pages as invalid code</li>
<li>Dont enable debug tracing from type propagation</li>
<li>Implement ahb-* missing command</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Improve tricore.cs handling jumps/rets/movs/</li>
<li>Fix ESIL MIPS64 NOR instruction</li>
<li>Migrate java plugin</li>
<li>Migrate i8080 with full refactor</li>
<li>Fix max asm len in pickle</li>
<li>Fix cs4 build of the sh arch plugin</li>
<li>Honor endianness without messing with capstone initialization in ppc.cs</li>
<li>Remove global state in ppc_cs plugin</li>
<li>Migrate ppc_cs plugin</li>
<li>Update to the latest capstone for new sh and tricore</li>
<li>Remove global state in v850 plugin</li>
<li>Remove global state from loongarch dis</li>
<li>Remove globals/duplicate code in riscv plugin</li>
<li>Remove global state in lua5.3 plugin</li>
<li>Remove global state from 6502_cs plugin</li>
<li>Remove global state from xtensa plugin</li>
<li>Cleanup global state in riscv plugin</li>
<li>Remove thread local state from m68k_cs plugin</li>
<li>Remove global state in loongarch plugin</li>
<li>Refactor z80 plugin to not have global state</li>
<li>Migrate sparc_cs plugin</li>
<li>Add more call level registers for i4004</li>
<li>Dont abuse asm.bits in bin.pyc and honor asm.cpu</li>
<li>Add support for 4bit registers</li>
<li>Initial support for the Sharp SM5xx MCUs</li>
</ul>
<p><strong>asm</strong></p>
<ul>
<li>Improve adrp instruction assembler and add more tests</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Warn on unresolved symbols/relocs in ELF and better handle -1 addresses</li>
<li>Parse more CodeSignature fields for mach0</li>
<li>Parse CodeSignatureDirectory entries for mach0</li>
<li>Faster Css using the api instead of Cz with tmpseek</li>
<li>Use Css in ELF (instead of section.has_strings) to avoid flags</li>
<li>Apply section formats in a second iteration</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1736823201" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21823" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21823/hovercard" href="https://github.com/radareorg/radare2/issues/21823">#21823</a> - tag static elfs as non libinjectables</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1206325438" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/19964" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/19964/hovercard" href="https://github.com/radareorg/radare2/issues/19964">#19964</a> - show relro:no even if no dyn section is found</li>
<li>Add support for even more elf reloc types</li>
<li>Add support for more elf reloc types</li>
<li>Refactor elf get_import_addr checks</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1697761148" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21715" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21715/hovercard" href="https://github.com/radareorg/radare2/issues/21715">#21715</a> - Add baddr to the class info from DEX</li>
<li>Add missing flags for the internal ELF symbol relocactions</li>
<li>Check for PT_LOAD segments before fully reading elf phdr</li>
<li>Iterate over vector i.s.o. list in elf entries</li>
<li>Speed up loading of elf relocs</li>
<li>Refactor even more parts of elf loader</li>
<li>Refactor more of elf loader</li>
<li>Refactor more elf loader code</li>
<li>Use main=-1 instead of 0 before finding the symbol in mach0</li>
<li>Handling ELF symbols with no name</li>
<li>Refactor more functions in elf loader</li>
<li>Refactorings for elf loader</li>
<li>Add RBinInfo.libinjprot field for mach0 at least</li>
<li>Infer asm.os from platform's LC_BUILD_VERSION</li>
<li>Improve performance when loading mach0 classes</li>
<li>Implement basic pdp11 binary parser and a bit better disasm</li>
<li>Add support for more ELF SPARC relocs</li>
<li>Implement ELF relocs for SPARC and MIPS and avoid duplicates</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Update and improve r2docker as well as publish the new image into the hub</li>
<li>Add r2pm build-arg to the r2docker with r2frida,r2ghidra,r2dec packages</li>
<li>Install r2frida and use /usr as prefix for r2docker</li>
<li>Apply fixes from the Termux package and update acr</li>
<li>Add wasm to the default meson builds</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>apt-get update before install in the syslibs job</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Faster ~? rcons filtering</li>
<li>Improve the twilight theme</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1722889724" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21772" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21772/hovercard" href="https://github.com/radareorg/radare2/issues/21772">#21772</a> - Ensure RCons.raw after reading from user in ~/</li>
<li>Early return on RCons.flush() when nothing to do</li>
<li>Detect too large input strings in RCons.prompt</li>
<li>Fix RCons.readCharTimeout()</li>
<li>Remove globals from 2048</li>
<li>Remove global state in stiv</li>
<li>Fix ::pd and ::? glitch with (null) colors</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Make fortune file selection random</li>
<li>Make all the RCoreCmdStr functions R_MUSTUSE its return</li>
<li>Refactor global state in vslides</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix UAF in 8051 analysis on fuzzed code</li>
<li>Fix out-of-memory allocation on a fuzzed plan9 binary</li>
<li>Fix oob write in dyldcache accel loading</li>
<li>Store the vector index instead of a weak pointer for the ELF</li>
<li>Prevent an oobread in the lua bin parser</li>
<li>Fix UAF read in the LUA bin parser</li>
<li>Fix UAF in RNumCalc</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Fix reading and parsing /proc/pid/maps from remote gdb on android</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1734660127" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21813" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21813/hovercard" href="https://github.com/radareorg/radare2/issues/21813">#21813</a> - parsing reg profiles from android-gdbserver</li>
<li>Don't run dmh on macOS when not debugging</li>
<li>Fix null deref in get_base_from_maps</li>
<li>Add initial debug heap support for macOS</li>
<li>Initial import of the rv32ima debug plugin</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Implement asm.cmt.token to choose the comment prefix token</li>
<li>Fix '*' cursor mark on some addresses</li>
<li>Implement hint color for nicer disasm comments</li>
<li>Implement asm.offset.focus to show addrs ofs interest</li>
<li>Add ahi36 and asm.offset.base36=true</li>
<li>Implement asm.bytes.asbits to display instruction bits in binary</li>
</ul>
<p><strong>egg</strong></p>
<ul>
<li>Initial support for arm64 eggs</li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Fix null derefs and memleaks in {esil,debug}traces</li>
<li>Improvements in the visual esil debugger and documentation</li>
</ul>
<p><strong>graph</strong></p>
<ul>
<li>Set terminal in raw mode before entering visual graph mode</li>
</ul>
<p><strong>io</strong></p>
<ul>
<li>Remove meaningless optimization leftover in io.cache</li>
<li>Fix and prevent null assert on RIODesc fixing zip0://</li>
<li>Fix hypothetical arbitrary code execution vuln in r_io</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Implement RLangPlugin.init for Go,Rust,Typescript and Zig</li>
<li>Make RLangPlugin.init() actually define if can be instantiated</li>
<li>Fix RCons.noflush issue when using '-i foo.c'</li>
<li>Improve r2js module loading, honoring relatve and absolute paths</li>
<li>Update r2papi.ts 0.1.1</li>
<li>Support relative module resolution in qjs</li>
<li>Fix alias marker parser in the qjs loader</li>
<li>Handle .r2.js file extension</li>
</ul>
<p><strong>main</strong></p>
<ul>
<li>Move .inc files to .inc.c for editor support</li>
<li>Remove global state and fix memory leak in rabin2</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Fix invalid json on 'pfj x[1]z'</li>
<li>Fix assert on null deref with the 'pf E' command</li>
<li>Let 'pxr' follow tagged pointers</li>
</ul>
<p><strong>qjs</strong></p>
<ul>
<li>Handle multiple ../ imports</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Implement r2pm -t for timeless packages</li>
<li>Fix r2pm when launching it from a deleted working directory</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Implement Css (section string scan) and Csz (same as Cz)</li>
<li>String search no longer requires a keyword</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Show log.level=? help message</li>
<li>Merge all R*2_NOPLUGINS as R2_NOPLUGINS</li>
<li>Ship and use our own manpage reader</li>
<li>Implement <code>man</code> command for launching "man pages"</li>
<li>Autocomplete -i command</li>
<li>Fix help message for idp?</li>
<li>Show capstone version in r2 -v</li>
<li>Show build system used (meson|make) in r2 -v</li>
<li>r2pm search is case insensitive</li>
<li>Fix the r2p tool and add a test</li>
<li>Fix help for ?:? and show its links with =!</li>
</ul>
<p><strong>shlr</strong></p>
<ul>
<li>Fix undefined behavior when reading java uints</li>
</ul>
<p><strong>tests</strong></p>
<ul>
<li>Implement r2r -g to run the tests associated with the files changed</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>Implement rax2 -rS and update manpage</li>
</ul>
<p><strong>util</strong></p>
<ul>
<li>Add support for base36 numbers</li>
<li>Remove global state in time.c</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Visual ESIL debugger improvements</li>
<li>Improve and simplify Vv ascii art, and make it available from panels</li>
<li>Call more setraw() to fix a recent visual regression</li>
<li>Improve interactive config and color editors</li>
</ul>
<p><strong>windows</strong></p>
<ul>
<li>Fix stty windows warning</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.8.62023-05-05T21:07:15Z5.8.6<h2>Release Notes</h2>
<p>Version: 5.8.6<br>
Previous: 5.8.4<br>
Commits: 295<br>
Contributors: 23</p>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:50800396+AlexanderKucherov@users.noreply.github.com">AlexanderKucherov</a> <a href="mailto:51972476+CorruptedVor@users.noreply.github.com">CorruptedVor</a> <a href="mailto:mrmacete@protonmail.ch">Francesco Tamagni</a> <a href="mailto:132371000+Hripsimee@users.noreply.github.com">Hripsimee</a> <a href="mailto:ildar.sadykov2000@gmail.com">Ildar</a> <a href="mailto:45717260+IldarS2000@users.noreply.github.com">Ildar Sadykov</a> <a href="mailto:leommxj@gmail.com">Leopold</a> <a href="mailto:Luc.Tielen@gmail.com">Luc Tielen</a> <a href="mailto:ltielen@nowsecure.com">Luc Tielen</a> <a href="mailto:25155631+MewtR@users.noreply.github.com">Mewt R</a> <a href="mailto:25155631+MewtR@users.noreply.github.com">MewtR</a> <a href="mailto:74342662+167rgc911@users.noreply.github.com">R</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:didib@users.noreply.github.com">Yedidyah Bar David</a> <a href="mailto:ysaxenax@gmail.com">Yuvraj Saxena</a> <a href="mailto:543984341@qq.com">Zhipeng Xue</a> <a href="mailto:melih.sahin@protonmail.com">echel0n</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a> <a href="mailto:74342662+167rgc911@users.noreply.github.com">rgc</a> <a href="mailto:support@r2c.dev">semgrep.dev on behalf of @trufae</a> <a href="mailto:nikhilkamblestudy@gmail.com">theNKCode</a> <a href="mailto:tsunekou1019@gmail.com">tsunekoh</a></p>
<h2>Changes</h2>
<p><strong>anal</strong></p>
<ul>
<li>Handle 'int 0x20' as eob on x86-16 (assume DOS)</li>
<li>Fix null deref in arm32 calling conventions via 'aaef'</li>
<li>Handle more noreturn functions</li>
<li>RAnal.cur can be now set to NULL</li>
<li>Fix aae logic for mem read xrefs</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1662029564" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21576" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21576/hovercard" href="https://github.com/radareorg/radare2/issues/21576">#21576</a> - Function stack frame size in case of FP register in a Thumb's PUSH</li>
<li>Improved instruction mask using the new aobm and anal.mask</li>
<li>Support big endian value search analysis (aav)</li>
<li>Fix null deref in signatures when using corrupted analysis info</li>
<li>Hide meaningless AnalOp fields in <code>ao/aoj</code></li>
</ul>
<p><strong>analysis</strong></p>
<ul>
<li>Handle 'int 0x20' as eob on x86-16 (assume DOS)</li>
<li>Fix null deref in arm32 calling conventions via 'aaef'</li>
<li>Handle more noreturn functions</li>
</ul>
<p><strong>api</strong></p>
<ul>
<li>Deprecate r_str_cmp()</li>
<li>Rename R_CONST to R_TAG and add unit tests for them</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Migrate tms320 plugin</li>
<li>Cleanup global state in mips gnu plugin</li>
<li>Migrate mips gnu plugin</li>
<li>Migrate chip8</li>
<li>Handle the arch.decode default size and mnemonic on failure</li>
<li>Migrate xcore plugin</li>
<li>Migrate m68k_cs plugin</li>
<li>Migrate 6502_cs plugin</li>
<li>Migrate m68k_cs plugin</li>
<li>Refactor global state in loongarch plugin</li>
<li>Migrate loongarch plugin</li>
<li>Handle RArch.getRegProfile() from RAnal.setRegProfile</li>
<li>Fix the wrong plugin used after failed arch.encoding</li>
<li>Rename arch.arm plugin 'arch.arm.nz'</li>
<li>Use plugin name instead of arch name to fallback</li>
<li>Propagate endian settings</li>
<li>Honor RArch.setBits via RAnal.setBits</li>
<li>Support fatmachos with slices using arch plugins</li>
<li>Improve automatch plugin with encoder support</li>
<li>Resolve ${arch}.nz as fallback when finding an assembler peer</li>
<li>Remove '#' sign before immediates in the snes9x disassembler</li>
<li>Fix 1 byte oobread in the wasm disassembler</li>
<li>Migrate s390.cs and fix the abidiff suppression rules</li>
<li>Migrate the ppc.gnu plugin</li>
<li>Migrate m68k_gnu plugin</li>
<li>Improve the riscv analysis</li>
<li>
<ul>
<li>Fix esil emulation for riscv's jr/li/mv</li>
</ul>
</li>
<li>Migrate S390 GNU plugin</li>
<li>Dont use strtok in the riscv plugin</li>
<li>Migrate the hppa.gnu</li>
<li>Migrate the sparc.gnu plugin</li>
<li>Improve brainfuck VM using ESIL and arch restrictions</li>
<li>Migrate the brainfuck</li>
<li>Remove unneeded line in meson build after plugin migration</li>
<li>Migrate h8300 plugin</li>
<li>Migrate the pyc plugin</li>
<li>Migrate msp430 plugin</li>
<li>Fix archinfo for v810</li>
<li>Add wip archinfo and wip regs and make mcs96 an arch plugin</li>
<li>Migrate ebc plugin</li>
<li>Migrate lh5801 plugin + add missing regprofile</li>
<li>Migrate the pdp11 plugin</li>
<li>Migrate arc</li>
<li>Expose the value of arm's ADD in op.val</li>
<li>Implement <code>wao nop</code> for riscv</li>
<li>Migrate arm.v35</li>
</ul>
<p><strong>asm</strong></p>
<ul>
<li>Implement 'call [rip+X]' for x86.nz and add tests</li>
<li>Fix UB in signed type shift left on arm64 assembler</li>
<li>Fix tb instruction for ARM assembler</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Fix double free in elf loader</li>
<li>Fix memory leak in mach0 relocs</li>
<li>Fix memory leak in xtr fatmach0 metadata</li>
<li>Fix memory leak in elf loader</li>
<li>Fix compile warnings for elf loader</li>
<li>Improve handling of nindirectsyms for corrupt macho binaries</li>
<li>Fix crash due to int overflow loading mach0</li>
<li>Refactor / improve loading of ELF symbols + imports</li>
<li>Shorten path on invalid fatmachos fixing a recent null precondition check</li>
<li>Better use of preconditions and r_log in fatmach0</li>
<li>Refactor loading of elf fields</li>
<li>Refactor loading of elf libs</li>
<li>Refactor elf loading of relocs</li>
<li>Refactor even more loading of elf sections</li>
<li>Refactor elf loading of sections</li>
<li>Refactor mach0 loading of relocs</li>
<li>Silent warning on empty dwarf blocks</li>
<li>Unused var had a meaning in the xnu kernelcache parser</li>
<li>Refactor loading of mach0 sections</li>
<li>Conditionally parse mach0 start symbols</li>
<li>Fix bug wrongly casting dyld/kernelcache to mach0</li>
<li>Remove code, port dyld + kernel cache to new API</li>
<li>Fix UAF in the p9 parser</li>
<li>Refactor loading of mach0 symbols</li>
<li>Refactor loading of mach0 libraries</li>
<li>Implement review remarks for mach0 import parsing</li>
<li>Refactor mach0 loading of imports</li>
<li>Refactor string comparisons in macho parser</li>
<li>Add demangled column in the symbol listing</li>
<li>Add LC_AOT_METADATA parsing support for mach0</li>
<li>Reuse recusion in c++ demangling with lower bounds</li>
<li>Fix some oobread bugs in the ELF parser</li>
<li>Initial steps to support column details in dbginfo</li>
<li>Optimize dwarf parser reducing getsection for strp</li>
<li>Remove global in the DWARF parser</li>
<li>More ELF cleanups on the symbol allocation logic</li>
<li>Minor cleanup in the ELF parser</li>
<li>Fix Mach-O symbol parsing in dyldcache</li>
<li>Blind ELF fixes</li>
<li>ZeroPad addresses in iSq and iSSq</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Fix some -fvisibility=hidden issues</li>
<li>Fix <code>meson -Dnogpl=true</code> compilation</li>
<li>Update to the latest wasi-sdk-20</li>
<li>Fix R_SYS_ARCH name for native s390x</li>
<li>Fix r2r build when doing static linking</li>
<li>Fix SocketNotificationRetrieveEvents already defined issue</li>
<li>Make sys/sanitize be aware of the memory sanitize check</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1594593850" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21375" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21375/hovercard" href="https://github.com/radareorg/radare2/issues/21375">#21375</a> also for linux-arm-64.sdb syscalls with meson</li>
<li>getcpu is reserved by linux's sched.h</li>
<li>meson support for smallz4, relates to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1175463106" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/19849" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/19849/hovercard" href="https://github.com/radareorg/radare2/issues/19849">#19849</a></li>
<li>Use Smallz4 instead of liblz4 which is optional</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>Add crosscompiled arm64 debian builds</li>
<li>Add arm64, riscv64 and s390x qemu builds</li>
<li>Move the tarball distribution code into dist/tarball</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="649170432" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/17194" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/17194/hovercard" href="https://github.com/radareorg/radare2/issues/17194">#17194</a> - Fix 'e scr.pager=..' to set the internal pager</li>
<li>Add greepy color theme (green + pink + white) glitch-style</li>
<li>Add support for ""ec in theme files</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Fixes the bfbug losing arch setup after <code>o malloc</code></li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix double-free in r2pm when no python bin in path</li>
<li>Fix oobread in /v</li>
<li>Fix 2byte oobread in /a subcommands</li>
<li>Fix null deref on null :: command via fuzzing</li>
<li>Fix null deref on fuzzed thready command execution</li>
<li>Fix null deref in unaligned arm thumb instruction via /ad</li>
<li>Fix oom bugs in the XTAC parser</li>
<li>Fix large memory allocations on corrupted LE binaries</li>
<li>Fix infinite loop in the GNU C++ demangler</li>
<li>Track recursivity calls in the HFS parser to prevent stack exhaution</li>
<li>Fix oobread bug in asn1/pkcs7 parser</li>
<li>Fix uninitialized field accesses on corrupted DEX</li>
<li>Fix UB with uninitialized read in dwarf parser</li>
<li>Fix infinite loading time in minidump file</li>
<li>Fix unaligned pointer access in sha256</li>
<li>Fix division by zero in the HFS parser</li>
<li>Fix oobread segfault in the grub's HFS parser</li>
<li>Fix ininite loop in the ext2 grub code (DDoS)</li>
<li>Fix 8 byte oobread on pkcs7 parser</li>
<li>Fix UAF in the dwarf parser</li>
<li>Fix non-null-terminated string in dwarf</li>
<li>Fix null deref in the dyldcache</li>
<li>Fix oobread in swift field parser</li>
<li>Fix 4 byte oobread in objc analysis on 32bit binaries</li>
<li>Fix oobread in dwarf parser</li>
<li>Fix oobread crash in the visual bit pixel editor</li>
<li>Another dwarf null deref</li>
<li>Fix oobread in the xcoff64 parser</li>
<li>Fix an 1byte oobread in the pyc plugin</li>
<li>Avoid large allocation in the elf parser</li>
<li>Check for null pointers in uleb and dwarf</li>
<li>Fix oobread in omu command</li>
<li>Fix large allocation bug in the elf version parser</li>
<li>Fix null derefs in the dwarf parser</li>
<li>Fix oobread in the msvc demangler</li>
</ul>
<p><strong>dalvik</strong></p>
<ul>
<li>Fix two UB bugs doing left-shift on signed type</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Warn the user when using dd/dm/di without a child</li>
<li>Fix 64bit column register listing glitch</li>
<li>Allow 'dcu main' even if there's a 'db main' already set</li>
<li>Implement dtj command to list debug traces in JSON format</li>
<li>Fix null deref in dtd when the process is dead</li>
<li>Fix status register in the regprofile for darwin-arm64</li>
<li>Dont display the cpu flags if the arch doesn't support them</li>
<li>Adjust bpcount and use typedefs instead of structs in bps</li>
<li>Define RISCV breakpoint instructions</li>
<li>Native debugger for OpenBSD and NetBSD on arm64</li>
<li>Add cmd.step config var to run a command after every debugger step</li>
<li>Partial fixes for better register profile and arch switching handling</li>
</ul>
<p><strong>diff</strong></p>
<ul>
<li>Initial implementation of the 'cgfa' command</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Do not draw ref lines of invalid branches</li>
<li>Fix asm.pseudo for arm64's stur instruction</li>
<li>Implement pseudo for riscv's 'auipc' instruction</li>
<li>Fix '\xff' strings issue in bsd-rv64/arm64</li>
</ul>
<p><strong>dwarf</strong></p>
<ul>
<li>Implement parsing optimization for dwarf5</li>
<li>Store column information in the addr2line database</li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Fix UB when shifting value too far left</li>
<li>Fix bounds checks for ESIL and reg values</li>
<li>Implement 128bit regstore esil emulation</li>
<li>Dont emulate null instruction types, causing invalid analysis</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1655951164" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21564" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21564/hovercard" href="https://github.com/radareorg/radare2/issues/21564">#21564</a> - 128bit support via [16] and RReg for arm64</li>
<li>Implement 'aoem' command to show memory refs via emulation</li>
<li>Move the esil #! r2 command as an op instead of parse</li>
</ul>
<p><strong>fs</strong></p>
<ul>
<li>Add test and fix oobread in the hfs parser</li>
</ul>
<p><strong>graph</strong></p>
<ul>
<li>Improve color support in graphviz, still wip</li>
</ul>
<p><strong>hash</strong></p>
<ul>
<li>Add elf hash planned for r2-5.9.0</li>
</ul>
<p><strong>io</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1696020203" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21705" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21705/hovercard" href="https://github.com/radareorg/radare2/issues/21705">#21705</a> - check r_io_plugin_add return value and freed unused allocated memory</li>
<li>Implement zip0:// uri handler</li>
<li>Large null:// allocation causing negative pointer issues on iobank</li>
<li>Support wcu command for new io cache</li>
<li>Implement wcf command for new io cache</li>
<li>Fix segmentation fault when listing cache entries before init</li>
<li>Fix usage of cache in pde command</li>
<li>Prevent multiple initializations of cache</li>
<li>Fix cloning of cache</li>
<li>Retain order of writes to cache during clone</li>
<li>Fix list bug in new cache</li>
<li>
<ul>
<li>Change written flag to a bool in new cache</li>
</ul>
</li>
<li>Fix memcpy bug in the new cache</li>
</ul>
<p><strong>json</strong></p>
<ul>
<li>Fix wrong json key string (refs to name) in anal_axg</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Better typescript entrypoint support and fake r2pipe</li>
<li>Support running typescript files without r2's Gmain</li>
<li>frida-compile bundles can contain anything, we only interpret/load the .js ones</li>
</ul>
<p><strong>panels</strong></p>
<ul>
<li>Support JK scrolling (+-5 lines) in modals</li>
</ul>
<p><strong>performance</strong></p>
<ul>
<li>Branch prediction optimizations (3/3)</li>
<li>Branch prediction optimizations (2/3)</li>
<li>Branch prediction optimizations (1/3)</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Improve RTable trailing spaces</li>
<li>Fix trailing spaces in table</li>
<li>Implement 'piE' command, like 'pie' but for bytes instead of ops</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Move and update r2docker into dist/docker</li>
<li>
<ul>
<li>Update to Debian:11, add README for r2docker</li>
</ul>
</li>
<li>Prefix tar flags with a dash for portability reasons</li>
</ul>
<p><strong>reg</strong></p>
<ul>
<li>Fix bounds checks for ESIL and reg values</li>
<li>Add support for LE/BE 24 bit registers</li>
<li>Fix RReg.setValue on 128bit registers</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Faster aap on large empty maps</li>
<li>Add search.badpage to customize badpage scan</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Better LA/Ll listings</li>
<li>Implement the -L command</li>
<li>Autocomplete -e inside r2</li>
<li>Sync output from rax2 -r and r2's ? val</li>
<li>Implement jq command as an alias for !jq</li>
<li>Add build optimization and precondition check levels in -v</li>
<li>Reuse RStr.version() from r2's '?V'/'-v'</li>
<li>Show '(asan)' in r2 -v when runnin sanitized builds</li>
<li>Implement 'uname -a' flag</li>
<li>Add -v, -vj and the 'r2.' command as a short for js oneliners</li>
<li>Add ?ee and ?ei command for stderr echos</li>
<li>Always use the return value of RTable.query()</li>
<li>Dont list symbols when using <code>is,:help</code></li>
<li>Add rasm2 -N to mimmic the r2 -N flag</li>
<li>Use r2 -NN from r2r and extend the env for rasm2/rabin2</li>
<li>Use more R_LOG instead of eprintfs in some commands</li>
<li>Fix null deref in dte</li>
<li>Add -V command as an alias for ?V</li>
</ul>
<p><strong>signatures</strong></p>
<ul>
<li>Add experimental zign.mangled to not use demmangled symbol names</li>
<li>Use "" command syntax for the z* output</li>
<li>Filter zignature names before validation</li>
</ul>
<p><strong>util</strong></p>
<ul>
<li>Fix UAF in RStr.replaceIcase() spotted by coverity</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Experimental graph debugger layout</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1685320594" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21658" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21658/hovercard" href="https://github.com/radareorg/radare2/issues/21658">#21658</a> - Fix zoom mode glitch in panels</li>
<li>Only run 'diq' in visual when cfg.debug</li>
</ul>
<p><strong>webui</strong></p>
<ul>
<li>Add r2bolt webui PoC</li>
</ul>
<p><strong>write</strong></p>
<ul>
<li>Implement wao recj for arm64</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.8.42023-03-15T10:35:21Z5.8.4<h2>Release Notes</h2>
<p>Version: 5.8.4<br>
Previous: 5.8.2<br>
Commits: 277<br>
Contributors: 29</p>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:jesupnotdown+git@gmail.com">Dennis Goodlett</a> <a href="mailto:jesupnotdown+git@hurricanelabs.com">Dennis Goodlett</a> <a href="mailto:mrmacete@protonmail.ch">Francesco Tamagni</a> <a href="mailto:romerojoseant@gmail.com">Jose Antonio Romero</a> <a href="mailto:54854023+jmaselbas@users.noreply.github.com">Jules Maselbas</a> <a href="mailto:jmaselbas@zdiv.net">Jules Maselbas</a> <a href="mailto:tsunekou1019@gmail.com">Koh M. Nakagawa</a> <a href="mailto:26179473+Lazula@users.noreply.github.com">Lazula</a> <a href="mailto:25155631+MewtR@users.noreply.github.com">Mewt R</a> <a href="mailto:mohamedlemineelhadj@outlook.com">MewtR</a> <a href="mailto:mohamedlemineelhadj@outlook.com">Mohamed Lemine Ould El-Hadj</a> <a href="mailto:11234807+as0ler@users.noreply.github.com">Murphy</a> <a href="mailto:dark.cancerbero@gmail.com">Murphy</a> <a href="mailto:me@0xmurphy.me">Murphy</a> <a href="mailto:prodrigestivill@gmail.com">Pau Rodriguez-Estivill</a> <a href="mailto:me@terorie.dev">Richard Patel</a> <a href="mailto:siguza@siguza.net">Siguza</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:soeren+git@soeren-tempel.net">Sören Tempel</a> <a href="mailto:103068388+Teutates@users.noreply.github.com">Teutates</a> <a href="mailto:yaroslav.yashin@me.com">Yaroslav</a> <a href="mailto:ysaxenax@gmail.com">Yuvraj Saxena</a> <a href="mailto:543984341@qq.com">Zhipeng Xue</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:39425646+icy17@users.noreply.github.com">icy17</a> <a href="mailto:37420872+ksen-lin@users.noreply.github.com">ksen-lin</a> <a href="mailto:meme@users.noreply.github.com">meme</a> <a href="mailto:pancake@nopcode.org">pancake</a></p>
<h2>Changes</h2>
<p><strong>anal</strong></p>
<ul>
<li>Support function arguments without a name</li>
<li>Optimize RCore.analOp() lowers aa from 1m23 to 1m19</li>
<li>Make aab even faster (39s -> 32s)</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1582850009" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21340" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21340/hovercard" href="https://github.com/radareorg/radare2/issues/21340">#21340</a> - fix list of callrefs in afij</li>
<li>Add some recently seen x86-32 preludes</li>
<li>New 'aarr' command to reanalize all function refs</li>
<li>Add support for DUP in esil_dfg</li>
<li>Add fake =SN for gb to fix the missing =SN warning</li>
<li>Implement esil-dfg support for POP</li>
<li>Initial implementation of the aob/aobj commands</li>
<li>Do not override anal.calls user settings in <code>aaa</code></li>
<li>Use a visited check to speedup recursive reference analysis</li>
<li>Invalid call from warning is now a debug message</li>
<li>Handle missing LDURH on arm.v35</li>
<li>Add refs column in aflt listing and fix refs&xrefs counting apis</li>
<li>Remove duplicated code adding a string reference during analysis</li>
<li>Set refptr for Xtensa l32r opcode for better disassembly output</li>
</ul>
<p><strong>api</strong></p>
<ul>
<li>Introduce the new R_CONST macros</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Migrate cr16</li>
<li>Migrate cris from anal to</li>
<li>Update to the latest capstone for SH and arm64 improvements</li>
<li>Move the riscv.cs plugin</li>
<li>Improve v850 esil support</li>
<li>Move the pic</li>
<li>Move the anal.tricore</li>
<li>Improve the NIOS arch plugin with regs, archinfo and invalid</li>
<li>Move and improve the anal.alpha</li>
<li>Move Vax plugin from anal</li>
<li>Add Inferno Dis VM</li>
<li>Move the bpf plugins</li>
<li>Move anal.lm32</li>
<li>Move the z80 plugin</li>
<li>Add support for all-bits-set registers needed for LANAI</li>
<li>Move the lanai plugin</li>
<li>Fix the type used for the fini callback in r_arch_plugin_t</li>
<li>Move the mcs96 plugin</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1575878632" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21325" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21325/hovercard" href="https://github.com/radareorg/radare2/issues/21325">#21325</a> - Do not assert when instantiating empty plugins</li>
<li>Convert kvx analysis plugin into arch</li>
<li>Add esil support for satadd, satadd_imm5, satsub and satsubr v850 instruction</li>
<li>Handle wasm control flow errors better</li>
<li>Wasm accept br out of if/else</li>
<li>Refactor wasm into arch</li>
<li>Move xtensa into the</li>
<li>Initial re-import of the LUA bin parser and disassembler from extras</li>
<li>Move the ws plugin and annotate the plans for 5.9</li>
<li>Move or1k into the arch</li>
<li>Add <code>evm.sdb.txt</code> with description</li>
<li>Add esil support for mulh reg, reg v850 instruction</li>
<li>Move anal.evm.cs into arch.evm</li>
<li>Rename evm.cs to evm</li>
<li>Add esil support for v850 stb, sth and stw instruction</li>
<li>Add esil support for v850 ldb, ldh and ldw instruction</li>
</ul>
<p><strong>asm</strong></p>
<ul>
<li>Add more conditional branch instructions for the arm64 assembler</li>
<li>Implement conditional branch instruction for the arm64 assembler</li>
<li>Improve armass64 for tbz/tbnz to handle relative instructions</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Report errors when failing to patch relocs in the internal buffer</li>
<li>Implement qword to better display patched relocs in macho</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1616300565" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21451" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21451/hovercard" href="https://github.com/radareorg/radare2/issues/21451">#21451</a> - Support IDREF in cf_dict parsing</li>
<li>Apply macho relocs on the swizzled buffer if bin.cache is not set</li>
<li>Find libswiftCore and libswiftDemangle in linux paths too</li>
<li>Fix wrong check in dyldcache rebase v2 logic</li>
<li>Add new fuzz.bin2 program and fix integer overflow for XTAC</li>
<li>Prevent an oom in the macho when corrupted fields are involved</li>
<li>Fix infinite loop in the xtac parser</li>
<li>Fix oom in the LE parser</li>
<li>Fix ELF parser hang on malformed .plt.got header</li>
<li>Fix sign warnings in the elf parser spotted by msvc</li>
<li>Fix absolute path resolution for dwarf source files</li>
<li>Remove globals from the MSVC demangler</li>
<li>Blindfix for some msvc demangling characters</li>
<li>Fix Dis fuzz failure</li>
<li>Add missing S_INIT_FUNC_OFFSETS definition for macho</li>
<li>Add Inferno Dis VM</li>
<li>Improve checks parsing dyldcache headers</li>
<li>Fix missing types and paddr/vaddr issue in ihj</li>
<li>Fix double free in class method handling</li>
<li>Update dyld shared cache parser</li>
<li>Better header checks for the MSX plugin</li>
<li>Some fixes for the bin.msx plugin</li>
<li>Add support for the XTAC file format</li>
<li>Add XCOFF64 support</li>
<li>Refix another null deref after <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/radareorg/radare2/commit/586af3fc6e16aeb53c54dc1ac67add8c8abc8b7c/hovercard" href="https://github.com/radareorg/radare2/commit/586af3fc6e16aeb53c54dc1ac67add8c8abc8b7c"><tt>586af3f</tt></a></li>
<li>Improve code quality in some RBin plugins (1/n)</li>
<li>Fix null deref when no signature is found</li>
<li>Minor improvements to elf parse</li>
<li>Fix memory leak when parsing DW_FORM_line_strp</li>
<li>Use correct compilation directory for binaries that use DWARF before version 5</li>
<li>Fix heap overflow in the swift parser</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Add --with-new-io-cache configure and meson flags</li>
<li>Use acr-2.1.0 new PKGCFG_DO to speedup pkg-config file generation</li>
<li>Fix libdir and includedir in the pkgconfig templates with latest acr</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1594593850" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21375" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21375/hovercard" href="https://github.com/radareorg/radare2/issues/21375">#21375</a> - Generate .sdb files properly for syscalls with meson</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1578761637" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21332" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21332/hovercard" href="https://github.com/radareorg/radare2/issues/21332">#21332</a> - Add missing use_sys_openssl option for meson</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1553388851" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21287" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21287/hovercard" href="https://github.com/radareorg/radare2/issues/21287">#21287</a> - compilation with .c in path</li>
<li>Clear SSL (C|LD)FLAGS if not willing to use SSL at all</li>
<li>Fix 'no rule to make libcapstone.a' error</li>
<li>Fix meson build with x86 option arch</li>
<li>Check for linux/can.h at configure time</li>
<li>meson: install rasign2.1 man page too</li>
<li>Fixes for the offline tarball generation</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>Abidiff shouldnt check internal structs like the capstone ones</li>
<li>Remove broken github counters and introduce the sys/counters.sh</li>
<li>Add pkg-config for macos-test</li>
<li>Add pkg-config for macOS via brew</li>
<li>Upgrade to abidiff 2.2</li>
<li>Remove LGTM, it's no longer available</li>
</ul>
<p><strong>cleanup</strong></p>
<ul>
<li>Remove all char* casts in free</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Fix scr.html when using bold attribute in scr.color=1</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Support R2_PREFIX env var to override compile-time PREFIX</li>
<li>Use single quote instead of "" for RCore.call()</li>
<li>Fix command injection bugs in patch scripts</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix oob in we command</li>
<li>Fix null deref in omr with no maps</li>
<li>Fix null deref in fuzzed omt command</li>
<li>Fix uaf in r_asm_op_get_hex</li>
<li>Fix UAF in y-;q and assert with 0 size functions</li>
<li>Fix uaf caused by RRegItem.free instead of .unref</li>
<li>Fix oom in the nso parser</li>
<li>Fix uaf in xtac and check for more vector allocation failures</li>
<li>Fix unchecked vector allocation in wasm</li>
<li>Fix oom spotted in the wasm bin parser and other stylish things</li>
<li>Fix segfault when saving a project with no write perms in home</li>
<li>Fix oobread in dwarf5 parser</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1591704755" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21363" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21363/hovercard" href="https://github.com/radareorg/radare2/issues/21363">#21363</a> - null deref in the wasm disassembler</li>
<li>Fix use after free in RStr.replaceAll()</li>
<li>Fix null deref in aeg command</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Fix setting registers in linux/rv64</li>
<li>Fix retrieving registers on Linux/RV64</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1577572220" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21329" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21329/hovercard" href="https://github.com/radareorg/radare2/issues/21329">#21329</a> - do not include the privileged registers from the gdb profile</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Dont try to resolve strings on call destinations</li>
<li>Fix instruction colors when '0' is at the end</li>
<li>Deprecate the asm.minicols config variable</li>
<li>Truncate invalid strings in disasm</li>
</ul>
<p><strong>dwarf</strong></p>
<ul>
<li>Add CLLf command as an alias for 'list' and fix @<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/i/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/i">@i</a></li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Avoid >64 bit shift left on 128bit registers</li>
<li>Implement esil for arm64's brk and clarify TRAP usage</li>
<li>Simplify the ESIL for x86 shift instruction</li>
<li>Better nullchk and reduce dereferences in esil</li>
</ul>
<p><strong>globals</strong></p>
<ul>
<li>Remove 2 globals from arch.or1k</li>
<li>Remove 1 global from arch.snes</li>
</ul>
<p><strong>io</strong></p>
<ul>
<li>Initial implementation of the io-write-cache command</li>
</ul>
<p><strong>json</strong></p>
<ul>
<li>iCj always renders valid json, fixing a warning in iaito</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Run the pending jobs in the qjs repl and expose r2pipe module</li>
<li>Add fake 'r2papi' module for r2frida-compile scripts</li>
<li>Implement ESM module loader for the QJS runtime</li>
<li>Initial support for r_arch plugins via qjs</li>
<li>Add support for NIM scripting on top of the QJS engine</li>
</ul>
<p><strong>magic</strong></p>
<ul>
<li>Add Inferno Dis</li>
</ul>
<p><strong>panels</strong></p>
<ul>
<li>Move Stack into Debug menu, and add Register columns output</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Improve the pseudo-decompilation output for !x86 and inlined gotos</li>
<li>Fix duplicated source lines in CLLf output</li>
<li>Honor hex.offset + hex.header</li>
<li>Initial support for custom bitmap images</li>
</ul>
<p><strong>projects</strong></p>
<ul>
<li>Add Pz[ie] command to import/export project in zip format</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Fix support for builddir-less packages</li>
<li>mkdir home plugin directory</li>
<li>Add R2PM_DIR directive needed for tarball/zip packages</li>
<li>mkdir(R2PM_BINDIR) before pkg install, so packages dont have to mkdir</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Magic depth starts at 0 now</li>
<li>Remove global magic depth</li>
<li>Honor esil.* options in RAnal.search</li>
<li>Improve syscall detection in /as</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1582628268" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21339" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21339/hovercard" href="https://github.com/radareorg/radare2/issues/21339">#21339</a> - Fix syscall search when executed twice</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Fix help message when write fails (omp -> omf)</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1595490334" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21380" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21380/hovercard" href="https://github.com/radareorg/radare2/issues/21380">#21380</a> - Refer to "? in /R for escaping chars</li>
<li>Correctly align r_core_cmd_help_match output in inexact mode</li>
<li>Update help message for ""? for ""@""</li>
<li>Drastically reduce eUsage counter</li>
<li>Fix signed integer treated as unsigned in the wX command</li>
<li>Fix oobread in load_zign</li>
<li>Fix assert in wd command</li>
<li>Add ?Tj and get rid of all the eprintf("Usage in cmd.egg</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1605719889" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21412" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21412/hovercard" href="https://github.com/radareorg/radare2/issues/21412">#21412</a> - Implement segment iterator</li>
<li>Add help message and improve the <code>ahs</code> command</li>
<li>Add support for calling commands with a temporal seek</li>
<li>Implement the 'wget' command to download files from http://</li>
<li>Autocomplete file argument in <code>wff</code> command</li>
</ul>
<p><strong>test</strong></p>
<ul>
<li>Load the bin.types again from r2r</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1578769644" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21333" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21333/hovercard" href="https://github.com/radareorg/radare2/issues/21333">#21333</a> - Update radiff2 manpage, add mermaid mode</li>
</ul>
<p><strong>types</strong></p>
<ul>
<li>Add some basic swift and objc function signatures</li>
</ul>
<p><strong>util</strong></p>
<ul>
<li>Return NULL on miss in r_file_path</li>
<li>Move filter_shell and filter_quoted_shell into RName</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Honor stack.size in the Stack panel</li>
<li>Compute the opcode operand index in the bit editor</li>
<li>Handle 'R' key to refresh the slides from disk</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.8.22023-01-23T17:06:35Z5.8.2 - codename "Jonesy"<h2>Release Notes</h2>
<p>Version: 5.8.2<br>
Previous: 5.8.0<br>
Commits: 172<br>
Contributors: 17</p>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:74850058+0x8ff@users.noreply.github.com">0x8ff</a> <a href="mailto:apkunpacker@gmail.com">Apkunpacker</a> <a href="mailto:jesupnotdown+git@gmail.com">Dennis Goodlett</a> <a href="mailto:fraserbcprice@gmail.com">Fraser Price</a> <a href="mailto:jmaselbas@kalray.eu">Jules Maselbas</a> <a href="mailto:mohamedlemineelhadj@outlook.com">MewtR</a> <a href="mailto:mohamedlemineelhadj@outlook.com">Mohamed Lemine Ould El-Hadj</a> <a href="mailto:oleavr@gmail.com">Ole André Vadla Ravnås</a> <a href="mailto:me@terorie.dev">Richard Patel</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:vsbogd@gmail.com">Vitaly Bogdanov</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:imkyufie@gmail.com">kyufie</a> <a href="mailto:meme@users.noreply.github.com">meme</a> <a href="mailto:soeren+git@soeren-tempel.net">nmeum</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a></p>
<h2>Changes</h2>
<p><strong>anal</strong></p>
<ul>
<li>Honor the micromips codealign, add missing =SN and cc</li>
<li>Set indirect code refs from load instructions</li>
<li>Make r_anal_optype_{to,from}_string use the same optypes array</li>
<li>Rework of the function merging</li>
<li>Add Plan 9 calling conventions</li>
<li>Basic blocks are not modified if not initialized</li>
<li>Add test for gb srcs/dsts json and valtype</li>
<li>Fix multiple typos in ios-syscalls.txt</li>
</ul>
<p><strong>analysis</strong></p>
<ul>
<li>Make r_anal_optype_{to,from}_string use the same optypes array</li>
<li>Rework of the function merging</li>
</ul>
<p><strong>api</strong></p>
<ul>
<li>Make r_str_casecmp() null-proof to fix weird crash on windows</li>
<li>Implement RCore.cmdCallAt() + minor improve internal cmd calls</li>
<li>Fix RFile.path() when $PATH contains no colon</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Add esil support for v850 ei and di instructions</li>
<li>Add esil support for v850 reti instruction</li>
<li>Add esil support for v850 stsr instruction</li>
<li>Add esil support for v850 ldsr instruction</li>
<li>Blindfix for a glitch in the v850 disassembler</li>
<li>Simplify esil generation of v850 bcond instructions</li>
<li>Add esil support for v850 setf instruction</li>
<li>Improve v850 esil support and fix some related bugs</li>
<li>Fix asm.cpu=? when using arch plugins</li>
<li>Fix <code>rasm2 -a mips{.gnu} -b16 -e -c micro -d '4fe5'</code></li>
<li>Move mcore into the arch</li>
<li>Support micromips on both gnu and capstone plugins</li>
<li>Move anal.propeller</li>
<li>Add micromips cpu for the mips.gnu plugin</li>
<li>Move nios2 away from anal</li>
<li>Register RArch plugins to be loaded dynamically</li>
</ul>
<p><strong>asm</strong></p>
<ul>
<li>Implement .extern directive in rasm2, fix other directives</li>
<li>Fix ARM assembler for blt, ble, cmn, tst, and teq instructions</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Fix null deref assert in the TE parser</li>
<li>Fix unnecessary memory exhaustion in the elf parser</li>
<li>Fix allocation crash in bin.symbols</li>
<li>Support elf-micromips auto detection</li>
<li>DWARF5 line header parsing</li>
<li>License Plan 9 code as MIT</li>
<li>Add Plan 9 line number information</li>
<li>Fix load address of arm64 kernel</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Do not depend on strcasecmp in libzip, build fail on Centos7</li>
<li>Upgrade v35arm64 to fix non-c99 compilation</li>
<li>Update to the latest tinycc in the CI</li>
<li>Remove the need for ios-include.tar.gz</li>
<li>Use an authorized API call for the abi job to increase the rate limit</li>
<li>Remove condition on 'linux-static' job</li>
<li>Integrate ABI diffing into CI scripts</li>
<li>Add --with-ssl-crypto, rename --with-openssl to --with-ssl</li>
<li>meson: Install various missing files</li>
<li>Use fakeroot if available when packaging for debian</li>
</ul>
<p><strong>build,</strong></p>
<ul>
<li>Integrate ABI diffing into CI scripts</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>Upgrade CodeQL actions from v1 to v2</li>
<li>Update the SPEC file and build RPM packages in the CI</li>
<li>
<ul>
<li>Update the SPEC file and build RPM packages in the CI</li>
</ul>
</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix infinite loop and null derefs when calling pd from pd in Cr</li>
<li>Blindfix with a hack and a workaround to fix an UAF in Cr</li>
<li>Fix an UAF in the visual bit editor</li>
<li>Fix null deref segfault in Vd1</li>
<li>Fix UAF in <code>oc</code></li>
<li>Fix null deref in io.bank</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="280720357" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/8992" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/8992/hovercard" href="https://github.com/radareorg/radare2/issues/8992">#8992</a> - Apply command line settings before initializing debug plugin</li>
<li>Add required A0 register into x86 register profile provided by GDB</li>
<li>Use proper type for the XMM register inside profile recieved</li>
<li>Implement <code>dpt.</code> command to print the current selected process</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Optimize RAnal.kind() as its called many times with a large buffer from <code>pd</code></li>
<li>Bring back and improve the Cr command</li>
</ul>
<p><strong>doc</strong></p>
<ul>
<li>Reference abidiff's ci usage in doc/abi.md</li>
<li>Reference doc/abi in DEVELOPERS</li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Fix emulation of the arm64 <code>tst</code> instruction</li>
</ul>
<p><strong>fs</strong></p>
<ul>
<li>Improve json output for mlj - mountpoint type and delta</li>
</ul>
<p><strong>globals</strong></p>
<ul>
<li>Remove global in util/lib and just use RLogLevel</li>
</ul>
<p><strong>indent</strong></p>
<ul>
<li>Balance spacings in braces</li>
</ul>
<p><strong>js</strong></p>
<ul>
<li>Add experimental r2.cmd0 and r2.call0 for qjs</li>
<li>Enable stack overflow check when recursive calls</li>
<li>Improve error messages in the qjs repl</li>
<li>Rename qjs's <code>dir</code> function to <code>dump</code></li>
<li>Support loading/unloading multiple QJS plugins</li>
<li>Update typescript compiler and move r2plugin into r2</li>
<li>Fix undefined behaviour in quickjs when casting double to int64</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1511514468" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21205" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21205/hovercard" href="https://github.com/radareorg/radare2/issues/21205">#21205</a> - Missing object definition for aoj</li>
<li>Fix undefined behaviour in double->int cast</li>
<li>Extra checks and enforce the singleton core plugin</li>
<li>Improve typescript entrypoint logic detection</li>
<li>Initial support for javascript core plugins</li>
<li>Upgrade r2papi-ts from 0.0.4 to 0.0.10</li>
<li>Support typescript Main namespace and pass --allowJs</li>
</ul>
<p><strong>json</strong></p>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1511514468" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21205" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21205/hovercard" href="https://github.com/radareorg/radare2/issues/21205">#21205</a> - Missing object definition for aoj</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Initial implementation of lang.s assembly scripting</li>
<li>R_TH_LOCAL two globals in RLang.c</li>
<li>Reestructure lib dependencies, add lang.asm plugin</li>
</ul>
<p><strong>perf</strong></p>
<ul>
<li>Massage the bottleneck that was making r2dec super slow</li>
<li>Some more likely hints in RCore.cmd from valgrind</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>Fix pA and pA? (/A was moved into /a)</li>
<li>Implement <code>pvp</code> and <code>wvp</code> to print and write pointers</li>
<li>Fix fortune message for #md5 and add ph: variant of "ph "</li>
</ul>
<p><strong>qjs</strong></p>
<ul>
<li>Add QJS_NOABORT option to avoid aborts</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Improvements for r2pm when getcwd is null</li>
<li>Add R2PM_NEEDS and auto-install system build deps if possible</li>
<li>Fix git check before cloning the repo</li>
<li>Fix R2PM_DEPS first time issue</li>
<li>Report better errors on first r2pm setup</li>
<li>Initial experimental support for portable qjs packages</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Implement tire algorithm in</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Fix assert in ph</li>
<li>Initial skeleton integration with GNU/Poke</li>
<li>Fix profiling RCore.cmdCall() via ?t""</li>
<li>Add help message for the quote command <code>"?</code></li>
<li>Implement LAj and LAq commands to list arch plugins</li>
<li>Implement uname -h, -m, -b, -j ...</li>
<li>Handle unknown subcommands for <code>t</code></li>
<li>pdrj shouldnt be modifying the current seek</li>
<li>Add -j command as an alias for js:</li>
<li>Add the ability to run qjs scripts with <code>r2 -je</code></li>
</ul>
<p><strong>slides:xa</strong></p>
<ul>
<li>Improve r2slides with title, colors and 2 column mode</li>
</ul>
<p><strong>test</strong></p>
<ul>
<li>Update libfuzz build instructions</li>
<li>Add the dwarf fuzzer program</li>
<li>Add some test for ARM assembler</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>Add R2_DEBUG_NOPAPI env var</li>
<li>Show error when passing un-even hexpair to rasm2</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Fix (null) regression in visual bit editor's disasm</li>
<li>Handle JK in bit editor to move 8 bytes fwd/backward</li>
</ul>
<p><strong>vuln</strong></p>
<ul>
<li>Fix ANSI Escape Sequence Injection vulns via DWARF</li>
</ul>
<p></p></details>github-actions[bot]tag:github.com,2008:Repository/4869294/5.8.02023-01-10T17:09:50Z5.8.0<h2>Release Notes</h2>
<p>Version: 5.8.0<br>
Previous: 5.7.8<br>
Commits: 745<br>
Contributors: 36</p>
<h2>Highlights</h2>
<details><summary>More details</summary><p>
</p><h2>Authors</h2>
<p><a href="mailto:74850058+0x8ff@users.noreply.github.com">0x8ff</a> <a href="mailto:axbndr@gmail.com">Alex Bender</a> <a href="mailto:xvilka@gmail.com">Anton Kochkov</a> <a href="mailto:25125141+iotaaxel@users.noreply.github.com">Axel Iota</a> <a href="mailto:37626476+DaKnig@users.noreply.github.com">DaKnig</a> <a href="mailto:dennis+git_swoops@hurricanelabs.com">Dennis Goodlett</a> <a href="mailto:dennis@hurricanelabs.com">Dennis Goodlett</a> <a href="mailto:gordon.zar@gmail.com">Ernest Deák (Tino)</a> <a href="mailto:mrmacete@protonmail.ch">Francesco Tamagni</a> <a href="mailto:huzh@nyu.edu">HighW4y2H3ll</a> <a href="mailto:horsicq@gmail.com">Hors</a> <a href="mailto:lars@flip.re">Lars Haukli</a> <a href="mailto:26179473+Lazula@users.noreply.github.com">Lazula</a> <a href="mailto:26800596+not-matthias@users.noreply.github.com">Matthias</a> <a href="mailto:mohamedlemineelhadj@outlook.com">MewtR</a> <a href="mailto:miles@bung.cc">Miles Liu</a> <a href="mailto:mohamedlemineelhadj@outlook.com">Mohamed Lemine Ould El-Hadj</a> <a href="mailto:me@0xmurphy.me">Murphy</a> <a href="mailto:oleavr@gmail.com">Ole André Vadla Ravnås</a> <a href="mailto:onemda@gmail.com">Paul B Mahol</a> <a href="mailto:pmeerw@pmeerw.net">Peter Meerwald-Stadler</a> <a href="mailto:quentin.kaiser@onekey.com">Quentin Kaiser</a> <a href="mailto:60626307+RHL120@users.noreply.github.com">RHL120</a> <a href="mailto:sylvain.pelissier@gmail.com">Sylvain Pelissier</a> <a href="mailto:sylvain.pelissier@nagra.com">Sylvain Pelissier</a> <a href="mailto:43109743+TheAllSeeingOwl@users.noreply.github.com">TheAllSeeingOwl</a> <a href="mailto:condr3t@protonmail.com">condret</a> <a href="mailto:itrooz@protonmail.com">iTrooz_</a> <a href="mailto:meme@users.noreply.github.com">meme</a> <a href="mailto:pancake@nopcode.org">pancake</a> <a href="mailto:pancake@nowsecure.com">pancake</a> <a href="mailto:82663397+MohamedX99@users.noreply.github.com">rax2</a> <a href="mailto:rhl120@protonmail.com">rhl120</a> <a href="mailto:schrotthaufen@invalid.invalid">schrotthaufen</a> <a href="mailto:schrotthaufen@users.noreply.github.com">schrotthaufen</a> <a href="mailto:singurty@gmail.com">singurty</a></p>
<h2>Changes</h2>
<p><strong>abi</strong></p>
<ul>
<li>RAnalOp.srcs,dsts are not pointers</li>
</ul>
<p><strong>anal</strong></p>
<ul>
<li>Working apt and add apl to list function preludes</li>
<li>Rename axj to axlj, because axj is for jmp refs</li>
<li>Introduce anal.tailcall.delta and use flags for better metrics</li>
<li>Improve the tailcall detection logic</li>
<li>Improve warning that only seems to happen when anal.nopskip is set</li>
<li>Always show all the archinfo, even when not provided by the plug</li>
<li>Dont show analysis progress on non-interactive shells</li>
<li>Add esil.dfg.mapinfo and esil.dfg.maps config vars</li>
<li>Some more improvements to esil_dfg</li>
<li>Fix size returned from r_anal_op</li>
<li>Fix warning in aflj when parsing vargarg signatures</li>
<li>Add register computed const pointer support for esil dfg</li>
<li>Add memory computed const pointer support for esil dfg</li>
<li>Introduce R_ANAL_ESIL_DFG_TAG_{REG,MEM}</li>
<li>Use treebuf io plugin as memory access backed for esil_dfg</li>
<li>Fix pickle asm rejecting empty strings</li>
<li>Do not recurse noreturn inspection when !addr or -1</li>
<li>Generalize vector instruction types instead of following intel-specific</li>
<li>Add /au to search for unknown destination jmp/call</li>
<li>Add anal.noret and refactor anal.noret.refs</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1389100140" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20827" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/20827/hovercard" href="https://github.com/radareorg/radare2/issues/20827">#20827</a> - Show srcs/dsts in aoj</li>
<li>Fix <code>aae</code> argument parsing regression in and improve help</li>
<li>Add support for stack-computed const pointers in esil_dfg</li>
<li>Fix anal.a2f in aac</li>
<li>Increase default anal.depth from 64 to 128</li>
<li>Clarify which commands are used on each <code>aaaa</code> line</li>
<li>Fix anal.depth usage when analyzing one basic block</li>
<li>Loongarch analysis bug fixes (bl, race condition)</li>
<li>Implement <code>aflxv</code> and <code>aflx?</code> commands</li>
<li>Run /azq in aaaa</li>
<li>Fix long1,long4 pickle opcodes</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1381643017" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20798" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/20798/hovercard" href="https://github.com/radareorg/radare2/issues/20798">#20798</a> - Fix bx after add lr,pc,0 in arm32</li>
<li>Fix null pointer in aflxj</li>
<li>Implement aflxj</li>
<li>Add noreturn column in afll</li>
<li>Use RPVector in RAnalOp src/dst to support ldm/stm/simd</li>
<li>Fix pickle arch thinking 0 is 64 bit</li>
<li>Don't show the linearsize in the <code>afl</code> output</li>
<li>Add anal.vars.newstack - configurable improved stack-relative var</li>
</ul>
<p><strong>analysis</strong></p>
<ul>
<li>Working apt and add apl to list function preludes</li>
<li>Rename axj to axlj, because axj is for jmp refs</li>
<li>Introduce anal.tailcall.delta and use flags for better metrics</li>
<li>Improve the tailcall detection logic</li>
<li>Improve warning that only seems to happen when anal.nopskip is set</li>
<li>Always show all the archinfo, even when not provided by the plug</li>
<li>Dont show analysis progress on non-interactive shells</li>
<li>Do not recurse noreturn inspection when !addr or -1</li>
<li>Generalize vector instruction types instead of following intel-specific</li>
<li>Add /au to search for unknown destination jmp/call</li>
<li>Add anal.noret and refactor anal.noret.refs</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1389100140" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20827" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/20827/hovercard" href="https://github.com/radareorg/radare2/issues/20827">#20827</a> - Show srcs/dsts in aoj</li>
<li>Fix <code>aae</code> argument parsing regression in and improve help</li>
<li>Fix anal.a2f in aac</li>
<li>Increase default anal.depth from 64 to 128</li>
<li>Clarify which commands are used on each <code>aaaa</code> line</li>
<li>Loongarch analysis bug fixes (bl, race condition)</li>
<li>Implement <code>aflxv</code> and <code>aflx?</code> commands</li>
<li>Run /azq in aaaa</li>
<li>Add noreturn column in afll</li>
<li>Add anal.vars.newstack - configurable improved stack-relative var</li>
</ul>
<p><strong>api</strong></p>
<ul>
<li>Make RReg refcounted</li>
<li>Implement {ctz|clz}{32|64} RNum</li>
<li>Define RPluginMeta and RPluginStatus</li>
<li>Add new RCore.cmdCallf() helper function</li>
<li>Merge RParse into RAsm</li>
<li>Refactor RLang api to use the new design</li>
<li>Fix null deref on wrong api usage for RCore.cmdStr</li>
<li>Moving more logic between asm, arch, parse and anal</li>
<li>RAnalEsil -> REsil api refactor</li>
<li>Deprecate reil and sysarch defines</li>
<li>More refactorings and api redesigns in r_arch</li>
<li>Remove eprintf calls in favor of R_LOG</li>
<li>Implement RReg.clone()</li>
<li>Deprecate r_str_dup() - related to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1427946463" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20959" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/20959/hovercard" href="https://github.com/radareorg/radare2/issues/20959">#20959</a></li>
<li>Rename RVector.len to RVector.length for consistency</li>
<li>Remove the unnecessary RThread.CpuAffinity()</li>
<li>Add portable NaN and INF defines for different float sizes</li>
<li>Deprecate r_cons_eprintf and use R_LOG instead</li>
<li>Rename RStr.home() to RFile.home() as part of the Plan</li>
<li>Rename r_mem_memzero to r_mem_zero</li>
<li>Prefer _tostring() instead of _to_string()</li>
<li>Improve r_ref implementation with debugging support</li>
<li>R_BIN_NM -> R_BIN_LANG</li>
<li>Implement thread-safe refcounting - but disabled by default</li>
<li>Deprecate the unused RFList</li>
<li>Implement r_str_ntrim() and speedup r_str_trim() with it</li>
<li>Initial implementation of RString (30% faster than RStrBuf)</li>
<li>Implement r_sys_getenv_asint</li>
<li>Add r_cons_is_initialized</li>
<li>Boolify r_core_yank_file_all() and fix shadow var bug</li>
<li>Add r_file_is_executable and r_file_extension apis</li>
<li>Fix UB bug when using r_vector random access</li>
<li>Change R_LOG_INFO to R_LOG_TODO where suitable</li>
<li>Merge rhash into rcrypto and improve apis</li>
<li>Fix memory leak in r_str_list_join()</li>
<li>Boolify and rename some methods and fields from RFS</li>
<li>Add .author field in all the RLang plugins</li>
<li>Add a public api for the yank-unset action</li>
<li>Constify the help</li>
</ul>
<p><strong>arch</strong></p>
<ul>
<li>Add the arch.preludes() callback and new RSearchKeyword constructor</li>
<li>Move anal.v850 to arch</li>
<li>Fix counted string bug in pickle</li>
<li>Fix negative unsigned cast in the xtensa disassembler</li>
<li>Add RAnalOp.weakbytes() and move more analop apis to arch</li>
<li>Move anal.xap into the arch</li>
<li>Update tests and better arch.patch/modify callback</li>
<li>Move anal.{6502,snes} into arch</li>
<li>Kill RAsmOp, we can reuse RAnalOp in here</li>
<li>Improve pickle disasm on invalid instructions</li>
<li>Remove RAsmPlugin struct and add the 'aia' command to show archinfo</li>
<li>Move the remaining asm plugins into the arch</li>
<li>Minor plugin selection improvements</li>
<li>Move asm.nasm into the arch</li>
<li>Move asm.vasm into arch.any_vasm</li>
<li>Assemble large pickle instructions</li>
<li>Fix and move failing tests, reorder lib build</li>
<li>Move the arm assembler plugin from asm to arch</li>
<li>Temporary add RAnal as dependency for REgg</li>
<li>Improve x86.nz assembler parsing and other bugs in rnum</li>
<li>Initial implementation of the arch.any.as plugin</li>
<li>Better handle of RNum errors for egg and arch.x86.nz</li>
<li>Support reg+idx and idx+reg in x86.nz assembler</li>
<li>Move the x86.nz plugin</li>
<li>Fix asm.acur supporting arch, anal and asm plugins</li>
<li>
<ul>
<li>Fix asm.acur supporting arch, anal and asm plugins</li>
</ul>
</li>
<li>Move anal_riscv to arch_riscv</li>
<li>Fix rasm2 -LLL using the new multi-bits macros</li>
<li>Introduce RSysBits and its packing/checking macros</li>
<li>Implement archinfo() in RAnal.Plugin.tms320</li>
<li>Deprecate the unused RArchPlugin.esil field</li>
<li>Use PJ to return the list of mnemonics <code>aoml</code> in arm.v35</li>
<li>Move anal.rsp to the new home</li>
<li>Move anal.v810 into arch.v810</li>
<li>Move pickle from anal to arch and add it to meson</li>
<li>Remove anal.malbolge and fix CI r_esil issues</li>
<li>Move the 'sh' plugin to the new home</li>
<li>Honor plugin name in rate matching for RArch.use</li>
<li>Move jdh8 from asm/anal to arch</li>
<li>Unify RArchOp into RAnalOp using common include files</li>
<li>Fix RArchOp.refptr from bool to int</li>
<li>Bump cs5 to support FNOP on m68k</li>
<li>Wire-up RArch into RAnalOp</li>
<li>Fix arm64 plugin to work well with latest arm64 changes in capstone</li>
<li>Use the latest capstone5-next with updated aarch64 support</li>
<li>Copy anal_amd29k.c to rarch</li>
<li>Change arch plugin definition</li>
<li>Add some more arch config vars</li>
<li>Introduce arch.endian config var</li>
<li>Instantiate RArch in anal</li>
<li>Introduce RArchConfig->decoder</li>
<li>Add R_LIB_TYPE_ARCH and i4004 arch-plugin</li>
<li>First arch plugin (arch.null), implement basic lib api</li>
<li>Start moving EVM analysis from extras to core</li>
<li>First implementation of r_arch decoder api</li>
<li>Introduce the new r_arch library, just the skeleton</li>
<li>Add some r_arch api declarations</li>
<li>Initial commit on RArch structs</li>
</ul>
<p><strong>asm</strong></p>
<ul>
<li>Deprecate more unused fields from RAsmPlugin</li>
<li>Fix the parse.z80.pseudo plugin and add a test</li>
<li>Remove the unused RAsm.binb</li>
<li>Internal cleanup of asm.c, deprecate the disassembly callback</li>
<li>Load cpu descriptions for multiarch plugins</li>
<li>Fix rasm2 x86.nz for "xchg eax,eax" and add tests</li>
</ul>
<p><strong>bin</strong></p>
<ul>
<li>Fix JSON encoding of section addresses</li>
<li>Add test for cwd source listing, CLL and list</li>
<li>Add warning when loading DWARF5 files (not supported)</li>
<li>Add test for the obm with CL, support noncwd paths</li>
<li>Use <code>obm</code> when spotting a companion dwarf file on macOS</li>
<li>Implement RBinFile.merge() and <code>obm</code> command to use it</li>
<li>Initial implementation of the ob-- command to close the last binobj</li>
<li>Autoload the dwarf companion file on macOS systems if available</li>
<li>Use rabin2 -rO for raw dump operations</li>
<li>Use glob expressions to specify section name to dump</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="466423851" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/14540" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/14540/hovercard" href="https://github.com/radareorg/radare2/issues/14540">#14540</a> - klass->super must be an RList instead of char*</li>
<li>Support for Xbox 360 PE32 architecture (PPC BE)</li>
<li>Fix wrong detection of <code>main</code> in elf-arm32</li>
<li>Fix rabin2 -gj and add tests</li>
<li>Add bin.types and disable by default for CI reasons</li>
<li>Support loading Plan 9 kernels</li>
<li>Use API instead of commands to autoload a pdb</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1446518501" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21020" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21020/hovercard" href="https://github.com/radareorg/radare2/issues/21020">#21020</a> - fix json format for rabin2 -jM when no main is found</li>
<li>Expose section type for coff, elf and macho formats</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="813456764" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/18375" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/18375/hovercard" href="https://github.com/radareorg/radare2/issues/18375">#18375</a> - Only patch arm64 relocs when not initialized</li>
<li>Add experimental bin.str.nofp config for less false positives</li>
<li>Parse the PT_DYNAMIC elf section for the preinit pointers</li>
<li>Fix validation check in xnu</li>
<li>Initialize macho header pf definitions</li>
<li>Speedup class bin loading with bin.filter=false</li>
<li>Implement 'ic.' command</li>
<li>Fix initial seek for Rosetta2 aot binaries</li>
<li>Silent noisy warning in dwarfprocess</li>
<li>Expose klass->super details for objc categories</li>
<li>Include fields in the ic output</li>
<li>Enable the swift metadata parser by default and import classinfo</li>
<li>Add lang field for classes, symbols and methods, expose it via ic</li>
<li>Warn about unpatched relocs when no bin.cache is set for macho fixups</li>
<li>Add support for 32bit Mach-O fixups</li>
<li>Expose the macho reloc fixups and use internal buffer for parsing</li>
<li>Fix obf and add tests for it</li>
<li>Fix Cd4[ invalid syntax used in macho _const section</li>
<li>Expose the id_dylib macho command info into the bin kv</li>
<li>Enlarge the c++ demangler stack limit to solve a warning</li>
<li>Implement Dwarf.register identifier mapping for v850</li>
<li>Infuse asm.cpu from the elf flags for v850 ELFs</li>
<li>Remove asm.features, improve RBinInfo with flags and abi details</li>
<li>Improve brainfuck detection to reduce false positives</li>
<li>Implement dwarf.regName() for arm64</li>
<li>Import the free pascal symbol demangler from rizin</li>
</ul>
<p><strong>build</strong></p>
<ul>
<li>Double lowerdash defines should be defined only by the compiler</li>
<li>Fix and improve static build, faster libr.a with libtool if available</li>
<li>Improve libr.a creation with <code>ar -rcT</code> instead of <code>ar -x</code></li>
<li>Speedup tcc builds by not using -g</li>
<li>Move esil one level up in libs.mk</li>
<li>Update sdb to remove double include paths</li>
<li>Fix compilation with -lcrypto</li>
<li>Do not use macos-latest (macos-11 is fine for LTS)</li>
<li>Update the capstone4 support to 4.0.2</li>
<li>Fix zig's <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Cinclude/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Cinclude">@Cinclude</a> of r_th.h</li>
<li>Add crosscompiling support with sys/zig.sh</li>
<li>Do not install the v35 archives (-50MB) in <code>make install</code></li>
<li>Fix capstone dynamic memory allocation setup issue</li>
<li>Support sys/debian.sh crossbuilds</li>
<li>Remove unused lc-printscan-long-double wasi flag</li>
<li>Check if CWD contain spaces in sys/install.sh</li>
<li>Add the acr --enable-threadsafety flag and the same for meson</li>
<li>Fix meson infinite loop</li>
<li>Disable libuv by default on meson and acr</li>
<li>Change build order as long as now bin depends on fs</li>
</ul>
<p><strong>ci</strong></p>
<ul>
<li>Test r2 build with all sysdependencies enabled</li>
<li>Upgrade al-cheb/configure-pagefile-action to the v1.3</li>
<li>Run unit tests in parallel</li>
<li>Upgrade github actions/checkout from v2 to v3</li>
<li>Upgrade actions/upload-artifact from v2 to v3</li>
</ul>
<p><strong>cmd</strong></p>
<ul>
<li>Fix bugs in aeg command parser</li>
</ul>
<p><strong>config</strong></p>
<ul>
<li>Deprecate the use of comma in e: as stated in the r2580 prophecy</li>
<li>Deprecate graph.web eval config var</li>
<li>Remove the <code>file.offset</code> unused config variable</li>
</ul>
<p><strong>cons</strong></p>
<ul>
<li>Fix static themes listing</li>
<li>Add support for statically compiled themes</li>
<li>Fix Ctrl+Arrow dietline shortcut for word cursor</li>
<li>Fix console history log path regression</li>
</ul>
<p><strong>core</strong></p>
<ul>
<li>Enable cmd.undo by default</li>
<li>Rename many bin.<em>str evars into bin.str.</em></li>
<li>Use XDG instead of R2_HOME_CACHEDIR and R2_HOME_HISTORY</li>
<li>Initial support for XDG env vars and paths</li>
<li>Fix RConfig.setB when the key doesnt exist</li>
<li>Deprecate scr.seek configuration variable</li>
<li>Initial implementation of R_LOG_TODO</li>
</ul>
<p><strong>crash</strong></p>
<ul>
<li>Fix segfault in <code>poa 1</code></li>
<li>Fix integer overflow in fuzzed dwarf rendering in graphs</li>
<li>Fix use-after-free after @@<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/e/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/e">@e</a> spotted by meme</li>
<li>Fix UAF in <code>aaft</code> when the BB is removed during the loop</li>
<li>Fix UAF on quit exposed by r2frida</li>
</ul>
<p><strong>crypto</strong></p>
<ul>
<li>Initial abi breaking changes in RCrypto/RHash</li>
<li>Fix rahash2 -L listing full hash</li>
<li>Initial work on the way RCrypto handles plugins</li>
<li>Separate SM4 algorithm from plugin</li>
<li>Implement the SIP hash algorithm</li>
</ul>
<p><strong>debug</strong></p>
<ul>
<li>Bring back the 'dms' command</li>
<li>Fixed incorrect thread arena output</li>
<li>IO uses PID to read from child, tid is just for regs</li>
<li>Fix r2 -d foo\bar.exe and r2 -d bar.exe on windows</li>
<li>Make RDebug.regRead() and regWrite() return bool</li>
</ul>
<p><strong>decompiler</strong></p>
<ul>
<li>Improve the outpuf of pdc by trimming the addresses of inline nops and colorize numbers</li>
<li>Add colorization support to pdc output</li>
</ul>
<p><strong>disasm</strong></p>
<ul>
<li>Implement asm.bytes.align to justify them to the right</li>
<li>Fix <code>char</code> auto-comment in <code>cmp</code> instructions</li>
<li>Improve pseudodisasm for arm64</li>
<li>Improve arm.pseudo when no function information is available</li>
<li>Fix mips.pseudo shortpath when function is null</li>
<li>Fix x86.pseudo shortpath when function is null</li>
<li>Fix NULL function xrefs in pd</li>
<li>Implement asm.flags.right option</li>
<li>Add dummy parse.evm plugin to fix portability of test</li>
<li>Add a dummy bpf pseudo plugin</li>
<li>Add RParse.justify() to easily fix commas and spaces</li>
<li>Better spacing in arm.pseudo parse plugin</li>
</ul>
<p><strong>esil</strong></p>
<ul>
<li>Initial support for threads in esil</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1454118860" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21052" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21052/hovercard" href="https://github.com/radareorg/radare2/issues/21052">#21052</a> - wrong emulation for pop rsp</li>
<li>Move anal.esil into the new esil</li>
<li>Add <code>aegb</code> command as an alias for 'aeg <code>pieq $Fi</code>'</li>
<li>Add <code>aegn</code> command to combine N esil instructions into one dfg</li>
<li>Use a function instead for the spaguetti code in all cmp esil opcodes -30LOC</li>
</ul>
<p><strong>globals</strong></p>
<ul>
<li>Remove one global variable in RCore.cmdEval()</li>
<li>Remove two globals from RCons.cpipe</li>
<li>Remove the 3 globals in anal.xtensa</li>
<li>Remove 3 globals from anal.tricore</li>
<li>Remove the 3 globals from anal.vax</li>
<li>Remove 3 globals from anal.nios2</li>
<li>Remove 3 globals from anal.arc</li>
<li>Remove 3 globals from anal.sparc.gnu</li>
<li>Remove 3 globals from anal.sh</li>
<li>Remove 3 globals from anal.alpha</li>
<li>Remove 3 globals from anal.lanai.gnu</li>
<li>Remove 3 more globals from anal.pdp11</li>
<li>Remove 3 globals from anal.hppa</li>
<li>Remove 3 globals from anal.m68k.gnu</li>
<li>Remove the 3 globals in anal.ppc.gnu</li>
<li>Remove 3 globals from anal.cris</li>
<li>Remove 4 globals from anal.mips.gnu</li>
<li>Deglob 4 vars in the arm.gnu disassembler</li>
<li>Remove 3 globals in s390.gnu</li>
<li>Remove 10 more globals from analysis and capstone</li>
<li>Remove 3 globals in ccarg analysis</li>
<li>Remove all global variables from RCrypto</li>
<li>Move colortable global into the RConsContext</li>
<li>Remove global from utf8</li>
<li>Remove the last global variable in libmagic</li>
<li>Remove in_log_process global</li>
<li>Remove global in bin.obj.reloc_patch</li>
<li>Remove global variable in esil loop</li>
</ul>
<p><strong>graph</strong></p>
<ul>
<li>Initial work in graph.bubble for custom bg color in nodes</li>
<li>Honor graph.layout in aegv too, instead of harcoding horizontal one</li>
<li>Deprecate aegi and aggi, those were dupes for aegv and aggv</li>
<li>Fix null deref in agg and avoid destructive manners of 'V ,'</li>
</ul>
<p><strong>help</strong></p>
<ul>
<li>Make the anal.depth warning more useful</li>
</ul>
<p><strong>indent</strong></p>
<ul>
<li>Balance spacings in braces</li>
</ul>
<p><strong>io</strong></p>
<ul>
<li>Initial implementation of the generic io-stream api</li>
<li>Fix UAF in streaming io plugins when used with io.va=1</li>
<li>Remove invocation of v layer cache in r_io_desc_read</li>
<li>Start rewriting io_cache.c</li>
<li>Kill r_io_read_at_mapped</li>
<li>Initial import of the serial plugin</li>
<li>Kill io->buffer</li>
<li>Remove unused fcn declarations</li>
<li>omfg runs omm if no map is set</li>
<li>New o++ command to create and open a new file</li>
<li>Add "reset" system command to treebuf io plugin</li>
<li>Minor bugfix in treebuf io plugin</li>
<li>Add treebuf io plugin</li>
<li>Fix free-before-use on r_io_reopen of a rbuf:// fd/desc</li>
<li>Handle reloc maps properly in r_io_map_remap and r_io_map_resize</li>
<li>Fix reloc map memleak</li>
<li>Add rio reloc maps</li>
<li>[5.8.0] Disable the default io.basemap</li>
</ul>
<p><strong>json</strong></p>
<ul>
<li>Fix tj ttj tfj outputs</li>
<li>Fix invalid json in tj command</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1377015890" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20772" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/20772/hovercard" href="https://github.com/radareorg/radare2/issues/20772">#20772</a> - ihj rendering an invalid json because of pfj</li>
</ul>
<p><strong>lang</strong></p>
<ul>
<li>Make r2 -j work as a hashbang handler for qjs</li>
<li>Enable BigNum in qjs</li>
<li>Use r2papi 0.0.4 with base64 and R2Api is now known as R2Papi</li>
<li>Add requirejs, simplify compilation and add js_ prefix to all the c files</li>
<li>Add typescript support</li>
<li>Minor improvements for js: with r2.call() and r2.cmdj</li>
<li>Enable Bignum support to the QJS interpreter</li>
<li>Import the alpha r2papi 0.0.2 api for qjs</li>
<li>Integrate the qjs repl into the js: command</li>
<li>Initial import of the interactive QJS repl</li>
<li>Import the quickjs rlang plugin</li>
<li>Implement py command and add stdin slurp support for js- too</li>
<li>Add 'js' and 'js:' commands, as well as improve help for #!?</li>
<li>Fix null deref in rlang</li>
<li>Add "lua" as an alias for "#!lua"</li>
</ul>
<p><strong>leaks</strong></p>
<ul>
<li>Fix leaks in <code>pdc</code></li>
<li>Fix more memory leaks in rbin and ranal for arm64</li>
<li>Patch more leaks in the analysis and rbin</li>
<li>Some safe memleaks related to analysis and registers refcounting</li>
<li>Fix memory leak in dietline</li>
</ul>
<p><strong>lint</strong></p>
<ul>
<li>Enable the leading spaces linter rule and fix them all</li>
<li>Use more tabs and add a (disabled for now) linter for it</li>
</ul>
<p><strong>logs</strong></p>
<ul>
<li>Redirect RLog messages into the Corelog</li>
<li>Add base64 support to the <code>T</code> and <code>T*</code> commands</li>
</ul>
<p><strong>panels</strong></p>
<ul>
<li>Add <code>ve</code> command to set fg/bg colors for current panel</li>
</ul>
<p><strong>print</strong></p>
<ul>
<li>New RPrint.spinBar() API used from scr.demo for now</li>
<li>Fix <code>pcc</code> trifids confussion issue</li>
<li>New command <code>CLL</code> (aka <code>list</code>) show function source using addrline (dwarf) info</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1459826692" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21080" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21080/hovercard" href="https://github.com/radareorg/radare2/issues/21080">#21080</a> - Add cfg.codevar to change the <code>buffer</code> varname from <code>pc</code></li>
<li>ASN.1 and x509: correct OCTET_STRING and Public key info parsing</li>
<li>Add ASN1 Algorithm Identifiers for Edwards curves</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1437435061" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20993" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/20993/hovercard" href="https://github.com/radareorg/radare2/issues/20993">#20993</a> - Correct ASN.1 BIT_STRING parsing</li>
<li>Implement pcn command to print bytes as space separated numbers</li>
<li>Add support for the swatch dot-beat internet time</li>
<li>Workaround for "too large buffer" in formats</li>
<li>px* is an alias for pc*</li>
<li>Implement pFoj command</li>
<li>Implement pFaj for asn1 json decoding</li>
<li>Initial refactoring/cleanup of ASN1 parser api</li>
<li>Add pFxj command to print x509 certificates in JSON format</li>
<li>Add pFpj command to print PKCS7 files as JSON</li>
<li>Fix issue in 'pdc' that was showing empty orphan nodes</li>
<li>Implement new 'pcq' command, like pc, but inline-include-friendly</li>
<li>Implement the new <code>pieb</code> command as an alias for <code>pie $Fi</code></li>
<li>Fix read buffer overflow in pxq -272</li>
<li>Implement pFbJ command with quiet and verbose json formats</li>
<li>Implemen pFbj for json printing of protobuf</li>
<li>Set hex.hdroff=true by default</li>
<li>Implement pFAj to render android xml in JSON (abi break)</li>
<li>Implement TSV output format for RTable</li>
</ul>
<p><strong>projects</strong></p>
<ul>
<li>Fix some problems when renaming projects</li>
<li>Fix some bugs in projects</li>
<li>Quote commit message to avoid git error when saving project</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/radare/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/radare">@radare</a> Do changes in Px->Pc, Pc->PS* as planned</li>
</ul>
<p><strong>r2pipe</strong></p>
<ul>
<li>Check magic header before assuming an interpreted file is executable</li>
</ul>
<p><strong>r2pm</strong></p>
<ul>
<li>Fix assert in Str.Trim() when r2 is not installed</li>
<li>Add support for tarball and zip packages</li>
<li>Honor EDITOR in r2pm -e</li>
<li>Remove all the references to the old r2pm.sh</li>
<li>Implement R2PM_FAIL and mark it as deprecation for r2-5.9.x</li>
<li>Implement r2pm -cp like it was in r2pm.sh</li>
<li>Fix clean installations with r2pm -c</li>
<li>Expose R2PM_SUDO and list R2PM_PREFIX in -H</li>
<li>Handle -HH in r2pm for verbose env listing and remove unused R2PM_GITSKIP</li>
<li>Fixes pull/install/uninstall on windows</li>
<li>r2pm -Ui can be combined now and fix extras package building</li>
<li>Honor R2PM_DBDIR env var</li>
<li>Honor -f in r2pm -U to force clean the r2pm db</li>
<li>Support XDG on r2pm and expose the PKG_CONFIG_PATH</li>
<li>Expose R2_LIBEXT for r2pm packages</li>
<li>Update r2pm manpage and add -q and -a flags</li>
<li>Show package source with r2pm -d </li>
<li>Implement r2pm -H to make more packages build</li>
<li>Fixes parsing the GIT URL on some packages</li>
<li>Test the new default native r2pm fix flushing and using RLOG</li>
<li>Make R2PM_NATIVE the default and provide R2PM_LEGACY</li>
</ul>
<p><strong>r2r</strong></p>
<ul>
<li>Fix rvector assert when indexing empty ones</li>
</ul>
<p><strong>refactor</strong></p>
<ul>
<li>Move the RParse.cparse into RAnal.cparse</li>
<li>Stop aeg from abusing agg</li>
<li>Rename R_ANAL_ESIL_DFG_BLOCK_ to R_ANAL_ESIL_DFG_TAG_</li>
<li>Rename EsilDFGRegVar to EsilDFGVar and introduce EsilDFGVarType</li>
<li>Avoid using RArchConfig->big_endian</li>
<li>Add addr_bits to RArchPlugins and make info and decode cbs cfg aware</li>
<li>Add archcond api to rarch, some small cleanup in anal</li>
<li>Make bitness, endianess and esil-support fields of RArchPlugin again</li>
<li>Copy value.c and op.c from anal to arch</li>
<li>Copy switch.c from anal to arch</li>
<li>Add some more typedefs and enums to r_arch</li>
<li>Rename r_arch_set_ to r_arch_config_set_</li>
<li>Rename R_ASM_SYNTAX to R_ARCH_SYNTAX</li>
<li>Simplify x86_cs BSR and BSF esil</li>
<li>Use r_strbuf_replacef in anal_mips_gnu esil generation</li>
<li>Use r_strbuf_replacef in anal_mips_cs esil generation</li>
</ul>
<p><strong>rvc</strong></p>
<ul>
<li>Initial refactoring of the version control api</li>
<li>Move rvc from core to util</li>
<li>Fix rvc.commit when non-interactive with a default message</li>
</ul>
<p><strong>scan</strong></p>
<ul>
<li>Fix crash in the swift metadata parser spotted by coverity</li>
</ul>
<p><strong>search</strong></p>
<ul>
<li>Fix JSON encoding of unsigned search values</li>
<li>Fix /au after aeim</li>
<li>Fix /w and /wi, add tests, minor code cleanup</li>
<li>Add <code>r_anal_optype_index</code> to make /atl and /at use full listings of optypes</li>
<li>Support space separated instruction types and family in /at and /af</li>
<li>Improve json output for /asj and /atj</li>
<li>Fix calling /re twice after ^C</li>
<li>/az uses anal.in instead of search.in to improve scan results</li>
<li>Make /az faster after aeim, skipping unrelated regions</li>
<li>Fix last char bug in swift strings found with /az</li>
<li>Add x86-64 support to /az</li>
<li>Add flags under the asm.str flag prefix when doing /az</li>
<li>Honor bin.minsz in /az is no argument is provided</li>
<li>Implement /azq to search for assembly strings and add tests</li>
<li>Implement the new /az command to find assembly constructed strings</li>
<li>Superseed <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1304767973" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20447" data-hovercard-type="pull_request" data-hovercard-url="/radareorg/radare2/pull/20447/hovercard" href="https://github.com/radareorg/radare2/pull/20447">#20447</a> - remove some magic globals</li>
</ul>
<p><strong>shell</strong></p>
<ul>
<li>Fix ?vi:123 and ?v:123 commands</li>
<li>Print whatever is taken from io_system to rcons</li>
<li>Fix runtime warning after leaving an rlang session</li>
<li>Add "" command to run RCore.cmdCall()</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1482333886" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/21136" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/21136/hovercard" href="https://github.com/radareorg/radare2/issues/21136">#21136</a> - <code>o <tab></code> autocompletion not working</li>
<li>Show help when using invalid subcommand of afi</li>
<li>Implement abo and afbo commands to list opcode offsets in function or bb</li>
<li>Implement o-. command, add help for future o-$</li>
<li>Expose RCore.cmdCall() and fix b64: command + add tests</li>
<li>Show number conversion error messages in <code>?v</code> command</li>
<li>Fixes for the line editor using live save/load with new RFile apis</li>
<li>Implement <code>oe</code> command to open a file using cfg.editor</li>
<li>Add quiet and table listing for lang plugins</li>
<li>Implement Ll, Llq and #!?q commands for better rlang listing</li>
<li>Fix <code>r2 /directory</code> behaviour</li>
<li>Support $r:REGNAME syntax and document it</li>
<li>Implement cmd.usr1 and cmd.usr2 to handle signals on unix</li>
<li>Add #!qjs and #!tiny for autocompletion</li>
<li>Fix behaviour of -a and -b flags (no arg= show current, append? for help)</li>
<li>Rename the drm command to drv for consistency</li>
<li>Add -s -i -f r2 commands</li>
<li>Implement -a, -b, -c and -e commands in r2</li>
<li>Add tabhelp exception for pf.</li>
<li>Add r2 -LL to list core plugins</li>
<li>Improve help message for f subcommands</li>
<li>Take into account static themes when listing</li>
<li>Add <code>ot</code> command as an alias for <code>touch</code></li>
<li>Implement the ji: command as an alternative to ~{} without cons filtering</li>
<li>Also handle (j) and (*), more syntax-consistent and add a test</li>
<li>Implement (j for json output of macro commands</li>
<li>Initial implementation of <code>?ie</code></li>
<li>Add missing help for the '?i?' command</li>
<li>Use RCoreHelp for /ca?</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1376411839" data-permission-text="Title is private" data-url="https://github.com/radareorg/radare2/issues/20760" data-hovercard-type="issue" data-hovercard-url="/radareorg/radare2/issues/20760/hovercard" href="https://github.com/radareorg/radare2/issues/20760">#20760</a> - Implement native gron via ~{=}</li>
<li>Remove RPrintRowlog and use R_LOG isntead</li>
<li>Allow changing number of saved input lines</li>
<li>Implement log.source and log.origin</li>
<li>Add the new ucu and ucd commands using the new core-undo apis</li>
<li>Rename asm.{off} variables to asm.offset</li>
</ul>
<p><strong>syntax</strong></p>
<ul>
<li>Move the preincrement and void arg from tests to lint.sh</li>
</ul>
<p><strong>threads</strong></p>
<ul>
<li>Initial ref-counted RRegItems, needed for threadsafety</li>
<li>Move the readahead logic to a local variable</li>
<li>Guard more critical sections in cons and core</li>
<li>Analysis now waits in background for the bin parsing to finish</li>
<li>Add some RThreadLocks and start to use the critical sections</li>
</ul>
<p><strong>thready</strong></p>
<ul>
<li>Dont call RCore.seek() and read a new buffer in disasm</li>
</ul>
<p><strong>tools</strong></p>
<ul>
<li>rax2: corrects base64 encoding for null bytes</li>
<li>Fix r2 -2</li>
<li>Fix broken tests for long number conversion</li>
<li>Fix base64 null byte decoding bug in rax2</li>
<li>Implement rasm2 -LLL to list arch plugins</li>
<li>Add Ls to list assemblers, and LA to list analysis plugins</li>
<li>Bring back the r2 -t for parsing bin and analysing in background</li>
<li>rarun2 supports multiple preload directives</li>
</ul>
<p><strong>util</strong></p>
<ul>
<li>Fix the XML parser</li>
<li>shlr/yxml -> libr/util/rxml - fork the abandoned yxml parser and expose it</li>
<li>Add RStr.ansiStrip() and RStr.insert()</li>
<li>Improve internal RBuffer API checks</li>
<li>Add log error when pj depth limit reached</li>
<li>Add R_SYS_BITS_12</li>
<li>Introduce R_SYS_BITS_4</li>
<li>Add :header and :noheader in RTable</li>
<li>Fix crash in r_vector_shrink</li>
<li>Minor COV fix in r_str_char_count</li>
<li>Fix return type of r_str_char_count</li>
<li>Add new RStr.replaceAll() api</li>
<li>Use R_PRINTF_CHECK for r_strbuf_replacef</li>
<li>Add r_strbuf_replace{f}</li>
</ul>
<p><strong>vc</strong></p>
<ul>
<li>Initial rvc refactoring and cleanup of the api</li>
<li>Move rvc apis into callbacks</li>
<li>Make ravc2 accessible via blob and r2 shell</li>
</ul>
<p><strong>visual</strong></p>
<ul>
<li>Use RAnalOp instead of RAsmOp in r_core_visual_bit_editor</li>
<li>Fix issue with cursor disappearing towards the bottom of the screen</li>
<li>Don't draw two cursors when too many bytes are on disasm panels</li>
<li>Make j/k movement in panels' cursor mode more consistent with it's visual counterpart</li>
<li>Don't skip byte when moving left/right in cursor mode (disassembly panel)</li>
<li>Fix pdc glitching in panels</li>
<li>Handle arrow keys in VT</li>
<li>Handle JK0 keys in VT</li>
<li>Honor cmd.vprompt and scr.notch in VT</li>
<li>RStr.wrap() supports ansi and use it in VT</li>
<li>Implement Tv command and use it from VT</li>
<li>Fix the cache and other bugs in panels</li>
<li>Override scr.maxpage in panels to avoid undesired prompts</li>
</ul>
<p><strong>wasm</strong></p>
<ul>
<li>Upgrade to the latest wasi16 sdk</li>
</ul>
<p></p></details>github-actions[bot]