4.3.0 - Codename llentia
Release Notes
Version: 4.3.0
From: 4.2.1
To: 4.3.0
Commits: 214
Contributors: 33
Authors
- Adam Van Scyoc [email protected]
- Anton Kochkov [email protected]
- Clark [email protected]
- David Carlier [email protected]
- Drew McGowen [email protected]
- Florian Märkl [email protected]
- Francesco Tamagni [email protected]
- Itay Cohen [email protected]
- Khairul Azhar Kasmiran [email protected]
- Khairul Kasmiran [email protected]
- Khairulmizam Samsudin [email protected]
- Manuel Prinz [email protected]
- Marco Grassi [email protected]
- Maxim Ivanov [email protected]
- Michael Rodler [email protected]
- Paul I [email protected]
- Riccardo Schirone [email protected]
- Roman Valls Guimera [email protected]
- Sylvain Pelissier [email protected]
- Vane11ope [email protected]
- XYlearn [email protected]
- Zi Fan [email protected]
- abcSup [email protected]
- bannsec [email protected]
- fooxax [email protected]
- haystack-ia [email protected]
- karliss [email protected]
- kuqadk3 [email protected]
- pancake [email protected]
- yossizap [email protected]
- Óscar Carrasco [email protected]
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 tostrcmp
which causes the segfault. - Solution was to add a check for
PE_(bin_pe_compute_authentihash)
- returning
NULL
and to setbin->is_authhash_valid
toNULL
. - 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 topd 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