Skip to content

Codename 0.10.4 - Padron Peppers

Compare
Choose a tag to compare
@radare radare released this 06 Jul 22:38
· 21332 commits to master since this release

Release 0.10.4

Project: radare2
Codename: Padron Peppers
Date: Mon Jul 07 2016 00:35:10 GMT+0200 (CEST)
Website: http://radare.org
Tarball: https://github.com/radare/radare2/releases

radare2 0.10.4 comes with a some new features and a lot of bug fixes and enhancements.
Here are some of the most important ones:

Highlights:

  • Initial support for heap analysis (linux-glibc) (@n4x0r e & @javierprtd )
  • Fully working local, stack, base or register variables support GSoC (@oddcoder)
  • Fixed support for really messed up PE binaries (@alvaro_fe)
  • Improved support for AVR and IO ports (@brainstorm)
  • CDIV deoptimization support (@ususdei)
  • New disassembler for N64 RSP processor disassembler (@bsmiles32)
  • Major rework of the debugger internals (@jduck)
  • The default assembler now supports much more instructions (@unlogic)
  • Added asm.assembler to use different plugin than the disassembler
  • Better android support (correct disassemlby, initial multidex) (@trufae)
  • Better coredump support on Linux (oscar salvador)
  • Fixed native build for linux-mips and linux/osx-powerpc (@trufae)
  • Implemented bit-level editor 'press d and then 1 in visual mode' (@trufae)
  • Updated material webui -- GSoC (@gcolajan)
  • r2pm package database moved to another repository (@zlowram)

Numbers:

.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|                                                                                                                                         Release @                                                                                                                                          |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|     name     | commits | fix | add | leak | update | r2pm | clean | esil | endian | commits |                                                                                           authors                                                                                            |
|--------------|---------|-----|-----|------|--------|------|-------|------|--------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|              |     402 | 225 |  80 |   10 |     20 |   10 |    11 |   15 |      4 |     402 |                                                                                                                                                                                              |
| binr/r2pm/d  |       0 |   0 |   0 |    0 |      0 |    0 |     0 |    0 |      0 |       0 |                                                                                                                                                                                              |
| binr/radare2 |       9 |   6 |   2 |    0 |      0 |    0 |     0 |    0 |      0 |       9 | pancake crowell                                                                                                                                                                              |
| binr/rabin2  |       3 |   1 |   1 |    0 |      0 |    0 |     0 |    0 |      0 |       3 | crowell pancake                                                                                                                                                                              |
| binr/radiff2 |       3 |   1 |   0 |    0 |      0 |    0 |     0 |    0 |      0 |       3 | pancake nikolaih                                                                                                                                                                             |
| binr/rahash2 |       2 |   2 |   0 |    0 |      0 |    0 |     0 |    0 |      0 |       2 | pancake dx                                                                                                                                                                                   |
| binr/ragg2   |       0 |   0 |   0 |    0 |      0 |    0 |     0 |    0 |      0 |       0 | pancake                                                                                                                                                                                      |
| libr/hash    |       0 |   0 |   0 |    0 |      0 |    0 |     0 |    0 |      0 |       0 | pancake                                                                                                                                                                                      |
| libr/debug   |      46 |  31 |  11 |    0 |      1 |    0 |     1 |    0 |      0 |      46 | pancake jduck xvilka meep crowell pavel.borzenkov alvarofe osalvador.vilardaga psyberbits                                                                                                    |
| libr/bin     |      68 |  51 |   2 |    2 |      1 |    0 |     2 |    0 |      2 |      68 | pancake alvarofe crowell xvilka jduck psyberbits                                                                                                                                             |
| libr/core    |     132 |  74 |  37 |    3 |      4 |    0 |     4 |    3 |      1 |     132 | pancake oddcoder crowell jduck alvarofe karol.harasim xvilka psyberbits monosource nibble chinmay1dd maijin defragger ret2libc robbje af123 ususdei reenz0h dx lonely.ruyk mrmacete ekse.0x  |
| libr/crypto  |       0 |   0 |   0 |    0 |      0 |    0 |     0 |    0 |      0 |       0 | pancake                                                                                                                                                                                      |
| libr/cons    |      14 |   5 |   3 |    0 |      0 |    0 |     0 |    0 |      0 |      14 | psyberbits pancake crowell oddcoder                                                                                                                                                          |
| libr/anal    |      56 |  33 |  10 |    3 |      0 |    0 |     1 |   11 |      2 |      56 | pancake oddcoder alvarofe condr3t sushant mrmacete sushant.dinesh94 aronsky psyberbits dx bobby.smiles32 crowell                                                                             |
| libr/asm     |      34 |  19 |  11 |    0 |      2 |    1 |     1 |    0 |      1 |      34 | pancake sven mr.exodia.tpodt alvarofe bobby.smiles32 sylvain.pelissier mrdanielps crowell karol.harasim julien.voisin                                                                        |
| libr/util    |      43 |  25 |  10 |    0 |      0 |    0 |     2 |    0 |      0 |      43 | pancake crowell karol.harasim alvarofe def psyberbits Lukas-Dresel osalvador.vilardaga defragger nikolaih mattd                                                                              |
| libr/bp      |       1 |   1 |   1 |    0 |      0 |    0 |     0 |    0 |      0 |       1 | jduck                                                                                                                                                                                        |
| libr/egg     |       1 |   1 |   0 |    0 |      0 |    0 |     0 |    0 |      0 |       1 | pancake                                                                                                                                                                           |
| man          |       3 |   1 |   2 |    0 |      0 |    1 |     0 |    0 |      0 |       3 | pancake nikolaih                                                                                                                                                                             |
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'

This makes 21,012 additions and 13,252 deletions.

Contributors:

  • 192 pancake
  • 40 alvarofe
  • 38 crowell
  • 20 jduck
  • 11 xvilka
  • 10 psyberbits, sven, oddcoder
  • 8 karol.harasim
  • 6 maijin
  • 5 mrmacete
  • 3 nibble, condr3t, dx, monosource, mrexodia, sushant
  • 2 brainstorm, def, meep, chinmay1dd, sushant.dinesh94, defragger
  • 1 robbje, reenz0h, ususdei, aronsky, bobby.smiles32, zlowram, ekse.0x, mrdanielps, sylvain.pelissier, hummypkg, osalvador.vilardaga, lonely.ruyk, af123, nikolaih, mattd, slyfox, jaroslaw.gorny, pavel.borzenkov, Lukas-Dresel, jvoisin, qwokka, dukebarman, ret2libc

Fixes:

#5267,#5261, #5245, #5259, #4665, #5228, #5218, #4420, #5213, #4432, #4422, #5204, #1277, #5185, #5126, #5117, #5105, #5108, #4975, #5082, #5058, #5034, #5033, #5020, #5022, #5009, #5010

Changes:

This release focused on improving the speed and memory footprint of radare2,
along with code cleanup. Also, this release comes with a completely reworked
r2pm package manager. A lot of changes have happened in the debugger implementation, and in ESIL emission.

New commands

  • fi[jn*] to list flags in a given range
  • pdaj and pda= to disassemble all possible opcodes, byte per byte.
  • drp. to show the register profile size
  • ecoj to list themes in JSON format
  • pf [size]D
  • aoe and aor to show ESIL and REIL forms of the current opcode
  • ah. to show hints of the current offset
  • afv[bsr] to manipulate args, registers and variables in function
  • wxs to write hexpairs, and seek to the end
  • dpc to select the most recently forked child process
  • dpc* to show the recently forked process pid.
  • ecc [arg] shows color palete with a css syntax
  • pch for a 2 byte C dump mode
  • @o is a new modifier to temporary switch to another fd
  • Adds core.iorw in i
  • Renaming afa, afv and afe to afvb, afvr, and afvs respectively
  • Refactor pia/pda
  • Adds anal.vars variable to toggle variables analysis
  • r2 -I for pre-scripting
  • aa is now equivalent af@@ sym.*;af@entry0;afCa (can you guess what it does?)
  • Added cursor to undo seek history
  • Implement afbr and * sub-variants to list return addresses of current function

Analysis

Now r2 is able to load PE files that has been tampered somehow to thwart the analysis. If radare2 struggles with some samples, feel free to share them with us ;):
* Add name to section when is empty
* comment out hackaround for huge number of sections

  • Update syscall table for iOS
  • Adds output ports for AVR Atmel8A. Thanks @radare and @oddcoder
  • Implement RSyscall.IO in disasm loop for X86 and AVR
  • Improving variables on ARM (16, 32, 64)
  • Adds asm.hints and handle CDOV deoptimization
  • Possibility to add comment for var/args
  • Add anal.vinfun and anal.anal.vinfunrange for aav (only grab values outside function boundaries)
  • Improving the json format for args/vars
  • Initial import of the bin.avr plugin for atmega8 chips
  • Fix analysis and add ESIL for avr's rjmp
  • Support op->family and some op->cycle for anal.arm64
  • Add MJMP optype, pxt command and enhance anal.jmptbl for x86-64 (wip)
  • Fixed order of arguments in ESIL representation of MUL.
  • afbr's description wasn't worded properly: It doesn't actually print addresses of ret instructions, but of instructions which cause the flow of the program to leave the function body, like call, jmp, hlt, ...
  • CDIV deoptimization is now showed as hint

Debugger

  • Improved support of Linux, Android and *BSD systems
  • Major rework to the native debugger (especially on Linux)
  • Generate coredump - added support for threads and x86
  • Make dbt output aligned to columns based on dbg->bits
  • Breakpoints should now work regardless of the swtep setting
  • Fix build for Linux <= 2.6.32 (coredump not supported)
  • Make dm work on OpenBSD by adding a native _debug_native_map_alloc()
  • Add support for dp and dp* on OpenBSD.
  • Don't print SIGTRAP signals or stops
  • Adds breakpoints into project file
  • Add "clone" to the "dcf" command (#5161)
  • Track how the caller wishes to continue
  • Handle EXIT_PID events differently than DEAD process events
  • Move breakpoint/recoil handling to wait/cont/step
  • Change many wait functions to return RDebugReasonType
  • Better return checking (from r_debug_reg_sync, r_bp_restore)
  • Optimized register synchronization
  • Improved inferior death detection

Assembler/Disassembler

  • Add basic support for N64 RSP processor.
  • Lot of updates in x86.nz:
    • The sil, dil, spl, and bpl registers are now supported
    • lfence, mfence, sfence , bt, fsincos instructions
    • support syntax for add eax, [ecx] and add ecx, [eba +/- 3]
    • Add support for immediate word for sub
    • nz now generates the correct opcode when using a word as an immediate in the sub instruction with a register + offset as the target
    • Adds support for word register offsets and refactors that portion of the code a little
    • Add offset support to add instruction
  • Initial implementation of asm.assembler to select different assembler plugin than the disasmembly one

DEX

DEX stands for Dalvik Executable format, it's the format used by Android binaires.

  • Show classname for static methods in DEX
  • Fix imports and enhance parsing virtual methods in DEX
  • Better names for virtual Dalvik methods
  • Load virtual methods from Dex files

Tests and Documentation

Bindings

Build

  • Support to build on OSX-powerpc
  • Support to build on Linux-powerpc and mips
  • Build target armel (not armhf), for legacy armv5-like devices

Optimization

  • Huge optimization of some internal structures by @crowell

Usability and Visual mode

  • Greatly improves the display of process listing
  • lea instructions got hotkeys support
  • Visual mode for editing bits Vd1
  • The www/m web interface got a new statusbar and a split view