Skip to content

Releases: radareorg/radare2

5.0.0 - codename: phoenix

21 Dec 08:43
a476454
Compare
Choose a tag to compare

r2-5.0

Commits: 510
Contributors: 65

Interface

  • Added the Comma API
  • Added r_str_wrap() and r_cons_printat() APIs
  • Fix adding comments in panels
  • Improved help messages
  • Removed problematic fortunes
  • Add ?et command to change terminal title
  • Fix double-click issue in vte terminals
  • Formalize the flag names and its filtering APIs
  • Fix return code when using q!. Fixes r2pipe.go
  • Add experimental asm.flags.real to get strings from bin.str.real
  • Removed unmaintained enyo and panels webuis (-2MB)
  • Set realname on all bin strings for better asm.flags.real when bin.str.real is set
  • Fix ansi colors embedded inside json output formatting
  • Improve socket and http server APIs
  • Add opn/opr/opp commands to rotate between opened files
  • Initial implementation of scr.cursor for keyboard accessibility in visual and panels
  • Add asm.hint.call.indirect to make indirect calls follow the target address (#17968)

Performance

  • Use sdb_set instead of sdb_querys (aaaa is 7x faster)
  • Optimize IO.cache (makes bins with relocs much faster)

Signatures

Debugger

  • Sync anal and debug tracing information
  • Fix a crash in dts+ command with empty register arenas
  • Attach to target pid/tid on remote lldb connect
  • Add a warning when a breakpoint is placed in an invalid map
  • Add commands to parse mangling pointers glibc heap

Analysis

  • Improve signature matching, threshold, refactor and optimize related code

  • Directly apply Callee Args in Type Matching

  • Takeover variables when splitting functions

  • Always register the derived CC from the reg profile

  • Add bbhash to detect modifications in functions (and reanalize if patched)

  • Implement basic block listing commands (abl*)

  • Implement tcc-* commmand to unload all calling conventions

  • X86

    • Add amd64syscall and anal.cc evar
    • Fix esil for cmp/sub instructions
    • Add amd64syscall calling convention
    • Fix ELF R_X86_64_PLT32 relocation entries patching (#17587)
    • Fix x86 CMC instruction
  • MIPS

    • Improves mips.gnu esil
    • Add JALR JR when the address can be computed
    • Fix GP calculation when there are multiple entries
    • Fix MIPS C-TYPE instruction check
    • Set asm.cpu for mips.gnu derived from the ISA defined in the ELF
  • ARM

    • arm mte addg/subg decoding
    • fix arm it block analysis
    • BLR arm64 is type=RCALL (before it was UCALL)
    • ARM64 assembler can now assemble AND and BIC instructions (Thanks @mrmacete!)
    • Add initial support for arm and arm64 ELF relocs
    • Handle RELATIVE (todo) and IRELATIVE relocs in ARM64 ELFs
    • COFF: add ARMNT and ARM64 support
    • All testsuite run on arm32 and arm64
  • v850

    • Improve invalid instruction detection
    • Implement the pseudo disassembler plugin
    • Fallback to anal=v850 when using asm=v850.gnu
    • Add ep, sp, gp lp register aliases for v850
    • Added function preludes (aap finds much more functions)
    • Fix calling convention argument register usage for v850
    • Add all instruction descriptions
    • Set v850 disassembler when opening v800 ELF files
  • TMS320

    • Implement pseudo disassembler plugin
  • PowerPC

    • Initial assembler support
    • Improve reg profile to support calling conventions
  • RISC-V

    • Add all instruction descriptions
    • Add Fix shift instruction analysis
    • Fix ESIL for JALR and AUIPC instruction
  • SPC700 plugins moved to extras

ESIL

  • Add sign-extension operations
  • Implement aof to filter expressions using the dfg api
  • Fix unexpected FPU exception in ESIL emulation bug
  • Enlarge ESIL VM stack from 32 to 256

BSD

  • Support pkgconf (BSD alternative to pkg-config)
  • Fix build with tinycc, unfortunely the final binary segfaults
  • Fix debugger support in FreeBSD
  • Implements r_sys_aslr for NetBSD
  • Fixing r_sys_pid_to_path for DragonFlyBSD
  • Setting ASLR support for DragonFlyBSD

Windows

  • Fix r_core_editor() on Windows (#17887)
  • Fix MSVC template demangling symbols
  • Expose TEB address as a flag on Windows
  • Add network support to WinDbg/KD (KDNET)

Apple

  • Support ObjC small method lists
  • Support iOS 14.x dyld shared cache
  • Add support for new macOS kernelcache

Changes

  • Rename asm.filter to asm.sub.names
  • Rename asm.var.sub to asm.sub.var
  • Deprecate the afc= command.
  • Removed all globals from main functions
  • afc= -> e anal.cc
  • Fix big endian DWARF parsing
  • labels no longer stored in sdb
  • Refactor Variable Constraints out of SDB
  • Fix r_anal_block_automerge incorrectly merging blocks

Thanks to

Authors

Release 4.5.1

03 Sep 13:54
4bc96b8
Compare
Choose a tag to compare

Release Notes

Version: 4.5.1
Previous: 4.5.0
Commits: 20
Contributors: 9

Highlights

bin

  • PE
    • Fix null dereference in Pe64_bin_pe_compute_authentihash
  • ELF
    • Avoid buffer overflow while identifying imports

build

  • Fix Cydia/iOS packaging and compilation issues
  • Enable LTO in sys/static.sh
  • Install ldid2 as well, to sign packages for cydia
  • Use meson install instead of manual installation in meson.py

core

  • Add Function Name, Constants, Globals and Local Variables to RAnnotatedCode

port

  • Backtrace support for haiku

util

  • Add r_sys_now_mono() and use in r2r
  • Fix NULL dereference in r_pkcs7_parse_spcinfo()
More details

Authors

4.5.0 Codename: Organized Chaos

18 Jul 14:50
Compare
Choose a tag to compare

Release Notes

Version: 4.5.0
Previous: 4.4.0
Commits: 426
Contributors: 58

Highlights

Analysis

  • Initial API for base type kinds (enum, struct, union)
  • Rename PowerPC to PPC
  • Improve RISC-V analysis for compressed instructions
  • Add endbr64 as a function prelude for x86-64 binaries
  • Improve BP vars/args detection
  • Detect register args used only by callee
  • Match args name/types from function definition
  • Improve itanium RTTI parsing and vtable search
  • Refactor Variables out of SDB
  • Implement basic concept of signature bestmatch

asm

  • Add support for WebAssembly SIMD extension
  • Boolify r_asm_is_valid and r_asm_set_syntax API
  • x86_64/x86_32: Implement assembler endbr32 and endbr64 instructions
  • x86_64: Support mov r64, 0xffffffffffffffff
  • x86_64: Fix mov r32, -imm32 encoding
  • Move inferior GNU Hexagon plugin to extras

bin

  • Apple Symbols file
    • Improve Xcode symbols parser
  • COFF
    • Improve relocation support on COFF file format
  • DEX
    • Fix several crashes when loading corrupted files
    • Performance improvements in DEX parsing
  • DWARF
    • DWARF 4 and 5 line parsing additions
    • Several improvements/fixes in parsing
  • ELF
    • Use Dynamic segment entries instead of sections to find relocations
    • Add support for BA2 ELF
    • Add support for relocation entries for AARCH64 and PPC
    • Print a warning when the entrypoint cannot be found and it is automatically set somewhere else
    • Make glibc heap commands faster by resolving main_arena symbol
    • Add support for glibc heap tcache pre/post glibc version 2.30
    • Add missing reloc definitions for C-SKY, RISCV and AARCH64
  • kernelcache
    • Fix rebasing offset
  • Mach-O
    • Fix symbol names truncation issue when dealing with overly long strings
    • Support arbitrary length identifiers
    • Fix relocations on ARM Thumb
    • Support Mach-O threaded binding for arm64e
    • Rebase and strip pointers on Mach-O arm64e
    • Fix parsing of objc class data pointer
    • Do not automatically set the entrypoint of libraries
  • PDB
    • Add support for multiple PDB symbol servers
    • Add function for reading PDB from buffer
    • Fix command injection on PDB download (CVE-2020-15121, advisory GHSA-r552-vp94-9358)
  • Pyc
    • Move to radare2 core repository and improve/clean it
  • PE
    • Fix crash when resolving corrupted ordinal exports
    • Speedup parsing PE exports

build

  • Various fixes for Haiku
  • Add support for binr/blob and fix android build in meson
  • Add --without-dylink configure flag to disable libdl features
  • Add Debian 8 Jessie to GitHub CI
  • CentOS tree sitter fix using gnu99 when available
  • Fix the static build by dynamically resolving libutil symbols
  • Add release Github workflow to create all the release artifacts
  • Introduce --without-r2r configure option to disable compilation of r2r

cons

  • Add VT sequences input support for Windows

crypto

  • Remove hardcoded supported encoders names (e.g. base64, base91, punycode)

debug

  • Fixes for windows debugger
    • Improve exception logging
    • Fix inconsistencies in killing/restarting a process
    • Fix detaching without killing debuggee
    • Expose exception reason for di

io

  • Add new fd:// (handle:// on windows) plugin
  • Support self:// plugin for Solaris and Haiku OS
  • Fix regression while loading large files (>2GB) on 32bit systems

lang

  • Fix C/Cpipe when non standard library paths are used
  • Implement RLang.spp for templated scripting
  • Move #!v out of core (it's now available via r2pm)
  • Fix usage of #!python, #rust, and #cpipe
  • Do not include C/cpipe RLangPlugins on windows

magic

  • Add Android boot image signature

socket

  • Fix socket connect with SSL

util

  • Move RAnnotatedCode API from r2ghidra to r_util so it can be reused
  • Refactor r_big for gmp and SSL
  • Remove unused RConstr API
  • Remove unused RRangeTiny API
  • Add support for weakref RStrBuf and add r_strbuf_setptr API
  • Add r_vector_fini and r_pvector_new_with_len API and add bound checks on all RVector APIs
  • Add support for n# in pfc
  • Add generic reference counting implementation

rabin2

  • Fix go detection in non-elf binaries

radare2

  • Config variables
    • Renamed variables
      • asm.jmpsub -> asm.sub.jmp
      • asm.var.submin -> asm.sub.varmin
      • asm.tailsub -> asm.sub.tail
      • asm.section.sub -> asm.sub.section
      • asm.var.subonly -> asm.sub.varonly
      • asm.regsub -> asm.sub.reg
      • asm.relsub -> asm.sub.rel
      • anal.in=raw -> anal.in=range
      • asm.bytespace -> asm.bytes.space
      • scr.ansicon -> scr.vtmode (only on Windows build)
    • New variables/options
      • anal.vars.stackname: (true/false) Name variables based on their offset on the stack
      • asm.bytes.right: (true/false) Display the bytes at the right of the disassembly
      • bin.str.enc=ascii is a new option
  • Commands
    • Add axv and afvx and afv= commands to visualize var R/W accesses
    • Add afvxj to print JSON output of afvx
    • Add dmia command to list all info of a target lib and accept more print modes in dmi
    • Fix invalid json output for drtj command
    • Add key to highlight and go-to highlighted text in graph mode
    • Add JSON print to /E command with /Ej
    • Add zb command to find n closest matching graph zignature
  • Initial refactoring to generate commands help automatically and support argv-style command handlers (e cfg.newshell=true)
  • Add API to print decompiled code
  • Optimize aao objc analysis
  • Display file associated to the current file in the visual title
  • Fix runaway scrolling in Visual mode after mashing down movement key on Windows Terminal
  • Add F9 continue key to ESIL

rafind2

  • Implement rafind2 -F to find the contents of the file

rasign2

  • Add dumping of FLIRT signatures to rasign2
  • Move main code to r_main

r2pm

  • Initial support for git tags in r2pm

Details

More details

This release could not be done without the help of several people, who
contributed with many fixes and improvements. Above you can only find some short
highlights of what was done in this release, but many more important changes
have been committed and you can find them in our git log.

Authors

4.4.0 Codename: pangolin

14 Apr 02:54
Compare
Choose a tag to compare

Release Notes

Version: 4.4.0
Previous: 4.3.1
Commits: 328
Contributors: 41

Highlights

  • Replace shellscript, nodejs and V testsuites with r2r.c which is shipped by default
  • Added initial analysis plugins for super-h and tricore
  • Fix build and some runtime issues on IBM s390x
  • Updated rap:// cleaned up implementation inside RSocket for client and server
  • Speedup type linking (300x faster)
  • Fixed all the timeouts and crashes from bins/fuzz
  • Add support for retpoline switch table analysis (spectre/meltdown)
    • Fix #16418 - Implement blind main detection on endbr+mov files
  • Add commands to emulate a basic block or the whole path until reaching an address
  • Fix support for the latest GLIBC for heap parsing
  • Improved automatic function signature association for the imports
    • Fixed afs command to show proper footprint
    • Add support for typedef and added NSString type on darwin binaries
    • Fixed all the t subcommands to print all types as C
  • Improved visual class browser and the visual bit editor
  • ragg2 now allows to change the path of the shellcode to run
  • Graph visualization is now faster
  • Use RPVector for io->maps - speedup map traversal (overall speedup)
  • Lots of code cleanup and refactorings reducing memory usage and performance
  • DEX loading is now 2x faster
  • Fix assembler: MOV for x86 and LDR for arm64
  • Improved the bin loader to support iOS 13.4 dyldcache files
  • Improved support for ObjC IVAR fields loading them as C structs
  • Add improved icc subcommands to print as classes as C, ObjC or Java
  • Automated Emscripten (JS/WASM) builds in CI
  • Fixed static build by defining a new file naming policy
  • Default installation path with sys/install.sh is now always /usr/local
    • Previous installations in /usr will be purged
  • Only check for major and minor version numbers when loading plugins
More details

Authors

Changes

anal

  • Add initial SuperH and Tricore analysis plugins
  • Added option to search all vtables
  • Fix infinite loop in aae - check if address is valid
  • If possible use symbol name instead of entry name for function name (#16528)
  • makes the local variable access detection work on arm64
  • Fix asserts when trying to use a unexistant or wrong analysis plugin
  • Minor Fixes for XRefs counting (#16546
  • Fix #16413 - Analyze code refs spotted with aae
  • Implement x86 anal.jmp.retpoline switch tables (spectre/meltdown)
  • Tweak arm64 ldr ESIL for var access
  • Add opaddr field in ab/abj output
  • Improve noreturn and aesu times, show it in afi & afij
  • Fix dup af+ removing function from hts (#16526)
  • Fix #16308 - Add fcn arg in r_core_anal_propagate_noreturn to avoid O(n) in af
  • Fix ao~bytes and add test
  • Improve aef by skipping calls and improving the logic
  • Improve aeg command and add aaef as an alias for aef@@@f
  • Fix #16225 - Remove the unused fcn_locs causing an UAF
  • Implement Shortest Path between BBs and add tests for abt (#16200)
  • Implement aesB command to step until the given basic block
  • Implement afsj command to get the JSON definition of the function signature
  • Add acvf command and devirtualizing vtable method calls (#16157)
  • Implement aeb command to emulate a basic block (#16174)
  • Guess a better name for functions when multiple flags point there

asm

  • Fix #16433 - Use MOV opcode B8+ for MOV r64, <0x80000000 to 0xffffffff> #16572
  • Fix #16433 - Support movabs for x86_64's MOV r64, imm64 (#16527)
  • x86_64: Use MOV opcode C7 for MOV r64, -<1 to 0x80000000> (#16551)
  • Fix arm64 branch assemble (#16205
  • Support asm.cpu for Tricore architecture (#16161)

bin

  • Fix infinite loop in macho commands parser (#16562)
  • Fix heap overflow in the relocs ELF parser
  • Improve COFF symbol info (#16523)
  • Fix crash issue induced by an integer overflow in the mach0 parser
  • Fix #16455 - iij asserts for ld-uclibc with a null import
    • Fix asserts in iij for ld-uclibc with a null import
  • Add rust lang support to iD command (#16490)
  • Fix #16418 - Implement blind main detection on endbr+mov files
  • Fix COFF symbols/imports info (#16446)
  • When computing ELF relocations, use DYNAMIC segment if available (#16419)
  • Make dyldcache accelerator info optional
    • Make dyldcache accelerator info optional
  • Do not use r_buf_data in DEX results in 1.5x faster parsing (22s vs 33s)
  • Implement icc*, in sync with ic* to get C strcuts from mach0 classes into r2
  • Add mach0 class fields with padding and sorted by offset
  • WIP: Improve ObjC's IVAR fields support
  • Fix #16265 - Segfault in rabin2 -O e/123 with ELF
  • Fix memory leak in RBin. NE relocations
  • This allows to open dyld cache files from iOS 13.4 for which
  • Idea for fixing id? and idp? etc commands (#16244)
  • Fix PE endian and alignment issues spotted by ASAN
  • Strip minuses from the hash names for sha256 PE signatures (#16156)
  • Fix heap overflow in the relocs ELF parser
  • Fix crash issue induced by an integer overflow in the mach0 parser
  • Fix #16455 - iij asserts for ld-uclibc with a null import
  • Make dyldcache accelerator info optional
  • Fix memory leak in RBin. NE relocations
  • Fix PE endian and alignment issues spotted by ASAN

build

  • Fix Build on NetBSD (#16520)
  • Update SDB
  • Make msbuild quieter (#16482)
  • Create more GitHub Actions jobs for meson and gcc/clang
  • Build fixes to make emscripten builds happy (#16406)
  • Avoid duplicated module filenames to fix static.sh
  • Rename util/diff.c to udiff.c to avoid libr.a collission
  • Build *.deb packages only for master branch (#16320)
  • Run sys/static in the Debian task
  • Fix #9240 - sys/install.sh uses always /usr/local + rpath now

core

  • Remove asm.linesup (#16293)
  • Fix wen command for io.va=true, add two tests
  • Fix #16281 - Do not load system-wide plugins twice
  • Only check for major and minor version numbers when loading plugins
  • Add cmd: acvf [offset] ([class name])
  • Add r2 -NN to not load plugins
  • Always use r_getopt, do not depend on libc (not just on windows)
  • Use r_core_cmd_lines() for -c (#16290)
  • Use @{} instead of @() and fix this modifier
  • Implement @v: value modifier, like @x: but with endian and size
  • Fix #15978 - segfault when using r2pipe webserver + local visual (#16508)
    • Makes r2 interop more stable

debug

  • Fix tcache address and offset in print_tcache_instance()
  • Fix dmht for glibc caused by wrong tcache offset and definition (#16247)
  • Fix tcache_perthread_struct definition
  • Test dmha/dmh for glibc x64 (#16307)
  • Fix #16432 - openbsd fork+attach EBUSY issue
  • Decouple shlr/gdb registers profile from code (#16312)
  • Minor fix to get dmh to work with riomap (#16286)
  • Detect glibc version and set dbg.glibc.tcache accordingly (#16255)
  • Fix chunk listing with tcache and add test (#16239)
  • Fix #16219 - Add $DB variable for dbg.baddr
  • Add tests for rebasing in debug
  • Fix debug rebase regressions
  • Clean drx/drt/drp help message (#16203)

diff

  • Fix print string in radiff -qu (#16212)

disasm

  • Show realnames on function's signature when enabled
  • Fix #16263 - Do not newline after showing switch cases

egg

  • Fix shellcode path customization (#16384)

graph

  • Optimize r_anal_get_bbaddr() to make graph navigation faster

io

  • Fix #16210 - Show error message and update help for we
  • Fix #14371 - Make wfs paired with wts, rename wfs to wfx
  • Use RPVector for io->maps - speedup map traversal
  • Fix #16347: o+ sets maps as writable like oo+ (#16381)

json

  • Fix #16233 - ~{} works on colorized JSONs
    • Fix #16233 - ~{} works on colorized JSONs
  • Use pj in zj (#16321)
  • Use pj in ilj
  • Add pj_ad api to print raw data

lang

  • Update support for V in libr/lang

ports

  • Fix #16109 - Add R_SYS_ARCH for s390x

print

  • Fix #16394 - Make pm [file] work again
    • Fix #16394 - Make pm [file] work again
  • Implement hex.offset config variable to hide address column from hex-dump (#16373)

refactor

  • Initial r_anal_fcn_* purge (#16238

reg

  • Make r_reg_get_list() search harder (#16202)

search

  • /ad/ in /bin/ls ate 9 extra MB that was never ...
Read more

4.3.1

05 Mar 18:48
Compare
Choose a tag to compare

Binaries: http://radare.mikelloc.com/release/4.3.1

Screenshot 2020-03-10 at 15 23 46

  • Fix segfault in om= command
  • Fix dead process issue with ood/doo command
  • Fix build with ancient capstone3
  • Fix build with pre-c99 compilers
  • Some more code cleanups + refactorings

See 4.3.0 changelog for full details compared to 4.2.0

4.3.0 - Codename llentia

04 Mar 00:21
Compare
Choose a tag to compare

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 ...
Read more

4.2.1

20 Feb 11:45
Compare
Choose a tag to compare
Release r2-4.2.1

Arctic World Archive

21 Jan 05:34
Compare
Choose a tag to compare

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’s 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
  • 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 [email protected]
  • 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-author...
Read more

4.1.1 - reantull

20 Dec 12:29
Compare
Choose a tag to compare
Release 4.1.1 - Codename 'reantull'

4.1.0 - codename 'antull'

19 Dec 00:07
Compare
Choose a tag to compare

Release Notes

Version: 4.1.0
From: 4.0.0
To: 4.1.0
Commits: 252
Contributors: 40

Authors

Changes

anal

  • Improve SP based variable analysis
  • Some more helpful messages for anal.verbose
  • Fix first r_anal_op call after asm.bits change
  • Improve SP based var analysis
  • Fix ms cc wrong argument analysis
  • Fix r_type_del() for typedefs (Fix #15337)
  • Add base64: for afn
  • Move the fcn preludes into RAnal and add anal.jmp.tailcall (-1,0,N)
  • Fix typo in ios-syscalls.txt (#15436)
  • Initial implementation of afvf - show bp-relative stackvars
  • Insert arguments into types SDB on function analysis

arch

  • Add support for or1k (OpenRISC) disasm+analysis (#15515)

asm

  • Fix ignored asm.bits settings because of RBin overrides
  • Fix for #15459 - Also set the first operant to the right value on a mov from pointer with offset
  • Add ARM strd support (#15388)

bin

  • Add 64-bit iOS SEP xtr plugin
  • Add PIE flag check in kernelcache detection
  • bin.str.enc: Accept UTF hyphen aliases (#15492)
  • Support UTF32-BE decoding (#15472)
  • Recognize Unicode BOMs (#15469)
  • Use pj in the izj and izzj commands
  • Fix #15445 - Add support for Mach-O external relocs
  • Add support for C64 PRG fileformat
  • pd: Don't abort string printing on initial null if bin.str.enc != guess (#15446)
  • Fix #14279 - Ignore entrypoint on non-executable ELFs
  • Analyse HIOS and LOOS symbol types by default. (#15411)

build

  • Fix #15485 - Improve argument parsing in sys/{install,build} (#15486)
  • FIx 32bit windows
  • Rename "asan" to "sanitize" (#15412)
  • Fix build for 32bit Linux systems
  • Fix build of the onefied shared lib 

command

  • Very simple tree sitter integration (#15414)

config

  • Pass R2_CONFIG file to ! commands and serialize methods

cons

  • Fix #14197 - Don't highlight control chars on hud filter (#15552)
  • Include last line when greping using foo~n.. (#15524)

core

  • Fix some Race Conditions with the thready task scheduler (#15667)
  • Make Task Scheduling Explicit (#15511)
  • asm.cmt.off: Accept 0 & 1 as aliases for false & true respectively (#15500)
  • Use sigaction instead of signal
  • CPU affinity API introduction
  • Honor cfg.editor in 'vi' instead of always using 'vi'
  • Implement $foo:=,+=,-= and $foo to alias some flags commands
  • Support 'f foo+=4' and 'f foo-=4' syntax for flags

debug

  • Improve debug rebasing and fix partial windows rebase
  • Refactor debug native's wait function
  • Fix native debug not working with files that were opened as RW
    • Add ppid to win32 debug and 'dp''s display/json
    • Add process selection to w32 debug
  • Fixed a crash caused by reopening gdb
  • Fixed not killing child processes and added detach
  • Fixed gdbr warnings and a dpt crash after debug was over
  • Added an event to signal the end of the debug session
  • Fix 'oo' rebasing when leaving debug and add 'doc' to exit
  • Silence drr warning on UT64_MAX registers
  • Fixed an issue with detached child breakpoint inheretence
  • Added oodf\doof to enable rebasing for remote debug
  • Rebase Breakpoints for PIEs
  • Added dp processes info support to gdbr
  • Add breaking to ood in linux to avoid execvp freezing
  • Allow debug plugins to modify pid/tid on select
  • Fix linux_set_options error
  • Add process selection to linux native debug
  • Setting parent pid on pid list on BSD
  • Show all processes for pid 0 using dp
  • Improve linux native debug dp output
  • Fix getting DRX breakpoint size
  • Fixed overflow that broke remote debugger reopening
  • Impl. list modules for WinDbg
  • Fix WinDbg IO in page boundaries
  • Fixed windbg concurrency and added missing locks
  • Fixed windbg pipe timeout behavior on linux
  • Added rebuild rules for windbg
  • Fixed windbg continue on windows 7 64bit
  • Allow breaking for WinDbg
  • Update hardcoded gdbr registers for 16/32bit x86 (#15488)
  • Added parsing support to all gdb registers
  • Fix gdbr's reg_write and reg_next_diff for reverse stepping
  • Reduced gdbr's tcp connect timeout and added a break
  • Fix gdbr not closing sockets after connect failed
  • Add break to gdbr's read_packet and move isbreaked to libgdbr
  • Fix gdbr_write_registers and refactor gdbr_write_reg
  • Replaced lock_check with tryenter in gdbr_read_registers
  • Add breaking to gdbr connect to avoid waiting on invalid connections (#15442)
  • Add experimental ymm regs support for linux-x64 and extend drm command
  • Add Windows 8 and 8.1 WinDbg profiles
  • Fix attaching to a pid on Windows (#15406)
  • Fixed w32dbg breaking issues (#15386)
  • Add support for printing xmm* as packed floats and doubles (#15378)

disasm

  • Fix hidden hint.lea for hint.pos==0
  • Improve switch-statements in disassembly
  • Add refs, xrefs and esil columns to pdt
  • Add asm.cmt.esil to show ESIL as comment

doc

  • Improve macOS installation documentation (#15438)
  • Fix links to Doxygen documentation (#15377)

gdbclient

  • gdbclient reduces risk of use after free down the road

io

  • Uses the setitimer api instead for the alarm in self://
  • Automatically set the debug plugin when opening debug uris (#15403)

json

  • Add current process field to dpj

network

  • Fix r_socket_connect not using the given timeout in unix

print

  • Fix #14661 - Support parsing binary protobuf data (#15423)
  • Add utf-8 support in r_print_rangebar (#15389)

r_debug

  • Refactor signal handling for FreeBSD

search

  • Introduce the r_magic_load_buffer() api and boolify a bit
  • Update RSA key search to find larger keys (#15494)
  • Search for AES 128, 192 and 256-bit keys (#15426)

signatures

  • Add auto zignspace generation for the zg command (#15402)

test

  • Implement asm, fuzz and json test runner in r2r.v

util

  • Add RIntervalTree data structure
  • Added r_th_lock_tryenter API (#15454)
  • Use HtPP for RStrConstPool (#15424)

visual

  • Improve the interaction with decompilers in panels
  • Reduce the blocksize on some hexvisual modes

windows

  • Add command to identify window under cursor
  • Fix #15456 - Fix reopening in write mode
  • Fix hang when running dc in a task

To Review

  • Release 4.1.0 - Codename 'antull'
  • Fix lock ordering of RCoreTaskScheduler.lock vs. RCoreTask.dispatch_lock
  • Remove RThreadLock.refs
  • Fix a race in tasks
  • Make SP based variable analysis aware of changes to SP
  • Use delta inside stack to identify the variable used instead of offset to SP
  • Keep track of offsets to SP used to access the variable
  • Fix argument printing order for reg args
  • Add test
  • Revert pe coverity fixes to fix ihj
  • The format is reused for printing and internal type representation,
  • breaking the JSON by making the value field in ihj empty since "llx"
  • isn't a valid type
  • Fix ESIL UB
  • Mark fixed tests as such
  • Fix some FX Tests
  • Separate windows, linux and *bsd/apple since they have vastly different
  • logic and the ifdef jungle implementation was too confusing
  • sys/meson.py: Use == 'vs2017' instead
  • The FD was kept open and ptrace was prevented from opening it with the
  • error "Could not execvp: Text file busy". Fixes issue #15650.
  • Solving r_debug_handle_signals build warning issue.
  • Fix #15653: Silence MSVC XP deprecation warning
  • Use eprintf instead
  • Fix typo
  • Make it possible to use sysmagic again (#15658)
  • Compile tree-sitter with std=c99 flag (#15654)
  • SystemZ analysis logic error
  • Fix some MSVC warnings
  • Add ppid to dp and fix dp= for windows (#15649)
  • Previously, dp= wouldn't fully switch to the given process since it
  • was treated like dpt thread switching, leaving the debugger in
  • an undefined state.
  • Function r_anal_cc_arg should just return NULL when nothing is available (#15646)
  • Function r_anal_cc_arg should just return NULL when nothing is available
  • Callers should be able to handle NULLs
  • Fix memory leaks in unit tests
  • Some coverity fixes (#15643)
  • The plugin would try to work with an old version of desc that was already
  • freed by r_io_clo...
Read more