Skip to content

Codename: "no comments"

Compare
Choose a tag to compare
@radare radare released this 18 Apr 16:03
· 18316 commits to master since this release

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 in S*, handy for projects
  • Fix /V* to set flags and not behave like aav
  • Add p=z and bring back the old p=p
  • Add p=[j,c,i,m,s] and enhance p=p
  • Implement di* command
  • Add rahash2 -E xor and support -S - and -S @ to slurp stdin or files
  • Add CC. help in C? and handle CC.[addr] syntax
  • Implement zaF generate zignatures for all functions
  • Implementzoz 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 and ad8 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, see pd|?
  • 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 with ph
  • 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 into i 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

asciicast

Screenshots:

https://i.imgur.com/hYoNtr3.jpg https://i.imgur.com/hYoNtr3.jpg

https://i.imgur.com/DWueWBt.png https://i.imgur.com/DWueWBt.png

Iaito initial release

A Qt and C++ GUI for radare2 reverse engineering framework - https://github.com/hteso/iaito

https://raw.githubusercontent.com/hteso/iaito/master/Screenshots/Screenshot.png
https://i.imgur.com/53E8AWy.jpg

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