Codename 0.10.4 - Padron Peppers
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 rangepdaj
andpda=
to disassemble all possible opcodes, byte per byte.drp.
to show the register profile sizeecoj
to list themes in JSON formatpf [size]D
aoe
andaor
to show ESIL and REIL forms of the current opcodeah.
to show hints of the current offsetafv[bsr]
to manipulate args, registers and variables in functionwxs
to write hexpairs, and seek to the enddpc
to select the most recently forked child processdpc*
to show the recently forked process pid.ecc [arg]
shows color palete with a css syntaxpch
for a 2 byte C dump mode@o
is a new modifier to temporary switch to another fd- Adds
core.iorw
ini
- Renaming
afa
,afv
andafe
toafvb
,afvr
, andafvs
respectively - Refactor
pia
/pda
- Adds
anal.vars
variable to toggle variables analysis r2 -I
for pre-scriptingaa
is now equivalentaf@@ 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 handleCDOV
deoptimization - Possibility to add comment for var/args
- Add
anal.vinfun
andanal.anal.vinfunrange
foraav
(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 someop->cycle
foranal.arm64
- Add
MJMP
optype,pxt
command and enhanceanal.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 ofret
instructions, but of instructions which cause the flow of the program to leave the function body, likecall
,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 ondbg->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
anddp*
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
, andbpl
registers are now supported lfence
,mfence
,sfence
,bt
,fsincos
instructions- support syntax for
add eax, [ecx]
andadd ecx, [eba +/- 3]
- Add support for immediate word for
sub
nz
now generates the correct opcode when using a word as an immediate in thesub
instruction with aregister + 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
- The
- 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
- Use kcov and Coveralls.io with unit tests
- Initial radare2-extras tests
r_util
is getting documented and got unit tests
Bindings
- io, core and disasm/asm got proper rlang + python examples:
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