Releases: radareorg/radare2
codename: SleepyNull
radare2-2.7.0 -- SleepyNull
This release brings a lot of improvements in the analysis and visual representation. Things like improved variable detection, types inference, extended jump tables detection are now enabled by default (see afta
command for the variables and types inference). A lot of small fixes to make visual modes even prettier than before: Unicode support across visual modes and strings, bugfixes, and enhancements of the visual panel's mode, extended autocompletion. Big amount of these changes was brought in by our beloved Google Summer of Code students and external contributors.
There is one more notable big change - background tasks, improving the responsiveness of radare2 in visual mode and from r2pipe.
File formats
- Fix ELF issue with null SHT entries
Architectures
- Fixed ARM instruction filtering
- Major fixes in SH analysis and ESIL uplifting
- Fixes in PPC analysis and ESIL uplifting
- Add support for PIC Midrange & Enhanced Midrange
Analysis
- Improved arguments detection
- Improved register-based arguments and variables analysis
- Initial support of C union types
- Add op.ireg/scale to ARM and apply that in type link
- Use RAnalop.dst/src across different architectures for immediates' value analysis
- Initial support for type inference across function calls
- Add double pointer dereference analysis
- Initial work on type inference based on instruction access pattern
Visual mode
- Support for Unicode strings
- Support for graphs in panels mode
- '-' and '|' keys for a horizontal and vertical split in panels mode
- Improvements and fixes of graphs reflow and rendering
- Fold cases of switch cases to the same address
- V!d <-> V!D : for consistency with visual mode (Vd)
- Add backspace as an alias for q in Vb
- It's now possible to display the real names of flag, instead of an r2-mangled one
- Improve vv visual function browser
- Improve vv: vvR, vvd and colorize title
- Add the ability to select a column with tab to scroll with jk in disasm
- Handle JK in vv, add _hud
- Visual function browser - enter seeks to the function
- In visual panels make JK scroll more instead of change frame selection
Graphs
- Add colorized shortcuts to (mini)graph
- Improve jum-tables edge positioning
- Merge edges with the same origin/destination
Configuration changes
- Removed
anal.split
andanal.bb.split
- Removed unused
cmd.graph
- Added
anal.endsize
- Added
asm.imm.str
to autodetect strings as immediates - Added
asm.xrefs.fold
to fold big amount of references - Added
asm.flags.real
to show real (unescaped) flag names - Substitute
asm.lines
withasm.lines.bb
bin.maxuniblocks
- max number of Unicode blocks that a UTF string can consist of- Bring back
io.pava
(EXPERIMENTAL)
Debug
- Various fixes and improvements in remote WinDbg support
- Implement
dpt
for windbg plugin - Fix F1-F9 debugging keys
- Implement named breakpoints with support for expressions
New and changed commands
!!!:
for registering autocompletion logic- Improve
aod
:aod*
is nowaoda
,aod.
isaod
- Support for using variable name in
tp
- Implement
$r{}
to access register values by name - Added -ee to rabin2 -g
- Make
dm.
output likedm
and adddmq.
- Implement
?d*
to list all opcode descriptions - Implement
{flag}
to get flag size - Add
ahr
command to set hint for function return values - Implement
tpx
command to accept sequence of bytes - Honor
@x
inpf
- Renamed command
agt
toabt
- Support
0xff..
syntax for RNum - Implement
rax2
,rahash2
,r2pm
, … as r2 commands - Implement
omo
andoq.
commands - Implement
omq.
- Implement
ompd
to depriorize a map - Implement
dbi addr
anddbi.
- Added
agA
global graph andagR
global graph iSSj
: json output foriSS
- Add
afls
to sort function list afls
->afl+
, sort afls help- Add
&t
command - Added json version of
dp*
- Added json list to debug plugin list
dL
- Extend output of
ao
to show ireg, scale, ... - Show cycles, failcycles and delay in
ao
, as it was inaoj
- Renamed
?d
intoaod
- Moved r2 segment cmds from
iS*
toiSS*
- Use
segment.
prefix for segment flags in set mode - Moved segments from
rabin2 -S
torabin2 -SS
- Implement rafind2 recursive search ability
- Make equiv flags for
rabin2 -g
more future-proof - Added
wordhl
andlinehl
color theme options to set highlight color
Codename: Salty peas
** This is a quick release for the pass-the-salt conference to make @xarkes and Cutter happy. **
Expect 2.7.0 release with proper release notes, testing and bug fixes in a week.
2.6.0
Release 2.6.0 - codename Rome
Tarballs
Highlights
- new iOS dyld cache parser
- mergelib is now
- Rename a lot of asm. variables
- Implement dmh* and dmhj
- Autocomplete for 's+ '
- Add support for the Zig programming language
- Initial import of the flag tags registry
- Add ?e? help and Implement '?ep' to print PIE charts
- pdf works as expected now :)
- arm asm.varsub supports asm.pseudo for fp
- Initial implementation of flag tags
- Implement iO as a frontend for !rabin2 -O
- Allow asm.highlight color change thru ec line_highlight
- More uniform xref type output , single, global xrefs API (Thanks to Riccardo Schirone,pancake,rene)
- Add sepia theme
- New command: pdRj
- Add pxr in visual mode (VP)
- Implemented rax2 -i functionality, to mimic xxd -i
- Created signing script and added to build.sh
- Ragg2-cc is now completely erased from r2 (merged into ragg2)
- Add support for more jump tables
- Honor RAnalHints and optimize aac
- Improve leahints to handle UJMP references
- Implement wtff to dump with offset in name
- Make /m create flags
- jmptbl detection now tries to identify table size and default case
- Highlight seek line using different background color
- Better graph box colors for the bold theme
- Fix agv color boxes for some themes
- Initial work on supporting pauseable CoreTasks
- Add asm.meta, and make magic when disabled. Fix sys/rebuild.sh cs
- Add initial temp breakpoint support (#9845)
- Add float and double to the default types
- Initial work to support entropy graphs in rahash2 via r2
- Implement 'aaf' analyze all functions. using afr and hasnext
- Improve leahints
- Add Input regs and oneliner @W and @r outputs in aea*
- Vr now toggles asm.*hints
- Reimplement VbC in C and drop it from Vcjr
- Add flag at both offset and value for /V
- Fix aos by enlarging the blocksize
- Fix use after free and oobread in pf command
Graphs
- Added import graph; updated ag? help
- Initial support for agd output formats
- Added data graph (aga) with all output formats
- Add jpg, svg, pdf.... extensions for 'w' graph output format
- Support for every output format for callgraph (agc and agC)
- Support every output format for the bb graph
- switch/case edges are now also added to graph view via afbe
Types
- Refactored and optimized afta command
- Refactored and improved afv* commands
- Manage types enum more properly
- Array of struct now works with
ts
- Implement tss to show struct size
- Implement ts* command
Build
- Bring back libr.* targets in libr even without BUILD_MERGED
- Fix static build
- Minor improvements for the makefiles
- Fixes for the ios-sdk build
- Meson: remove duplicated io_plugins entries
- Meson: make git executable optional
radare2-2.5.0 - eknad
Codename - eknad
Binaries: http://radare.mikelloc.com/get/2.5.0/
2.5.0
CodeName eknad
This release brought many small improvements to the existing commands and features, it improved different platforms support and cross-platform compilation. Moreover, integration with Cutter was also greatly enhanced. Thanks to new contributors visual modes (panels in particular) were polished to shine.
New Features
IO
There is an important addition in IO land: added gprobe plugin for communication with various parts from computer displays, based on Genesis/STMicro/MegaChips chipsets.
RopChain
Rop gadgets are (finally) stored in sdb
, meaning that the search process will be much faster. And since they are now only searched once, and then stored, only the first search will take some time. The following ones should be instant!
Analysis
Radare2 gives a lot of power to the user to perforn manual analysis, hence why we're constanstly improving and adding features in this area. Like the new /g
command, to find all possible paths from A to B inside a function. Moreover for the capstone analysis modules granularity assumptions were fixed to be handled properly.
GUI
Visual panels are now capable of using utf8 characters, so they are looking prettier. Especially with the color sheme support!
Misc and usability
As usual, more and more commands are now supporting the j
suffix, to output JSON. We removed some dead code, memleaks, added some fixes, … you know, the usual drill. The ragg2-cc and ragg2 tools merged into a single binary. This should remove a lot of confusion and reduce the number of questions asked on our IRC chan :D. Since radare2 is a complex software, we're adding more and more autocompletion support in it! Please do open bug if you feel that we missed some subcommands.
Build system
You can now build radare2 with the meson build system. This should improve the build time.
Code cleaning
We moved x86.udis
to radare2-extra, because we're using capstone as a main disassembler. You can of course still use UDIS if you prefer,
by installing it with r2pm
: r2pm -ci udis86
File format handling
Radare2 is now able to parse RTTI for both GCC and MSVC
New commands
- Initial implementation of
cmd.pdc
to select pseudo-decompiler - Added
dsuo
commad to step until opcode type - Added support for extended regex in asm search
- Implement dietline history on mount-shell
- Improve
ar=
command to accept a list of space/comma separated list of registers to show - Added version info for shared libs
- Initial implementation of RFShell tab autocompletion
- Added
avraj
output for gcc - Implement
pdp
to print pointer chains (rop chains) - Implement
aos
to show the size of N instructions - Added json output for search commands
/mj
,/vj
and/Vj
- Implement
pdsb
,/gg
to graphpath following calls, and honor anal.depth and search.count - Added breakpoints for mips64
- Implement
r2k.wp
and fixr2k.io
- Improve r2k-linux
\?
commands and revertio.undo
patch - Implement
cu[1248]
command - util/num: add support for ROR and ROL
asm.emu.str
: include\t
,\r
and\n
as string chars- Implement
afxj
command - Just move cursor when in visual mode and you seek to a new offset that is in the same page
- add
asm.emu.strflag
: control showing of flag for asm.emu string - Added file autocompletion after
>
- Make
s..
push in the undo history - Implement
px[WQ]q
and honorasm.offset
- Added
tt
command to show typedefs dm
/dmm
code cleanup and fixdmj
json output- Ragg2-cc -> Ragg2 merge (#9658)
- Update SPARC
asm.describe
- Update PowerPC
asm.describe
- io: Add DDC2Bi3 protocol wrapper to gprobe plugin; The DDC2Bi3 wrapper is used for both DDC2Bi3 and I2C communication channels, for example HDMI DDC or I2C Host Interface.
asm.emu.strinvert
: control color inversion of asm.emu strings- Shortened
asm.emu.strinvert
toasm.emu.strinv
and its desc - Implement radiff2 -u and radiff2 -x
- Fixes loading Core files from Virtualbox (> 2GB ELF64)
- Transition to use RBuffer.io in RBin
- Make
P
just show the list of projects - Fix temporary seek when using @b @A @e or any other local modifier that do not work on their own temporary block
- Improve
aac
performance on files with class info - Make
av
,avr
andavra
breakable by the user - In visual disassembly, add a shortcut (
;[n]
) on jump hints - Add
?a
command in to show ASCII table
2.4.0: Chussy Chaber
Date: 2018-03-05
Codename: Chusy Chabber
Downloads: https://radare.mikelloc.com/get/2.4.0/
Build
- Find _main in MSVC-compiled MZ binaries
- Meson: Added sdb building/installation rules
- Install Headers and
.pc
Files with Meson - Use meson pkgconfig for .pc files
- Initial
sys/purge.sh
distro to remove r2 distro packages - Fix MSVC dynamic linking
- Upgrade to latest acr to honor AWK env var
- Added v810 and tms320 to meson
- Added
x86_udis
to meson
Debugger/IO
- Use io.pcache instead of io.cache, improve speed
- Enable
io.cache
for afta too under aaaa - Added asm.bbinfo for debugging op_pos
- Implemented wao for arm64
- Support RIOBind on RBuffer for fcpy_at
Assembly
- Added an alternative and colored view for varsum
- Improvements in bin.strfilter and asm.emu
- Hexagon QDSP6 v6 support - LGPLv3
Bin API
- More code cleanup in RBin api for file and obj
- Refactor
RBin
for file and obj, mach0 headers to stdout izz/izzj
now works with -n without using rabin2- Make
idpi
independent of bin loading
New Commands/Eval
- Implemented
@@iS
RBin.Section foreach operator - Implemented
@%
suffix operator - Refactored asm.cmt* and scr.*
- Implemented
@B
: to temporary seek to the Nth BB - Implemented cp. and fix
r_sys_copy
on mac/ios - Fix wao ret* for arm64
- Added command to edit ~/.radare2rc
- Improveed aae to support cstr and pstr like asm.emu.str
- Implemented support for cstr and pstr for asm.emu.str in disasm
- Added
asm.emu.stroff
: always show offset when printing asm.emu string - Initial support for
dbg.symstore
- Change all asm.emu* to asm.emu.*
Better support for AVR:
- Implemented opcode masking for improved zignatures
- Added missing opcode info (val, ptr)
- added pseudo code for avr instructions movw and st*
Better graphs and visual panel:
- VC rotates scr.color instead of toggling
- Implement
axgj
- Added
<
command and make dietline reuse rcons.readChar - Improve RCons.readPush and add .readFlush() to make
V*
happy - Implemented r_cons_readpush() new api and fix the
V...
automation e graph.format=?
and missing help for@@iS
- Intial implementation of function call argument display
- Experimental Cons_INVERT in strings in disasm
- Added
VbC
to browse comments - Added
VbF
to browse functions - Implement
VV)
- rotate asm.emu.str in visual graph - Added
)
key in visual to toggle asm.emu.str - Honor scr.color in
Vbf
- Added Visual browser for process threads
Codename: DirtyHarry
Builds: http://radare.mikelloc.com/get/2.3.0/
Changelog:
Release 2.3.0 - use latest acr 1.4
Analysis:
- Better use of search.in and anal.in and zoom.in - sivaramaa
- Initial work on CPU specific registers
Bin files:
- Speedup the loading of version info for ELF - pancake
- Add r2 -X as an alias for -e bin.usextr=false
- Implement iE., iEj., is. and isj. implementation - Thomas Bailleux
- Add search.in=bin.sections and @@@ sections
- Add warning for NSO files requiring decompression
Commands:
- New command cV command to compare values
- Fix wao nocj and so? and rename swap-jcmp to recj
Better support for AVR:
- AVR default CPU ATmega8 to avoid regressions
- Expose all the AVR cpu in e asm.cpu
- Added warning msg for maxbbsz - sivaramaa
- Windows builds now inclue avr and gb plugins
Better Disasm:
- Implemented the new pdR command that doesnt requires previous analaysis and just follow non-conditional jumps
- Substitute jmp, call, branch target based on analop (#9198)
- Filter strings better in disasm with bin.strpurge - kazarmy
- sh: fix disassembly of branch opcodes (#9238)
- Added ppc Paired single (#9172)
- Improved 8051 disassembler and analyzer - Adrian Studer
- Implement asm.strip to hide instructions matching type - pancake
- Fix anal.m68k plugin name and handle LINK, UNLK instructions properly
- Initial pseudo and esil for MMX instructions - pancake
Compatibility breaks/improvements:
- RCoreFile is starting to be deprecated
- Added dir.prefix (can be changed at runtime), no more compile-time prefix problems!
- r_str_chop/trim/clean/.. apis unified - api break - pancake
- Output of rabin2 (and i command) is more compact, so if you are parsing the output of that tool instead of using the JSON format, it may break things in your side.
- Build system improved (fixes static build and properly generates the archive file, and improved pkg-config files, iOS11 sdk)- thanks whitequark!
- First step in removing fcn->refs/xrefs - defragger
IO layer - pancake
- Implement of and minor fixes for o?
- Handle file:// uri as for io.default
- Implement obq and ob*
- Add on+ and ons+ support in cmd_open.c
- Where in time is r_io_open_buffer?
Better graphs: - pancake
- Render color themes properly
- Print edges before nodes again and add V^ key like VV^
- Add VV= to rotate graph.layout, and use less in VV?
- Implement minigraph disasm scroll with JK keys
- Implement axtg and bring back the VV<> (xrefs, call)-graph
- Better graphs, bringback t/f, add ^to seek to the begining and updated help
- Reuse Vd in VVd, add e,E keys to change graph.edges in VV
Other:
- x86 assembler has been improved by emvivre (adding fpu, hypervisor and priviledged instructions) and unlogic for fixing and extending some instructions.
- Honor zoom.in for all p= subcommands - sivaramaa
- Adds wide CRC support (crc8, crc16, crc32, crc64
- Initial blind implementation of hwbp for native Linux ARM and ARM64
- Visual browser handles imports and symbols
r2-2.2.0 Tió De Nadal
The tió have pooped a new release and it comes with snow!!!
Enjoy!
Farm builds at https://radare.mikelloc.com/
Build
- Run fix-perms at the end of symstall to make umask in vagrant happy
- Add Vagrantfile for radare2 + ArchLinux
- Fix almost all warnings from the msvc build
- Fix ASAN build for High Sierra
- Added dynamic linking build for Appveyor
Debugger/IO
- Implement io.cache.auto to cache all reads for slow io backends
Assembly
- Add pdJ for formatted JSON disassembly
- Assemble REX.W prefix for 64-bit immediate mov to memory
- add sp to mips profile
- Implement asm.emustack
New Commands/Eval
- Add anal.rnr option
- Implemented anal.in and optimized lots of anal command
- Implemented @.. for temporary partial address seeks
- Initial import of the Yara's .NET parser
- Initial import of apia, the api analysis tool for r2
- Add disasm filtered/varsub/relsub in aoj
- Honor s:key in woD
- Handle pds in VO
- Add some missing mfc
- Implement fdw command
- Implement afd
- Better pseudo for LEA
- Handle arm thumb/thumb2 pc-relative in relsub
- Honor ^C in aar and aac
- Add /O command
- Implement dcu. command as an alias for dcu 8126
- Added new command afi. to just get the function name
- Initial import of the /f webui
- Honor asm.flags in pds
- Improve the ?Vj and add ?Vc
- Integration of the Serpent cipher (ECB)
Codename "onhold"
Release 2.1.0
Project: radare2
Codename: onhold
Date: Sat Nov 25 2017 12:26:04 GMT+0100 (CET)
Website: http://radare.org
Tarball: https://github.com/radare/radare2/releases
Builds: http://radare.mikelloc.com/get/2.1.0
radare2 2.1.0 comes with -8679 new lines of new features, bug fixes and enhancements. Here some of the most important highlights:
This release brings better support for Windows debugging, radare2 filesystem, file format improvements and massive speedup of the interface. Moreover, you can find better working search commands and various bug fixes.
File Formats
- Enhancement of DOS file format handling
- Add support for Phar Lap TNT PL format
- Support for the NSO Nintendo Switch static binaries
- Fix detection of overlay in PE files (#8812)
- Detect lang=go in ELF binaries
- Support ELF mips relocs with PLT instead of RELA
- Autodetect and mount ISO9660 partitions
- automount and handle hfs from RBin
- Fix aav for fuzzed binaries with huge invalid sections
- Parse constructors and destructors in MACH0 format and adjust cbin output
- Rename mo to mi, and implement mo, o. to open fs files or data as malloc://
Build
- Build radare2 for all iOS archs and the simulator
- Major enhancements for the Meson scripts
Debugger/IO
- Enable GDB for Windows (#8877)
- Improvements of win32 native debugger
- Improvements of WineDBG interop
Assembly
- Temp fix for #8788 - escape non-ascii chars in ESIL strings
- Add the ability to show imm values as string
New Commands/Eval
- scr.fps
- Initial import of asm.shortcut to change position of the hint
- Initial implementation of the 'ff' command to check the distance between flags
- afCl to get an aprox count of loops in a function
- Add aflc command to count functions
- ffs command
- /s syscall search command
- Add o-! command
- Implement the 'es' command to list eval spaces and keys
- cfg.escbslash → str.escbslash
- add “usrcmt”
- added oa and oa* command
- Implement ahh -> anal hint highlight
- anal.searchstringrefs -> anal.refstr
- Implement 'r2pm -i all' as requested
- Support ternary values in rax2
- Implemented Cd-
- Implement 'r2pm suicide' to self remove r2 from system and home
- Fix woO command, which is wopO now
- R_BETWEEN
- Initial support for structure offsets
- simple project saving
- Implement /M and enhance r_fs to autodetect filesystems
- Implement pj, pj. and pj.. commands
- Add new 'rh' command to show the filesize in human format
- ie/iee
- Flags are now named entry0, entry1.init, entry2.fini
- Add anal.armthumb to make an specific aae test pass
- Cs8: add utf8 string
- Implement /me
- Implement ELF constructors/destructors parsing
- Implement bin.b64str to automatically decode base64 strings
- mdmp is in the core
- V\ and Vb
- Implement /ca
- Implement /c/a and make /c/ work properly
- cfg.escbslash: Escape the backslash (currently Cs output only)
- Implement the dor command to set a custom rarun2 profile
- Enhance the fs.r2 with /version and proper cat/read ops
- Initial support for ec usrcmt -> user comments have different color
- Add cfg.escbslash: Escape the backslash (currently Cs output only) (#8855)
- PDB_SERVER is now RABIN2_PDBSERVER
- List mountpoints in path via md
- Implement anal hints for htons immbase
- Honor supported bits mask in V&
- Fix #8870 - sn/sp accepts an arg to override scr.nkey
- Fix #8778 - Honor escaping ':' in ~ and make it smarter to have better grepping'
- Bring back o+
- ob doenst requires binobj id anymore, just the fd is enough
- Bring back V& with anal hints
- op->oL, o fd -> op
- Fix #7120 - Add read/write/exec /r subcommands
- Add RAnalOp.direction and tweak ao for it
- Use empty file.path in project rc to indicate new style rc with on commands. Make -p imply -- to further enable this.
- Added some output to aab and improved the false positives a bit
- added cfg.debug befroe all those noisy eprintfs
- Added json feature for oL listing (#8781)
- Cs..: show string + info about it at current address (#8689)
Fixes:
r2-2.0 aka "shiny-nibbles"
Release 2.0.0
Project: radare2
Codename: shiny-nibbles
Date: Mon Oct 09 2017 17:17:36 GMT+0200 (CEST)
Website: http://radare.org
Tarball: https://github.com/radare/radare2/releases
Builds: http://cloud.rada.re/get/2.0.0
radare2 2.0.0 comes with 31574
new lines of new features, bug fixes and enhancements. Here some of the most important highlights:
Numbers:
- commits: 1042
- fix: 571
- crash: 30
- new: 18
- add: 197
- anal: 44
- leak: 50
- esil: 16
- debug: 30
- type: 18
- oob: 0
- honor: 20
- update: 31
- clean: 13
- import: 3
- endian: 6
- indent: 7
- command: 68
- enhance: 10
- diff:
- add: 54605
- del: 23031
- diff: 31574
.----------------------------------------------------------------------------------------------------------.
| Release 2.0.0 |
|----------------------------------------------------------------------------------------------------------|
| name | commits | fix | add | honor | leak | authors |
|--------------|---------|-----|-----|-------|------|------------------------------------------------------|
| | 1042 | 571 | 197 | 20 | 50 | |
| binr/radare2 | 44 | 19 | 12 | 1 | 2 | pancake srimanta.barua1 condr3t defragger ... |
| binr/rabin2 | 4 | 3 | 2 | 0 | 0 | condr3t pancake dark.cancerbero maskray ... |
| binr/radiff2 | 8 | 5 | 0 | 0 | 2 | pancake maskray condr3t xarkes ... |
| binr/rahash2 | 2 | 2 | 0 | 0 | 0 | xarkes pancake alvarofe |
| libr/debug | 90 | 53 | 22 | 0 | 7 | pancake srimanta.barua1 xarkes rkx1209dev ... |
| libr/bin | 114 | 67 | 18 | 3 | 12 | pancake alvarofe xvilka maskray ... |
| libr/core | 510 | 274 | 91 | 17 | 28 | pancake maskray alvarofe condr3t ... |
| libr/crypto | 0 | 0 | 0 | 0 | 0 | |
| libr/cons | 26 | 19 | 3 | 2 | 8 | pancake maskray p4n74 srimanta.barua1 ... |
| libr/anal | 86 | 48 | 18 | 0 | 10 | pancake maskray alvarofe xvilka ... |
| libr/asm | 75 | 47 | 19 | 0 | 6 | sven pancake maskray wargio ... |
| libr/util | 118 | 67 | 16 | 4 | 8 | pancake maskray kazarmy xarkes ... |
| libr/egg | 12 | 11 | 2 | 0 | 3 | pancake josediazfer josediazplay wargio ... |
| libr/io | 169 | 101 | 34 | 2 | 8 | pancake alvarofe condr3t maskray ... |
'----------------------------------------------------------------------------------------------------------'
Contributors: 1042 / 69 = ~ 15.101449275362318
33% - 348 pancake
13% - 138 maskray
11% - 124 alvarofe
4% - 48 condr3t
4% - 46 srimanta.barua1
3% - 35 xarkes
3% - 33 xvilka
2% - 31 kazarmy
2% - 24 sven
1% - 20 wargio
1% - 20 maijin
1% - 18 defragger
1% - 18 cutlassc91
1% - 13 antide.petit
1% - 13 rkx1209dev
1% - 12 skuater
0% - 9 guillaume
0% - 8 h4ng3r
0% - 8 ora8
0% - 6 mscherer
0% - 4 karlis3p70l1ij
0% - 4 emacsray
0% - 3 arkamar
0% - 3 julien.voisin
0% - 2 p4n74
0% - 2 lenerd
0% - 2 sajjad
0% - 2 jpenalbae
0% - 2 dark.cancerbero
0% - 2 soez
0% - 2 cgvwzq
0% - 2 mrmacete
0% - 2 josediazplay
0% - 2 asanchez
0% - 2 0xTowel
0% - 2 kc8apf
0% - 2 richardmaciel
0% - 1 dowdyph0
0% - 1 nfontenot27
0% - 1 zhangzhuo
0% - 1 tantecky
0% - 1 amatus
0% - 1 techvoltage
0% - 1 frefreak.zxy
0% - 1 tryger
0% - 1 zadlg
0% - 1 willi.ballenthin
0% - 1 javierptd
0% - 1 burnham.jonathan
0% - 1 xiyou.wangcong
0% - 1 osalvador.vilardaga
0% - 1 queenp
0% - 1 a.kornitzer
0% - 1 torsunov
0% - 1 ben.l.gardiner
0% - 1 misc
0% - 1 dennis+git_swoops
0% - 1 mgregorczuk0
0% - 1 j123123
0% - 1 kijmail
0% - 1 Coder-256
0% - 1 mr.exodia.tpodt
0% - 1 itaycohen23
0% - 1 beren.minor+git
0% - 1 daan
0% - 1 mytbk920423
0% - 1 crd
0% - 1 toshi.piazza
This release became our pain in some parts of the body and a huge win. Thanks to condret, alvaro and maskray the long term refactoring on top of the simple IO library (siol) is now merged, tested and everything is rewritten on top of this layer. This simplified internal representation of many operations, proving stacked, multi-layered IO for any part of radare2.
New commands
- A lot of commands were merged together
- Some commands have been added to ease the manipulation of ascii-graphs
- Regularely used analysis macro have been moved into commands to make them easier to use
- Add new command
aesb
, to step back with ESIL (#8052) - Enhance ax, axk lists and axq is the old ax
- Implement rafind2 -i to identify binaries
New Fileformats/io plugins
- ar://
- lib://
- winedbg://
New config options
- Add io.map and remove file and io.maps.range search.in options
- Add asm.asciidot and remove asm.strenc
- io.maps is now by default instead of search.in=file
- Add
asm.addrbytes
eval config var to make one vaddr unit use more than 1 bytes (#8121) - Bring back
dbg.trace.inrange
indtc
command - Remove
search.count
in favor ofsearch.maxhits
in/A
,/R
, and everywhere else
Dependencies updates
- Update spp again for windows this time
- Use libtool instead of ranlib for iOS
- Update sdb
- Upgrade zlib from 1.2.8 to 1.2.11
Improved interface
- Fix overlap in graphs
- Added curved corners in the ASCII graph (e scr.utf8.curvy=true)
- Add some options to the search command (
/
), and improve its speed drastically in certain cases r2 -e cfg.newtab=1
to enable the experimental new command completion- Show hidden metadata as "hidden" (#8525)
Improved disassembly
- Pseudo-decompiler for AVR and SH4
- Add instruction descriptions from Intel Instruction Set Reference Volume 2 (#8209)
Analysis
- Reduce the number of false positive strings
- Add more analisys heuristics
- Do not let pdf work on functions with > 4KB of unrelated code
- Enhance
aav
for MIPS,af@@aav*
may be added at some point - Initial ESIL support for V850
- Avoid dupes in
anal.jmptbl
for analysis, speedup asm.strenc
guess whether string isutf32le
,utf16le
,utf8
, etc
Fileformat supports
- Add IA-64 binary detection (#8645)
- Add HP-UX binary detection (#8644)
- Detect kotlin in java classes
- Initial optimization for DEX
- Big improvements for MDMP plugin (
r2pm -i mdmp
) - Added resources extraction to rabin2 (#7912)
- Honor bin.dbginfo for all file formats
- Add DEX38 support
- Add LC_CODE_SIGNATURE for
rabin2 -H
on mach0 bins - Add canary detection on OpenBSD binaries
ELF
- Handle .bss section in ELF
- Add V850 recognition
Bindings
- Add more extern "C" to make C++ users happy
- Even more commands have a
json
output now (just appendj
to them.) - Expose r2 environment variables to internal r2pipe calls
- Add
free
to RLibStruct & RLibPlugin. (#7991) - Updated lang-python and it allows to create RCore, RAsm and RAnal plugins
Misc cool stuff
- Add zsh completion for every r2 tool!
- Add support for architectures that are using 9bit bytes middle endian (like CLemenCy)
- Add support for IDA FLIRT signatures v10 (IDA 6.8 and higher)
- Detect
main()
for D language - Added autoload of zignatures from zigns folder
- Replace radiff2 -s with Eugene W. Myers' O(ND) diff algorithm
- Add
radiff2 -ss
for Levenshtein edit distance - More documentation
- Less crashes, less memory consumed
- Various fixes regarding projects (removing functions after loading a project is now working)
- As usual, new fortunes
Debugger
- Add heap jemalloc analysis
- Add timeless debugger (Record and Replay) for native debug, gdb:// and ESIL emulation !!!
- Add commands to manage recorded trace sessions
- Add initial support for hw watchpoint (#8132)
- Better LLDB support
- Windows: PDB Autoloading when debugging
- Support spawning processes with spaces in their path
- Add the
null
debugger plugin - added
=!detach
to detatch de debuggee
GDB
- Reading xml target description and parsing into r2 reg profile (#8124)
- Added reading of executed file name to gdbserver
- Add env var to control gdb packet size
- Added automatic loading of symbols from local file (#8006)
- Added debugging of protocol messages in gdbserver (#7931)
Fixes:
radare2-1.6 aka Digital Lettuce
This release comes with major improvements in GDB Client/Server, Windows support, timeless debugger and many stability bugfixes. Also adds support for PPC VLE, Ethereum Virtual Machine, workaround to properly configure the disassembler on PlayStation2 ELFs and added support for the Hexagon CPU.
Strings displayed in the disassembly are now more readable and support multiple encodings, utf32 has been added, as well as latin1, utf8 and asciidot. So rabin2 -z will catch wide32 strings too!
Thanks to the GSoC guys we get:
- Windows: many stability fixes, msvc builds automated on each commit, installed done, a new command allows to grab all PDB from all linked libraries at runtime of any process and load the symbols into the disassembly.
- GDBserver support works, you can use r2 as a gdbserver, but also, many bugs has been fixed to support remote gdb-avr, arm and arm64, so you can now debug the Riscure crackmes without depending on GDB, and also natively debug Android apps thru the gdbserver protocol.
- New mechanisms for storing the debugger backstep snapshots is making it backstep much faster by using checksumming and storing diffing changesets instead of full dumps for each step. Better integration with the tracing commands of r2.
New commands
- Replaced
aea
withaea*
- Replaced
dh
fordL
(#7682) - Renewed
dsb
command for new session format (#7651) - Implemented
aab*
and fixedaab
(#7688) - Implemented
psW
cmd to print 32 bits wide strings - Implemented
axq
to list refs in quiet/human-readable format - Implemented
/ra
and fixed/re
without arguments to find ALL references - Implemented
|T
to pipe to thescr.tts
engine - Implemented
s==
to show flag names, not just offsets - Implemented
ecH
for instruction highlighting support (#7741) - Implemented
!-
and!-*
commands to clear command history - Implemented
sj
to retrive seek history in json format (#7663) - Implemented
dtst
anddtsf
commands for save and restore sessions. (#7880) - Implemented
drtj
support (#7866) - Implemented
dsuir
command for regex match (#7675) - Implemented
~str~?
support and fixed #7373 bug (#7669) - Implemented
dbta
to show an ascii-art representation of the stack backtrace
0xffffffffffffffff STACK END ^^^
0x0000000000000000 STACK POINTER: rsp
.------------------------.
0x0000000000000000 | rsp [frame 0] | ; size 0
| ... |
0x0000000000000000 | rbp 0x0000000000000000 | ; return address
)------------------------(
| ... |
`------------------------'
0xffffffffffffffff STACK BOTTOM
New config variables
- Implemented
asm.minvalsub
variable - Implemented
aerR
andcmd.esil.ioer
- Implemented
cmd.esil.todo
Architectures
- Hack for PS2 binaries (#7636)
- Initial support for the Hexagon CPU
- Added support for the Ethereum Virtual Machine
- Fill half-full-relro detection on ELF binaries (checksec)
- Fixed and refactor imul for x86.nz (#7832)
- Rewritten 8051 disassembler
- PowerPC VLE support with capstone (#7899)
Analysis
/rc
find refs (on arm64 for now) like 10 times faster than using capstone- Fixed segmentation fault on
bin_mach0
(#7846) - Honored cpu on
anal_mips_cs
and add/fix some mips64 instruction (#7643) - Added support for the Ethereum Virtual Machine
- PowerPC VLE support with capstone (#7899)
Strings
asm.strenc
asciidot (#7898)asm.strenc
utf8, guess (#7849)asm.strenc
latin1 (#7857)- Use
r_str_escape
for ASCII anal addr strings (#7834) - Fixed some string formats for 32bits
- Implemented utf32
wide32
strings forrabin2 -z
- Implemented
u
prefix to wide UTF-16 strings (#7760)
Debugger
- Implemented GDB/backstep
dm
is more consistent withdmm
- Implemented support for
gdb://host:port/pid
(#7759) - Added
gdbr_{attach,detach,detach_pid,kill_pid}
to gdbclient. (#7759) - Implemented
qRcmd
to io_gdb - Implemented breakpoints when using
f2
pid/tid specific continue with signal for gdb (#7848) - Optimized gdbserver mem read, and added gdbserver mem write
- Implemented gdb reg caching
- Corrected the attach pid behaviour
- Use
task_swap_exception_ports
(instead of get then set) - Add new debugger stop reason for user-initiated breaks
- Stop the inferior when
dw
is interrupted (#7744) - Stop the inferior after attaching
- Fixed memleak and invalid format string for gdb
- WIP Serial fix for io_gdb. (#7808)
- Support for dm commands in gdb (#7770)
- Support to flush breakpoint command output on every hit
- Speed up gdb considerably if gdbserver supports no-ack mode (#7763)
- Support to load bin-format specific scripts from home
- Corrected gdbserver register-setting behaviour
- Fixed gdb client packet size (#7703)
Features
- Support towards a visual ESIL debugger
VpOd
- Support underscores in hex numbers
- Added
idp
command to load functions from pdb file (#7891) ~?
is more consistent in different command constructions- Fixed the
wtf!
command (better va/pa support and avoid infinite loops) - Fixed Help for
|?
like?|?
(#7830) - Fixed ouput of
aerR
/aer*
(#7870) - Added format parsing for
x\
command (#7839) - Implemented visual entropy browser with
V||
and thenh
orl
keys to move - Reduced flashes in
V||
akacmd.cprompt
- Enhanced
icj
,ic
andid
in Dex (#7821) - Enhanced the Java assembler (#7706)
- new radare2-pro theme for the graphviz
- Enhanced v modifier to rapatch similar to wv (#7806)
- Implemented
alt+backspace
and modularize^w
to useunix_word_rubout
(#7794) - Optimized
RFlag.get_at
, enhancingfd
and honorflagspaces
- Implemented
/rc
to check for call refs, optimized for arm64 - Implemented plain checkpoint system (#7782)
- Added reading of memory maps from /proc/pid/maps
- Added support for SVN sources in r2pm
- Added support for directories in include
- Added flow2 to all color themes
- Added missing
socket/serial.c
- Added serial support in RSocket for
gdb:///dev/ttyUSB0:9600
- Implemented the support of
ag
command work withloc
functions (#7673) - Enhanced
radiff2 -D
with context bytes in disasm and honor-q
for colors - Implemented
radiff2 -G
to run a custom command - Implemented
Vb
to rundbs
likekey.f2
for consistency
Builds
- Set windows meson default to static libraries (#7840)
- Reorganized meson version grabbing (#7828)
- More support for static builds (#7822)
- Added msvc 32 bits to appveyor
- Added msvc x64 version (#7814)
- Fixed msvc to compile with
/MT
to include redistributables into binaries - Fixed Travis linker error (#7783)
- Fixed whitespaces in meson build file by removing them
- Ignored meson scripts (#7751)
- Added VS2017 project generation
- Appveyor windows-installer integration
- Fixed ios-sdk builds
Contributors
Contributors: 310 / 42 = ~ 7.380952380952381
-------------
37% - 117 pancake
7% - 24 cutlassc91
7% - 22 srimanta.barua1
5% - 17 xarkes
4% - 13 nibble
3% - 12 kazarmy
3% - 12 alvarofe
2% - 8 rkx1209dev
2% - 7 antide.petit
2% - 7 zhangzhuo
2% - 7 sven
1% - 6 kamou.k
1% - 5 sajjad
1% - 4 skuater
1% - 4 github
1% - 4 defragger
1% - 4 mrmacete
0% - 3 j123123
0% - 3 xvilka
0% - 3 adinator1999
0% - 2 wargio
0% - 2 masapastosa
0% - 2 berg.nils
0% - 2 xdg
0% - 2 lenerd
0% - 2 bru.x0
0% - 2 h4ng3r
0% - 1 bluec0re
0% - 1 maijin
0% - 1 chinmay1dd
0% - 1 kenny.macdermid
0% - 1 sferrini
0% - 1 ludwig.maes
0% - 1 qwokka
0% - 1 schrodinger
0% - 1 carcher002
0% - 1 Tzaoh
0% - 1 jmcfadyen
0% - 1 adrian.herrera02
0% - 1 jpenalbae
0% - 1 mr.exodia.tpodt
0% - 1 danitorregrosa