Codename: "no comments"
Release 1.4.0
Project: radare2
Codename: no comments
Date: Mon Apr 18 2017
Website: http://radare.org
Tarball: https://github.com/radare/radare2/releases
Builds: http://cloud.rada.re/get/1.4.0
radare2 1.4.0 comes with 12768 new lines of new features, bug fixes and enhancements. Here some of the most important highlights:
Special thanks to:
- Nibble - for rewriting the signature
- Defragger - for the new analysis command aab
- Unlogic - for adding more instructions in the assemblers
- cgvwzq - for completing WASM support
- alvaro - better support of arm/thumb
- mrmacete - static/method and access attributes for objc
- wargio
- h4ng3r -
- xarkes
- dx - last minute contributions
- pancake - for almost everything else
.-------------------------------------------------------------------------------------------------.
| Release 1.4.0 |
|-------------------------------------------------------------------------------------------------|
| name | commits | fix | add | honor | leak | authors |
|--------------|---------|-----|-----|-------|------|---------------------------------------------|
| | 432 | 216 | 79 | 10 | 6 | |
| binr/radare2 | 11 | 8 | 2 | 0 | 1 | pancake skuater alvarofe 0xdecafbad ... |
| binr/radiff2 | 9 | 5 | 0 | 1 | 0 | pancake alvarofe |
| binr/rahash2 | 5 | 1 | 1 | 0 | 0 | pancake wargio alvarofe nibble ... |
| libr/debug | 22 | 17 | 4 | 0 | 0 | pancake rkx1209dev alvarofe 0xdecafbad ... |
| libr/bin | 69 | 44 | 11 | 0 | 1 | pancake alvarofe h4ng3r mrmacete ... |
| libr/core | 199 | 93 | 45 | 8 | 3 | pancake nibble maijin kazarmy ... |
| libr/crypto | 2 | 2 | 0 | 0 | 0 | pancake |
| libr/cons | 13 | 7 | 1 | 0 | 0 | pancake dx 0xdecafbad mr.exodia.tpodt ... |
| libr/anal | 75 | 37 | 14 | 1 | 2 | nibble pancake alvarofe jean.quilbeuf ... |
| libr/asm | 48 | 31 | 8 | 0 | 2 | pancake sven cgvwzq alvarofe ... |
| libr/util | 41 | 25 | 7 | 0 | 0 | pancake alvarofe nibble mr.exodia.tpodt ... |
| libr/egg | 0 | 0 | 0 | 0 | 0 | david.polverari |
| libr/io | 17 | 14 | 1 | 0 | 0 | pancake alvarofe skuater condret ... |
'-------------------------------------------------------------------------------------------------'
Contributors: 432 / 54 = ~ 8
46% - 199 pancake
15% - 66 nibble
8% - 36 alvarofe
3% - 15 maijin
2% - 12 sven
1% - 8 kazarmy
1% - 6 cgvwzq
1% - 6 mrmacete
1% - 6 wargio
1% - 5 xarkes
1% - 5 h4ng3r
1% - 5 mr.exodia.tpodt
0% - 4 rkx1209dev
0% - 4 skuater
0% - 3 dx
0% - 3 srimanta.barua1
0% - 3 itaycohen23
0% - 2 sferrini
0% - 2 defragger
0% - 2 ret2libc
0% - 2 david.polverari
0% - 2 neutral
0% - 2 ryarnyah
0% - 2 xvilka
0% - 2 antide.petit
0% - 2 raul.mikaop.zelda
0% - 2 marcel.bathke
0% - 1 wagner.thomas
0% - 1 ahmedsoliman
0% - 1 code
0% - 1 queueram
0% - 1 0xdecafbad
0% - 1 usrshare
0% - 1 Tzaoh
0% - 1 condret
0% - 1 p4n74
0% - 1 yann-github
0% - 1 uls6502
0% - 1 dzcyberdev
0% - 1 tilsche
0% - 1 pkerling
0% - 1 jean.quilbeuf
0% - 1 guillaume
0% - 1 giovanniteratani+github
0% - 1 Sidy726
0% - 1 adrian.herrera02
0% - 1 ixineeringeverywhere
0% - 1 gonzalezjo
0% - 1 esteve.varela
0% - 1 semarie
0% - 1 manouchehri
0% - 1 m4s4n0bu
0% - 1 levente
0% - 1 ewtoombs
New r2pm packages
- New x86 disassembler based on Zyan
- Add r2com package to comment COM calls
- Add kaitai support
- Upgrade Vala
- Add rust implementation of the new aab command
New commands
- Add tinygraphs (agft)
- New informaton mode - opex (json information about opcode)
- Implement command
zc
- Implement
Pn+
to add text directly from the commandline to the project notes. - Implement
s!
to show near flag names for history offsets - Print out
Sa
inS*
, handy for projects - Fix
/V*
to set flags and not behave like aav - Add
p=z
and bring back the oldp=p
- Add
p=[j,c,i,m,s]
and enhancep=p
- Implement
di*
command - Add
rahash2 -E xor
and support-S -
and-S @
to slurp stdin or files - Add
CC.
help inC?
and handleCC.[addr]
syntax - Implement
zaF
generate zignatures for all functions - Implement
zoz
to load zignatures from gzipped sdb file - Add
ss
(Silent Seek) to seek without write in the seek history - Initial implementation for singlestep command backwards
dsb
- Add
r2 -Q
for faster quits handy for testing - Implement
ad4
andad8
commands to analyze data words. - Add
fd.
command to find flags without delta - Add
dbh-
to remove breakpoint plugin handler
Implement radiff2 -e - Add
P-
command to delete projects (currently with Pd) - Implement
|
and|H
pseudopipes, seepd|?
- Implement
/f
to find the contents of a file inside another
Support alt-q in Visual and Visual Insert modes - Add
$
binding to enable pseudocode in visual graph
Commands change
- Rename z/ to zS. Generate zigns for all fcns
- Replace the mention of r2's
#
command withph
- Rename esil_stack into esil.ram
- Remove slurp command '<'
Config vars
- Fix #7108 - Implement anal.fcnprefix
- Fix #6338 - Add asm.varsum to show variables summary instead of full var list
- Add esil.stack.{addr,size,depth} config variables instead of hardcoded constants
- Fix #7162 - Implement esil.stack.pattern
- Add config var zign.mincc. Rename zign.{min,max} to zign.{minsz,maxsz}
- Zign matching configurable via zign.metrics.{graph,bytes}
- Add hex.header configuration variable
- Add asm.section.sub to the pointer dereference strings in disasm
- Implement asm.section.sub to prefix offsets with section name in disasm
- Added custom tab to sdb json_indent function (#7050)
Various
- Implement reentrant thread locks in RThread and use them in core.cmd()
- Fix escaping of JSON escape in various command
- Honor midflags in more commands
- Display the help for the
%
command (#7283) - Improvements in
aab
- Zignatures, major rewriting
- Integrate
crca
in rahash2 and r2 - Many fixes for Windows and Windows build
- Many fixes intended for Iaito release
- OPEX for more architectures
- Support writing PE32/PE32+ section permissions (#7058)
- Initial implementation of the new testsuite
- Adding
relro
intoi
and putting stuff in semiorder - Fix main detection for several windows binaries
- Various fix for ARM and x86 assemblers
- ESIL can now emulate memory mapped devices
- Add mipsel compiler target
- Do not exit if pledge fails, just return with disabled sandbox
File Formats and Disassemblers
- WebAssembly (WASM) Bin and Disassembler support
- Identify Android Wear DEX binaries
- RAR disassembler and bin plugin moved to radare2-extras
- Initial support for the NRO Nintendo Switch binaries
- Lua 5.3 Assembler/Disassembler, Analyzer and Binary Plugin (#3836) (#7197)
- Initial import of the io.null plugin and doc/siol.md
- SFC/SNES ROM support
- Initial implementation of extracting class info from symbols
- Enhance stripped detection on MACH0 binaries (thanks @dan1t0 for reporting)
- Enhance
V.
to work with firmwares and dumps - Added display of strings in disassembly for PIC binaries (#7112)
Anal
- Add arm-ios-{16,32,64} noreturn function types and enhance tail call analysis
- In addition JMP to imports are considered end of function
- Add iOS arm/thumb noreturn function type definitions
- Implement opex for XCore and Sysz
- Implement opex for m68k
- Implement opex for sparc and remove the
%
from the disasm - Fix #6697 - aav now is aware of thumb addr
Assembler
- Support assembling the BND prefix on x86.nz branch instructions
- Add many more instructions for ARM, X86 and ARM64
Debugger
- Fix #7213 - Retrieve UID on XNU and Linux for RDebugPid
- Listing processes now show the user-id too
- Fix r2 -R on mac (rarun2 issue)
- Improve gdb remote debugging (#7027)
- Fix #7040 - detach debugger on windows at radare2 exit
Disassembly
asm.cmtright
fixed in graph- Fix duplicates in disassembly
Zignatures Refactoring by @nibble
- Rewrite from scratch
- Signature types: Graph based, masked binary patterns, referenced functions
- r_search is used under the hood, honoring search configuration variables
- Anal masks per architecture
- SDB storage backend for zignatures
- zign commands autocompletion
- Initial work on providing radare2-sigs https://github.com/Maijin/radare2-sigs (MASM32)
Screenshots:
https://i.imgur.com/hYoNtr3.jpg
https://i.imgur.com/DWueWBt.png
Iaito initial release
A Qt and C++ GUI for radare2 reverse engineering framework - https://github.com/hteso/iaito
WASM
WebAssembly or wasm is a safe, efficient and portable low-level bytecode format for in-browser client-side scripting (though can be also used in non-web environments). WASM is an open standard currently under development by the W3C. Its initial aim is to support compilation from C and C++, though other source languages such as Rust are also supported.
Current version is 0x1 (https://github.com/WebAssembly/design/blob/d9bff35e1389ba11c98ccee8cde72bb2f30e922c/BinaryEncoding.md). Bin support aims to be more flexible than the spec and current implementations, for example, it allows disordered and repeated sections, and tries to keep parsing after an invalid section is fou