Skip to content

Codename: Refactor Forever

Compare
Choose a tag to compare
@radare radare released this 13 Mar 01:59
· 18750 commits to master since this release

rfr2

Downloads

http://cloud.radare.org/get/1.3.0

Release 1.3.0

Project: radare2
Codename: beta
Date: Mon Mar 13 2017 00:37:36 GMT+0100 (CET)
Website: http://radare.org
Tarball: https://github.com/radare/radare2/releases
Builds: http://cloud.rada.re/get/1.3.0-git

radare2 1.3.0-git comes with 11868 new lines of features, bug fixes and enhancements.

Numbers:

  • commits: 415
  • fix: 223
  • crash: 12
  • new: 8
  • add: 67
  • anal: 19
  • leak: 3
  • esil: 4
  • debug: 9
  • type: 8
  • oob: 24
  • honor: 5
  • update: 13
  • clean: 5
  • import: 3
  • endian: 0
  • indent: 22
  • command: 12
  • enhance: 9
  • diff:
    • add: 29626
    • del: 17758
    • diff: 11868
.-----------------------------------------------------------------------------------------------------------------------------------.
|                                                         Release 1.3.0-git                                                         |
|-----------------------------------------------------------------------------------------------------------------------------------|
|     name     | commits | fix | add | honor | leak | esil | endian |                            authors                            |
|--------------|---------|-----|-----|-------|------|------|--------|---------------------------------------------------------------|
|              |     415 | 223 |  67 |     5 |    3 |    4 |      0 |                                                               |
| binr/radare2 |      11 |   5 |   3 |     0 |    0 |    0 |      0 | pancake defragger xarkes alvarofe ...                         |
| binr/rabin2  |       2 |   2 |   1 |     0 |    0 |    0 |      0 | pancake nibble                                                |
| binr/radiff2 |       0 |   0 |   0 |     0 |    0 |    0 |      0 | pancake                                                       |
| binr/rahash2 |       0 |   0 |   0 |     0 |    0 |    0 |      0 |                                                               |
| libr/debug   |      14 |   9 |   3 |     0 |    0 |    0 |      0 | pancake osalvador.vilardaga alvarofe schumblub ... |
| libr/bin     |      74 |  48 |  17 |     0 |    0 |    0 |      0 | pancake alvarofe h4ng3r wargio ...                            |
| libr/core    |     171 |  92 |  25 |     4 |    1 |    2 |      0 | pancake alvarofe schumblub maijin ...              |
| libr/crypto  |       2 |   2 |   0 |     0 |    0 |    0 |      0 | wargio pancake                                                |
| libr/cons    |       8 |   7 |   1 |     1 |    0 |    0 |      0 | pancake ret2libc skuater itaycohen23 ...                      |
| libr/anal    |      50 |  25 |   6 |     0 |    0 |    2 |      0 | pancake alvarofe mrmacete srimanta.barua1 ...                 |
| libr/asm     |      35 |  17 |   9 |     0 |    1 |    0 |      0 | unlogic pancake alvarofe laanwj ...                              |
| libr/util    |      58 |  32 |   8 |     1 |    2 |    0 |      0 | pancake alvarofe wargio schumblub ...              |
| libr/egg     |       0 |   0 |   0 |     0 |    0 |    0 |      0 | pancake                                                       |
| libr/io      |       6 |   3 |   1 |     0 |    0 |    0 |      0 | pancake alvarofe wargio p4n74 ...                             |
| shlr/bochs   |       0 |   0 |   0 |     0 |    0 |    0 |      0 | pancake                                                       |
| man          |       3 |   0 |   1 |     0 |    0 |    0 |      0 | pancake                                                       |
'-----------------------------------------------------------------------------------------------------------------------------------'

Contributors: 415 / 46 = ~ 9 commits per contributor

41% - 174 pancake
20% - 83 alvarofe
5% - 22 SchumBlubBlub
4% - 17 maijin
3% - 14 unlogic
2% - 12 wargio
1% - 8 h4ng3r
1% - 8 nibble
1% - 6 xarkes
1% - 5 condr3t
1% - 5 mrmacete
0% - 4 xvilka
0% - 4 osalvador.vilardaga
0% - 4 ret2libc
0% - 3 defragger
0% - 3 me
0% - 3 skuater
0% - 3 laanwj
0% - 3 srimanta.barua1
0% - 2 p4n74
0% - 2 zutle.harh
0% - 2 itaycohen23
0% - 2 jeremy.goldstein+github
0% - 2 ahmedsoliman
0% - 2 sferrini
0% - 2 kazarmy
0% - 2 brainstorm
0% - 1 queueram
0% - 1 dx
0% - 1 thor0505
0% - 1 berne.campbell
0% - 1 vlad
0% - 1 cutlassc91
0% - 1 pankajkiitr.ucs2015
0% - 1 antide.petit
0% - 1 david.polverari
0% - 1 susan78965
0% - 1 Ferrancelades
0% - 1 Nevsor
0% - 1 thelightnet
0% - 1 polsha3
0% - 1 dogtopus
0% - 1 bofh666ftw
0% - 1 aneesh
0% - 1 jkrshnmenon
0% - 1 SztfG

Highlights

Tools

  • r2-indent
    • uses uncrustify and some regexes after it (also supports clang-format)
    • enforces a common indentation syntax across all the codebase (wip)
  • r2-docker
    • supports creating and using a docker image with r2
    • supports debugging linux-x86-32/64
  • Initial support for WebAsm

Usability

  • Show RBin plugin info with rabin2 -L [plugin]
  • rasm2 obeys R2_ARCH and R2_BITS env vars from r2
  • Added warning when loading project with different binary
  • Removed useless elf size flag (-nn) and set normal flag size
  • Enhance graph shortcuts

rabin2

  • Display plugin info in a proper structured way for humans with rabin2 -L [plugin].
  • Fix current rabin2 -L [-j] output.
  • Allow to specify -j before or after -L.

Important Bugs Fixed

  • Fixed r2pipe and RCons grep on Windows
  • Avoid 100% cpu usage in Linux debugger
  • Fix c++ demangler crash
  • Fix ASN1 memory bugs (various overflows)
  • Fix #6770 - Handle ^C in pdr and other search commands
  • Fixes for dalvik and analop (imm/ptr)
  • Fix crash in rabin2 -C for mach0
  • Fix #6806 - Invalid delta diff boundaries

Cleanup

  • Removed many scripts in sys/, use r2pm plz
  • Fixed many crashes, bugs and regressions
  • Remove assert in GNU's AArm64 disassembler
  • Update uncrustify config file
  • Refactoring of z/ and zs
  • Various optimizations for RConsCanvas
  • Rewrote r_anal_type_func_guess (~4x analysis speedup)

Commands

  • Add: dbf - put a breakpoint into every no-return func
  • Added afxX to afl* (which is saved with Ps)
  • Fix #6747 - Implemented @@@= iterator
  • Implement @@/ to temporary set the value of cmd.hit
  • Add rapatch format documentation in wp?
  • pif uses realsize instead of fcn->size
  • New aab command to find basic blocks and identify function heads
  • Vr refresh visual screen
  • Implement aggv like agv, but for the custom graph
  • Implement rabin2 -L [plugin] and iL [plugin]
  • iH support for DEX, MACH0, ELF and PE
  • Implement pxx and pxX for hex-less hexdumps
  • Enhance Vx - visual xrefs browser, with more highlight and less glitches
  • Add Pnx command for project note command parsing
  • New command pdk to disasm a klass

Features

  • Say hello to the new compact hexdump (e!hex.compact)
  • Debian confirms we run on GNU/Hurd - Without debugger or r2k
  • Fix #6818 - json indent ~{} honors scr.color
  • Fix #242 - Implement HFS timestamp in pth
  • Fix #6677 - Quoted multicommands issue
  • Fix #7006 - Support decimal in unit strings (f.ex: 2.3K)
  • Initial commit for parsing RTTI structures
  • Magic database is now compatible with GNU magic (BSD already supported)
  • More instructions supported for ARM, ARM64 and X86
  • Fix #4837 - Support punycode emojis
  • PPC(32/64) ESIL Emulation

Disassembly

  • Fix #6456 - Show cursor in data words
  • Print string references even if they contain special characters like newlines or tabs
  • Fix #6611 - Implement ORR for AArm64
  • Fix #6882 - Tricore byte copy to restore disassembling
  • riscv: Update opcodes from binutils-gdb
  • Update capstone (remove the fix-warns patch)
  • scr.html fixes for disassembly
  • riscv: Return actual instruction length
  • Fix asm.bits when af in arm/thumb

Analysis

  • Detect main pseudo-symbol in more PE and ELF binaries
  • Fix #7000 - ELF file identified as BIOS
  • Fix #3022 - Support OPEX for mips, arm, arm64 and x86
  • Added ARM Thumb ADR instruction to calculate the correct offset
  • Fix issue with arm/thumb bits detection
  • Fixed PC and LEA instruction to correctly resolve references
  • Fix #6884 - Improved ESIL output for various ARM arithmetic instructions
  • Fix #3448 - Add support for multiple-hit signatures
  • use op.stackptr instead of op.val for stack frame size guessing.
  • Enhancements for aab and abb, codename analblaze, using to be O(1) instead of O(n^n) (lulz)
  • Initial implementation of abb - analyze basic blocks in range

Binaries

  • Honor rabin2 -H, -rH, -qH and -jH
  • -HH shows the full header in dexdump/objdump format
  • Added PE overlay flag to r2 -nn and in iI
  • Add ASN1, X.509 and PKCS parsers (+ iC for PE)
  • Optimize ELF Symbol loading (> 4x faster)
  • Implement initial iHH for mach0
  • Parse .NET CLR header structure if found in PE
  • PDB: Add unions support