Radare2: Arctic World Archive

01/21/2020 5:34 am

Radare2: Arctic World Archive

On February 2, 2020, GitHub will capture a snapshot of every active public repository, to be preserved in the GitHub Arctic Code Vault. This data will be stored on 3,500-foot film reels, provided and encoded by Piql, a Norwegian company that specializes in very-long-term data storage. The film technology relies on silver halides on polyester. This medium has a lifespan of 500 years as measured by the ISO; simulated aging tests indicate Piql\u2019s film will last twice as long.

csm_Svalbard_Global_Seed_Vault_f25d850445

Release Notes

Version: 4.2.0
From: 4.1.1
To: 4.2.0
Commits: 175
Contributors: 23

Authors

Changes

anal

  • Fix #15091 – Make 0 fcnsize warning more meaningful and verbose-only (#15866)
  • Fix jumptable size #13812 (#15822)
  • Fix afs not working without rettype
  • Fix a null deref in fcn_recurse
  • Remove Custom Analysis for Java (#15817)
  • Refactor RAnal Basic Blocks and Functions (#15169)
  • Change RAnalBlock.size to ut64
  • Make type matching independent of bb list order
  • Improve the op.type text representation when unhandled modifiers are used
  • Remove dupped basic block analysis in core (#15714)

asm

  • ‘push rip’ is not a valid instruction

bin

  • Improve realname support for symbols (#15702)
  • Add test for #15727 (smd strings) (#15777)
  • r_str_unescape: Support all izz esc seqs (#15770)
  • Force read permissions on all load maps in ELF
  • Initial implementation of LX/LE file plugin

cons

  • Implement ar, and dr, commands to list registers in table format
  • Fix #14424 – Handle ~ operator in the ms shell
  • Implement r_strbuf_slice and use it in panels to solve a glitch

core

  • Add ?V0 ?V1 ?V2 – for semver support
  • Upgrade to acr-1.8.1 to get semver support
  • Add pkgname in RLibStruct for r2pm on outdated plugins

debug

  • Added reverse step and continue support to gdbr
  • Moved drC to drpC for profile comments and added drC for reg comments
  • Added register specific comment parsing to register profiles
  • Fix crash caused by rebasing a file without sections
  • Set cfg.debug to true before running oodf in doof
  • Fix multithreaded breakpoint behavior in linux
  • Attach to new linux threads on creation
  • Fix debugger build on linux-s390x
  • Always unset bps after continue and step hard
  • Add detailed location info to dpt using pc instead of path
  • Add packed sizes to gdb vector registers and improve mapping of target description to r2 regs
  • Fix drt not printing non 64bit/32bit registers and flags
  • Refactor breakpoint validation (#15754)
    • Refactor breakpoint validation
  • Revert “Validate bp addr on rebase and restore instead of preventing creation
  • Validate bp addr on rebase and restore instead of preventing creation
  • Fix hardware bp restoring and fix hwbp repeating errors
  • Add location in file to linux dpt output
  • Fix var rebasing by saving regname info
  • Refactoring ptrace register write for BSD
  • Implement bsd_thread_list for FreeBSD
  • Fix reopening of windows debug after detaching not working
  • Fix windows breakpoint rebasing
  • Prevent the restoration of disabled breakpoints

diff

  • Add explicit fingerprint_size to RAnalFunction
  • Add ccdd command to diff decompiler output of two functions
  • Add ccdd command to diff using decompiler (experimental)

disasm

  • Remove realname from strings (#15841)
  • Show flag realname when finding a function and realname is enabled
  • Hide flag comments when realname is shown (#15801)\xa0
  • asm.symbol: Improve code/test a bit more (#15798)
  • asm.symbol: Fix flag name when disasm from non-flag addr with no anal

esil

  • Add RISC-V 64 word instructions and test (#15742)
  • Correct RISC-V division and add test (#15712)

io

json

  • Use PJ api in the output of isj and show realname
  • Fix issues in iCj, drlj and arlj
  • Fix izzzj json output
  • Fix gen json dwarf with pj api (#15755)
  • Fix is.j iEj and iaj json validation issue in r2 — (#15724)

panels

  • More fix for resizing issue (#15844)
  • Performance improvements for the cursor mode
  • Code clean-up and a little performance improvement for decompiler cache
  • All the available decompilers outputs will be properly shown with this
  • Make the decompiler cache work properly
  • Add H key for cursor mode which works like the one in vim

print

r_debug

  • Debug, BSD systems refactoring

search

  • Add elliptic curve private key search in /cr command (#15761)
  • izzzj: Add izzj attributes (#15759)

signatures

  • Apply types on matching zignature data

table

  • Add f, command to list flags in table format

test

  • Fix V testsuite build with latest V from git (#15867)
  • Convert cmd_pd* tests from <<KEYWORD to <<EOF (#15823)
  • Support extras tests in r2r.v (#15821)
  • r2r.v, -j 0: Allocate 1 job per test (#15807)
  • Improve unit test execution using the new V suite and makefiles
  • Many improvements in the V testsuite (#15722)

tests

  • r2r.v, -j 0: Allocate 1 job per test (#15807)

util

  • Fix r_list_set_n() to allow empty element (#15820)

visual

  • Limit panel tabs to 9 to avoid keybinding and click issues

windows

  • Fix reading on invalid process memory

To Review

  • Release 4.2.0 – Arctic World Archive
  • Fix resizing issue (#15863)
  • Fix pkgname version check for real now (#15862)
  • Enable V testsuite on GitHub CI (#15796)
  • Enable V testsuite on GitHub CI
  • Check version for pkgname correctly (#15860)
  • dot can be null
  • Using R2_VERSION_MAJOR/MINOR is wrong because they will be continuously updated and we want to check for exactly 4.2.0
  • The version check logic itself was wrong
  • Fix afb test (#15861)
  • Fix #15833 – Only print pkgname if the plugin is for r2 >= 4.2
  • Update/improve jmptbl size tests
  • Use specific commit of V to avoid build issues
  • A bit more picky fix
  • Add test for afs without type
  • Fix #15767 – Temporarily disable colors in drrj
  • Fix warnings
  • Update radare2-shell-parser
  • Use void because we don’t do anything with the return value
  • Coverity fixes
  • Remove the wrong test
  • More tests fixes
  • Resizing works not perfectly yet but close
  • Fix #15604: Convert all tests from <<KEYWORD to <<EOF
  • Fix wrong tests (#15834)
  • Add test for env variables boolification
  • Introduce SETBPREF to handle “boolish” vars like asm.cmt.off
  • Do not try to convert to true/false, as it breaks integer vars
  • See discussion at #15681 .
  • Unfortunately the change cannot be done for non-int vars only, because
  • right now vars are not statically typed, so a var that is initially
  • CN_INT can then become CN_STR if you set a string.
  • Changing vars to assign them a static type when they are created would
  • require a much bigger change and discussion.
  • A bit of refactoring in r_config.h
  • Move all version defines into r_version.h and handle it from meson too
    • R2_VERSION_MAJOR
    • R2_VERSION_MINOR
    • R2_VERSION_PATCH
    • R2_VERSION_NUMBER
  • Mach-O io: mem leak fix proposal. (#15829)
  • C89 Fixup for r_sign_fcn_types function (#15824)
  • Fix error: for loop initial declarations are only allowed in C99 mode
  • Implement new zignature types format
  • Adapt zignature types deserialization to new format
  • Integrate fcn types when zignatures match
  • Use node->i_value in the log.level/log.traplevel callbacks
  • Basic Blocks are now global instead of owned by a single function.
  • Fix dbg_bps tests that always succeeded (#15763)
  • Approved-by: Riccardo Schirone sirmy15@gmail.com
  • This feature only works with server implementations that have ReverseStep
  • and ReverseContinue enabled, such as rr. The official gdbserver doesn’t support it.
  • Remove opt->sz checks and operations in r_bin_open_buf
  • opt->sz is not used anyway in r_bin_open_buf, so there’s no need to
  • check its value or compute it.
  • Fix last coverities related to cbin
  • Add test for a8 command
  • Some more coverity fixes (#15802)
  • Implement pcV command to print byte array in Vlang
  • Fix a small bug by removing some useless codes (#15795)
  • Initial implementation of libname for flags in imports
  • Initial support for PE and real flag
  • Read libname for PE exports
  • implement pj for imports
  • Remove imp. prefix from symbol names
  • Fix r_core_bin_impaddr()
  • Fix some mdmp import stuff
  • Print libname in ii
  • Fix some imp. checks and reloc meta
  • Fix r_bin_filter_sym() for imports
  • Use realname for noreturn check
  • Fix asm.flags.real for direct calls
  • Fix realname for direct calls with fcn
  • Fix resolving names from ordinal
  • Co-authored-by: Florian M\xe4rkl info@florianmaerkl.de
  • Add sha256 hash to “it”
  • Refix #15331 (-nn filename with @) (#15788)
  • C prototypes fixed
  • Fix broken AppVeyor due to rejected apostrophes (#15785)
  • Some coverity fixes
  • Third fix attepmt for musl builds
  • Second fix attempt for Alpine/musl builds
  • Aim to fix the alpine build
  • The plugin wouldn’t properly trace breakpoint hits on different threads
  • since they weren’t switched to and the events weren’t always handled.
  • Also, since the breakpoints are removed after they are found in one of the
  • threads, it’s best to stop all threads for now even if dbg.threads is false.
  • New threads were only added after being attached to manually or if
  • dbg->trace_clone was true. dbg->trace_clone stops debug and switches the
  • new thread now.
  • Fix a format string vuln in the disassembly with comments (#15783)
  • Add s390x reg profile
  • Add missing pc register
  • Use gregset instead of regset
  • ww: Support esc seqs (#15780)
  • Breakpoints were left in disassembly after a signal/break and there
  • are probably other cases that may lead to it.
  • Offset for each panel was not correct (#15778)
  • Add null to pj and use for relocs (#15776)
  • Add pj_null() and pj_knull()
  • Print reloc name as null in json if not available
  • Omit reloc name in json
  • Improve shell injection check
  • Fix Coverity fixes (#15779)
  • Some coverity fixes
  • Fix #15331 – rabin2 -rk code injection issue (#15678)
  • Rewrite r_str_unescape() using switch
  • Do not compile radare2-shell-parser by default (#15769)
  • Last release (4.1.0) did compile it by default, but the build requires
  • internet access to download the repositories. For now, since the feature
  • is anyway very experimental, we disable it at compile time so that
  • distributions can just compile their packages without internet access.
  • In the future we may want to use submodules or augment the release
  • tarball to include the tree-sitter and radare2-shell-parser archives.
  • Pass 64-bit sdb_fmt parameters as 64-bit (#15758)
  • Fix double free in r_bp_del_index and other breakpoint index bugs
  • Lack of cleanup in r_bp_del_all causing use after free in other dbi
  • commands
  • Copy paste error turning dbix into dbx
  • Add dbi- command
  • Allow dbi commands to operate with index 0
  • izzzj: Use pj api (#15760)
  • Some xmm registers were printed as fpu and bnd registers were shown in
  • all drt categories.
  • dr will still only show 64bit/32bit registers to avoid printing all
  • of the flags and d/w/b register variants.
  • This fixes situations that if a read contained even a byte inside invalid memory, the entire read would fail
  • Added RCoreBind.syncDebugMaps() and RCoreBind.getDebugMaps() api
  • Reenable db tests and add new tests to check validity
  • Add perm check to isMapped and remove map sync to improve performance
  • Fix two tests
  • Add RCoreBind.isMapped() api
  • This reverts commit e503bdd.
  • This way it is possible to set breakpoints before starting debug through
  • ‘db’ and the user will be notified when a breakpoint points to an
  • invalid map.
  • Instead of unsetting breakpoints they were set again without removing
  • the previous drx values, which also caused the “Invalid DRX length (0)
  • must be 1, 2, 4, 8 bytes” error because of the wrong len values.
  • Also, when resetting twice, del failed since there weren’t any hw
  • registers to delete, which caused the “hw breakpoints not yet
  • Shows the module, offset and function name instead of showing the executable’s
  • path for all threads
  • Upgrade node-r2r 0.2.8 (#15751)
  • Fix windows dp showing the parent’s path for all processes (#15741)
  • Fix #15734 – Automatically download PDB file if pdb.autoload=1 (#15738)
  • Automatically download PDB file if pdb.autoload=1
  • Don’t re-download pdb if it already exists on the symstore
  • Only download if file doesn’t exist
  • Fix wrong filtering of equals sign on PDB enum define (#15745)
  • Fix all PDB tests
  • Update node-r2r 0.2.7 to solve the json lost promise issues
  • Hide warning message
  • Fix warnings
  • Add a fortune (#15736)
  • Fix Vdv start_off calculation (#15735)
  • Fix #15691 harder (#15733)
  • Fix #15691 – avoid reading invalid memory
  • izz: Fix printing of string with backslash if str.escbslash=false (#15731)
  • More improvements for the cmd tests using r2r.v (#15728)
  • Fix #15717 – Update scroll panel when stepping with F7
  • Fix infinite loop in panels – vttq (#15729)
  • Check for error when analyzing instructions in vmenus
  • Fix #15719: Reduce false negatives in ‘U’ strfilter
  • Added path escape and unescape
  • Unescape paths only if r_str_argv was successful
  • Use r_str_replace instead of r_str_arg_(un/)escape to avoid breaking escaped filenames
  • Fix debug and ‘o’ not being able to open paths with spaces #debug
  • After starting debug the register deltas weren’t mapped to the same
  • registers in remote and native debug. This made wrong registers appear
  • as vars and in remote gdb none showed up since the remote’s list is much
  • shorter than r2 reg lists.
  • Kill some more tests using <<RUN
  • Improve r2r.v quite a lot up to 0.2
  • Delete stale temporal files in the unit test
  • Use executable path instead of dbpath and more cleanup
  • Move manpage and move old bins into the attic
  • This api honors ansi escape characters
  • Delete the use and definition of “eprint” (#15716)
  • After release version bump
  • Add sys/r2env.sh: Set up env for r2 in non-standard loc (#15696)
  • Fix invalid JSON in rabin2 -j (#15709)
  • Fix Field Seek in Visual Menus (#15710)
  • Fix some warnings (#15705)
  • Fix some warnings
  • Remove unnecessary duplication
  • Co-authored-by: Anton Kochkov xvilka@gmail.com
  • Few warning build fixes proposal.
  • attach_new_process was called instead of regular attach because the
  • saved pid and tid in core->dbg weren’t reset before calling r_debug_select
  • in a new session. Made sure this won’t be a problem when using dp= after
  • dp- either.
  • Calculate the diff ourselves since bp->delta is calculated with the
  • dbg->bp->baddr at the time of breakpoint creation, which may not
  • reflect the correct baddr and break the rebase.
  • Previously, disabled breakpoints were restored and then hit during
  • execution. The debug logic ignored them and continued but that’s
  • an unnecessary slow down. To achieve this type of behavior the user
  • should use tracepoints.
  • Minor syntax issues in panels
  • Use v fmt to indent the new testsuite
  • Change Semantics of r_rbtree_upper_bound() and simplify Iter Fcns (#15698)
  • Remove RAnalBlock members only used in Java (#15679)
  • Remove RAnalBlock members only used in Java
  • Remove R_ANAL_BB_TYPE_(HEAD|BODY|LAST|FOOT)
  • Fix a Test
  • Fix afb+ help
  • Try to test with PowerPC and SystemZ (#15452)
  • When setting non-bool config var, set false/true if r_str_is_false()/_is_true() (#15681)
  • When setting non-bool config var, set false/true if r_str_is_false()/_is_true()
  • Fix for cmd_open tests
  • Fix for cmd_print test
  • Separate pure BSD calls into its separate compilation unit.
  • Fix #15682 – Fix getting noreturn info from invalid addr (#15693)
  • fix some crashes of the widget (#15694)
  • fix some crashes of the widget
  • JK moves the cursor by a page and g moves the cursor up to the first line, plus a few improvements (#15690)