Skip to content

4.3.0 - Codename llentia

Compare
Choose a tag to compare
@radare radare released this 04 Mar 00:21
· 9141 commits to master since this release

Release Notes

Version: 4.3.0
From: 4.2.1
To: 4.3.0
Commits: 214
Contributors: 33

Authors

Changes

anal

  • Rename the Function Flag on afn (#16078)
  • Fix 'af' missing lines bug when analyzing in frida://0
  • Implement function names with dots in signatures
  • Remove more members from RAnalBlock
  • Remove prev, jumpbb and failbb from RAnalBlock
  • Refactor Anal Hints (#15876)
  • Skip empty esil expressions in 'aeab' to fix partial results issue
  • Add 'aba' command as an alias for aeab
  • Fix aeab and add V (values) in aea outputs
  • Implement aeab command

asm

  • Fix #13908 - x86 aoj for instruction with hidden operand
  • Add 'wao jinf' for Dalvik
  • Determine Gameboy hardware registers in disassembly (#15909)

bin

  • Add new BIND_OPCODE_THREADED constant for MACHO binaries (arm64e)
  • Add Windows Crash Dump format support (#16087)
  • Minor Fixes and Tests for NSO/NRO (#16053)
  • Fix iS hash outputs (#16044)
  • Add Authentihash support for PE (#15987)
  • Fix ELF symbols for names just before the end of strtab
  • Parse dyldcache local symbols
  • Fix some out of bound accesses in LE (#15943)
  • Fix #14325 - Honor segments in DEX files (#15920)
  • Many FLIRT handling fixes

build

  • Fix debugger build on Linux/s390x
  • 'sign' as an alias for ios-sign and macos-sign
  • Build debian package in CI

cons

  • Fix again the EOL bgcolor issue (and improve scr.html) (#16120)
  • Implement ecHj to list highlight rules in json format
  • Fix r_table_tostring for string with ansi escape code (#16069)
  • Fix #16063 - bgcolor not reset on newlines
  • Fix ecH- deleting ecHi and deleting meta highlight items
  • Fix #15359 - Enable key.f# keys to be used in the shell
  • Improve the gentoo theme

core

  • tree-sitter: support iter commands (#16111)
  • Initial implementation of the 'rb' command to rebase all the things
  • Use state struct and start handling cmd_substition_arg in tree-sitter (#15966)

debug

  • Use RTable API in r_core_debug_rr (#16066)
  • Fix show register value in column (#16010)
  • Add 'dbH' to set hardware breakpoints (#15933)

disasm

  • Improve ecH (ecH-* dels them all, ecH- doesnt segfault, ecH list)

esil

  • If esil.addr.stack is mapped find an available one
  • When esil.stack.addr is -1 set it to the next unallocated address
  • Code cleanup for r_core_esil_step() (#16017)

graph

  • Add graph.aeab to show esil stats instead of disasm

json

panels

  • Fix a bug on clicking in panels (on Mac and Linux)

projects

  • Preserve "functions" flagspace when saving projects (#16057)

refactor

  • Revert "Avoidify the RUtil.strTrim() APIs, rename trimHeadTail() and add asserts in RConfig
  • Avoidify the RUtil.strTrim() APIs, rename trimHeadTail() and add asserts in RConfig
  • Fix consecutive call to r_table_sort (#16049)
  • Kill all globals in rabin2.c
  • Remove globals from main.r2
  • Remove globals from rax2

refactor"

  • Revert "Avoidify the RUtil.strTrim() APIs, rename trimHeadTail() and add asserts in RConfig

test

  • Add tests for RList (set, get, reverse, clone, append, prepend) and remove legacy
  • Add initial sparc regression tests
  • Handle ^C in r2r.v and support threads in fuzz tests
  • r2r.v: Assume BROKEN=1 if not 0 or "" (#15936)
  • Add Unit Tests to Meson (#15926)

types

  • Fix tccj, tccl, tcc* output errors and add tests (#15931)

util

  • Avoidify the strTrim() APIs + cleanup/refactor
  • Memory leak fix proposal in syscmd_join

visual

  • Fix #15963 - Handle / in Vx (visual xrefs)

To Review

  • Fix #15211 - null deref in calling convention analysis
  • Fix crash in elf parser found in the mtk-su binary with asan
  • Add support for number_command and recursive help
  • cmd_ignbithints should be set everywhere for consistency
  • Save rnum->value before doing a cmd substitution
  • Update radare2-shell-parser to fix null deref in html_disable_command
  • Fix last coverity issues (#16114)
  • Make r_strbuf_fini() safer (#16115)
  • Add test for loading typedefs with to (#16101)
  • Add test for long ESIL bug (#16102)
  • [ppc] Only free op->esil if ESIL not requested (#16102)
  • Fix #16093 - support syscall redefinition in REgg (#16106)
  • Upgrade to node-r2r-0.4.0 (#16098)
  • Add test for yara in extras (#16090)
  • Fix #14647 - Add output of sections to segments mapping for ELFs (#16045)
  • Add output of sections to segments mapping for ELFs
  • Create RReg test unit (#16081)
  • Fix some anal cmd handlers (#16085)
  • Do not use the elvis operator for bool expressions (#16073)
  • Upgrade node-r2r to 0.3.1 to fix the <<EOF -i issue (#16072)
  • Fix null-deref on afv[rbs]-* without function (#16071)
  • Use RString and minor cleanup (#16070)
  • r2r.v path/to/cmdtest works now
  • Convert NAME='name' to NAME=name in tests (#16067)
  • Fix r_cons_rgb_parse() harder (#16061)
  • Also fix init of some ret args in r_meta_print()
  • Boolify try_walkthrough_jmptbl
  • Add R_ANAL_RET_NOP constant
  • Add test case
  • Replace O(n2) ELF symbol matching with hashmaps (#16052)
  • Replace O(n2) ELF symbol matching with hashmaps
  • Swap loop order to ensure that all phdr_symbols are marked.
  • Use name, size and offset as hashmap keys.
  • Add [?] to fd help entry (#16058)
  • Allow function names containing dots in tcc
  • Add some very basic tests for NSO/NRO
  • Remove broken readLE* functions from NSO/NRO
  • This reverts commit 38b61c7.
  • Run 'r2r fuzz' from anywhere
  • Remove stray pancake activity ;) (#16054)
  • Fix a segfault in libmagic when error string > 4096 (#16050)
  • Fix address representation minbound maxbound in afij (#16051)
  • Force sorting of rows in the event of consecutive sort
  • Remove global Gdec and use r_list_reverse for decreasing sort
  • Add test for r_table_tostring and r_table_sort
  • Upgrade capstone v4 and next branches
  • Simplify travis oneliner
  • Fix r_table_sort segfault when column type is NULL (#16047)
  • Rename argument to 'dec' (decreasing) to reflect existing output
  • Add test
  • Refactor bin_sections function
  • Add filter_hash_string function
  • Fix segfault in Authenticode hash check (#16042) (#16043)
  • I noticed that r2 will crash when loading a PE file with
  • Authenticode digest algorithm other than SHA-1 or MD5. I traced
  • it down to the PE_(bin_pe_compute_authentihash) function returning
  • NULL if it encounters an unsupported digest function. This results
  • in NULL being passed to strcmp which causes the segfault.
  • Solution was to add a check for PE_(bin_pe_compute_authentihash)
  • returning NULL and to set bin->is_authhash_valid to NULL.
  • The real solution is to add support for more algorithms but this will
  • stop crashes for now.
  • Greenify AppVeyor on master by using different tag name (#16041)
  • Greenify AppVeyor on master by using different tag name
  • Co-authored-by: Itay Cohen [email protected]
  • Fix read stack-based buffer overflow when using str with pk_js (#16040)
  • In some cases I noticed str is not correctly terminated, so when it is
  • later used in pk_js, that function reads a very long string, outside
  • of the memory bounds of the original buffer.
  • Add support for @* commands in new r2-shell-parser (#16038)
  • Use TSSymbol instead of comparing type strings
  • This patch uses ts_node_symbol instead of ts_node_type to check whether
  • a node is of a given type. Since TSSymbol is just an integer, the check
  • will be much faster. Also, it allows to store commands handler in an
  • hashtable, instead of having if-cascade.
  • Make sure r_config_hold works even when keys do not exist or are freed
  • Add support for all _tmp_commands
  • Make sure to always reuse the same TSLanguage
  • Update both tree-sitter and radare2-shell-parser
  • This way we use TSLanguage version 11, which fixes some problems with
  • TSSymbols.
  • Compute is_last_cmd on each single command and fix logging
  • is_last_cmd should be set on a per-command basis, so if you analyze
  • things like pd 3; .; .; .; the . refers to pd 3.
  • This also fixes logging, so when an invalid command is parsed, it is
  • still available in the history.
  • Add comment about directly using r2-shell-parser in r_core_cmd_lines
  • r_core_cmd_lines tries to parse the input and split it in lines, but at
  • least in theory, we don't need it as the new parser can already handle
  • full scripts.
  • Allow other tasks to run between commands even in the new parser
  • Fix #10696 - Kill r_io_map_add_next_available
  • The function is just renamed to be reused and we have no tests for it, but it may fall into an infinite loop
  • Fix #15842 - Add minimal slice for reproducible af test on anal-block branch
  • Highlight that 'new' is a directory name in test docs (#16035)
  • Use absolute URLs in pull request template (#16036)
  • Fix sdb API usage to avoid extra strdup() (#16028)
  • Make r_table_columns() faster, leak- and double free free (#16031)
  • Remove ARGS= from tests (#16032)
  • Support real names in "fd" command (#16027)
  • add tests for fdj and fd.j
  • Add support for realnames in fd
  • Add a Test for fd with realname
  • Co-authored-by: Florian Märkl [email protected]
  • Fix Spaces Interference in r_flag_get_at() (#16019)
  • Unstick Travis by using compgen instead (#16025)
  • Code cleanup in r_core_esil_step()
  • remove unnecessary call to initializeEsil()
  • remove another set PC register in initializeEsil()
  • Add test for aes without initialization
  • Use git clone --depth 1 as much as possible in builds (#16022)
  • Refactor r_bin file hashes
  • Add r_bin_file_compute_hashes
  • Add r_bin_file_set_hashes
  • Refactor it itj commands
  • Introduce hashes method to RBinPlugin
  • Add test for env with spaces
  • Make env command trim key/value strings before setting env variables
  • test/bins/fuzz: null_pointer__elf_init__store_versioninfo__store_versioninfo_gnu_versym
  • Fix crash in mach0 mach0_invalid-addr_walk_exports
  • Add Certificate Table parser to PE plugin
  • Add SpcIndirectDataContent ASN.1 structure parser
  • Add Authentihash calculation and check
  • Refactor r_bin_file_hash
  • Add tests for Authentihash check
  • Fix for ar= and dr= and add tests
  • increase width to accomodate register name larger than 4 chr
  • fix flag type register value not printed
  • update r_debug_reg_list() to accept '=' arg
  • Fix builds by installing radare.r2 manually (#16009)
  • Upload all generated ZIP files
  • Use the "concatenation" concept in radare2-shell-parser
  • Implement repeat_command and do not unwrap quoted args
  • For back-compatibility it's better to not unwrap quoted args, because
  • existing commands right now just understand this syntax.
  • sdb header file dependency for external plugin i.e. pyc (#16004)
  • r2r.v: Add color to BR and FX of cmd tests (#16003)
  • Upgrade V
  • Fix incorrect PPC ESIL and add testcase (#15970) (#15995)
  • r2r.v: Fix EXPECT_ERR check
  • r2r.v: Mark broken failing-only-on-EXPECT_ERR tests as BR and not FX
  • Add ecH. command to show highlight info in the current offset
  • Fix 32bit format string bug in the protobuf decoder
  • Fix RCons test UB issue
  • Add testcase for this RCons.rgbParse() crash
  • Fix ASAN segfault in RCons.rgbParse()
  • r2r.v, BROKEN=0: Check only first char
  • Honor rc in unit runs and fix execution path in make run
  • Handle return code in r2r.v and fix crashing unit test
  • Fix asan crash in ecH-
  • Echi bad color (#15986)
  • Outputting error on ecHi bad color
  • Add logic to parse unmapped local symbols.
  • Every macho image present in the dyldcache has all the metadata about its local symbols stripped away from the corresponding macho header. Instead, this information is present as dyldcache-specific metadata stored in unmapped parts of the cache file.
  • This PR, for every loaded image, takes care of adding the local symbols which are missing.
  • Bonus
  • Fix a potential use-after-free caused by r_bin_object_set_items, by rebuilding class-related hash tables after replacing the class list.
  • Convert ONE_STREAM tests to EXPECT_ERR (#15979)
  • Remove RAnalBlock.type
  • Remove RAnalBlock.cases
  • Remove RAnalBlock.label
  • Reorder RAnalBlock members to free 16 more bytes
  • Handle instructions with hidden operand
  • Add hidden_op() for instructions with hidden operand
  • Added operands info for pushf, popf, pushfd, popfd, pushfq, popfq
  • Add test for aoj for pushf
  • Fix last covs (#15976)
  • Fix too long var name and assert on strlen (c) > 1
  • Fix grep when there is also {}
  • r_cons_grep_strip expects the ~, otherwise it does not work well.
  • new parser: fix multiple words in grep and add support for > $alias
  • Add tests for swift-x86-64 calling convention
  • Update afcr, afs command
  • Add support for self, error register argument (Swift)
  • Refactor and Add Swift calling conventions to sdb
  • Fix escape/unescape in new shell parser
  • Fix UB, oobread, infinite loop and other bugs in the LE parser (#15968)
  • r2r.v: Slurp empty lines as well (#15964)
  • Cleanup some RAnalBlock Members (#15965)
  • Simplify ownership in the PE resource parser to fix a double free
  • Use RVector for Address Hints
  • Add Arch/Bits Hint Trees
  • Add Unit Tests for Addr, Arch and Bits Hints
  • Add unset for newbits
  • Fix jmptbl hint fetching
  • Fix r_anal_*_bits_foreach
  • Print grouped Anal Hints
  • Fix arch bit affect on disasm
  • Add Reset Hints to Commands
  • Add test for type uint64_t
  • r2r.v: Fix wg race
  • Memory leak fix for kernel cache module.
  • Add missing afis info in afi? and fix afis?
  • Fix tests
  • Note that ^c is only supported on unix systems for now
  • Some tests use the new radare.r2 api to use RCons.isBreaked()
  • Other tests use os.signal() to catch C.SIGINT
  • Add tests for assemble/disassemble neg al (#15949)
  • Update neg eax test (#15950)
  • r2r.v: Fix Success: 0 when running cmd tests (#15948)
  • Try V suite on FreeBSD and OpenBSD (#15852)
  • Try V suite on FreeBSD
  • Try V suite on OpenBSD
  • Fix V lang error
  • Update V lang
  • Fix /wj without argument produce stray \n
    • Change logic to prevent unreachable branch
    • Revert to R_MODE_RADARE if there is no argument
  • Add asm x86 neg
  • Upgrade V
  • Upgrade V
  • Convert '..' tests to <<EOF
  • Convert EXPECT_ERR= tests to <<EOF
  • Convert some tests to use CMDS/EXPECT without enclosing quotes (#15939)
  • Convert some tests to use CMDS/EXPECT without enclosing quotes
  • Add test version that is friendly with node-r2r, r2r.v and AppVeyor
  • Fix unit tests by upgrading V (#15940)
  • Fix /j when there is no input argument (#15935)
  • Return address for unknown Gameboy hardware registers
  • Improve warning messages in r2r.v
  • Convert more tests to use a strictier syntax
  • r2r can load test files when passed as argument
  • duplicated test names are reported as warnings
  • run tests from test/new instead of test/src (like r2r.js do)
  • Upgrade to the latest V
  • Use only BROKEN=1 in tests (#15932)
  • Convert cmd_i tests to <<EOF
  • Upgrade node-r2r to 0.3.0
  • Tests for concatenated greps in pd (#15925)
  • fixed esil for arm push/pop with conditional (#15922)
  • Fix Comment about RAnal.bb_tree (#15919)
  • Terminate on missing script when doing radare2 -i -Q (#15918)
  • Add realname to anj (#15917)
  • Fix a format string in arm (Fix #15915) (#15916)
  • Fix radare2 -i -Q output when script has no nl at eof (#15914)
  • Go back to 4.3.0-git after the minor release