-=== release 0.9 ===- hg tag -r 1974 0.9 codename: furoner last commit: Tue Dec 06 01:41:17 2011 +0100 oldest commit: Tue Nov 01 12:59:07 2011 +0100 commits: 115 Author and main developer: -------------------------- email: pancake twitter: http://twitter.com/trufae github: http://github.com/radare Thanks to: ---------- * @santitox for the XOR shellcode encoder and big-gmp implemention * Glyn Kennington's patch for the build system * sre the Debian guy and betatester * earada for discusing, testing, reporting and bugfixing lot of stuff * vext01 for the OpenBSD bug reportz and packaging * l0gic for the archlinux package and bugreporting * Ender for bokken packaging and r2 feedback * ash for bokken, bug reports and beers * Nicolai Stange for the SPARCv9 (64bit) support * Instruments, Dtrace, Valgrind, llvm-analyzer, OpenBSD - fixed memory leaks - reduced memory usage in 40% - optimized code analysis - null pointers and double frees - do not use alloca() anymore - change io.va only when needed - Fix two format string portability issues Portability: ------------ * Tested support for iOS, Windows, GNU/Hurd and GNU/kFreeBSD * Use O_BINARY in all open() calls on Windows fixes IO * Fix dup2 for w32 Binaries -------- * Various symbol resolution fixes in ELF * Honor -o in rabin2 for dump section operation * Add initial native support for fat binaries in r2 - Select arch/bits with r2 -a and -b (old -b is now -B) - Kinda hacky, but works for osx-x86/32/64 - Export offset information of fat bins * add initial support for creating p9 binaries * Add initial support for plan9 binaries - supports x86, arm, ppc, sparc, mips * RBin suport new section_end flags Filesystems ----------- * Autodetect filesystem when mounting * Fix signature of r_fs_name() Bindings -------- * Updated bindings * Fail build of bindings if somethings goes wrong * Depends on valabind 0.6.4 that fixes some bugs on Python * Added bindings for NodeJS * Add accessors for RAnalFcn.{refs,xrefs,vars,bbs} Visual mode ----------- * Enhaced speed visual mode - Dot clear unless necessary (fix flickering) - Cursor is now hidden * Add 'T' menu at visual mode to show comments and anal info * Use x1, x2, x3... to seek between xrefs in visual mode * S= now fits in 80 columns * Fix P visual print rotation * Show flag+delta on title Assembler/disassembler ---------------------- * Added assembly description API (ported from r1's rsc adict) - r_asm_describe(): Added api to get opcode descriptions using sdb * Add support for SPARCv9 (64bits) - Disassembler and Code analysis (binutils-2.21.1) * Use asm.size config variable to show size of opcodes * Add new assembler directives - .int8 (alias of .byte) - .int16 (alias of .short) - .int32 and .int64 * Add -D flag to rasm2 (show hex and asm) Debugger -------- * Execution traces are now stored as a graph * Warn if file size != region size in dml - dmd and dml commands to dump/load debugger memory regions - Sd and Sl to dump/load debugger memory region from/to file * Initial implementation of r_debug_map_protect() - Bind to dmp command - Only w32 + osx, needs more work New commands ------------ * Added dtc and dtg to draw execution call graphs * Add /z command to search for strings * Add /v2 /v4 /v8 and remove /q * added 'afi' to show info of functions * Add 'fl' command to get length of flag * Use ?d to get description of opcode (uses asm.arch) * Added 'pdi' command - Like 'pi', but showing offset and bytes * Added 'pda' new commands - Disassemble code byte-per byte - Disobey instruction length * afl is now less verbose * Make 'fd' accept arguments * Use "f name 1 off" instead of "f name @ off" in dr* * Added 'g' command to use r_egg api from RCore API changes ----------- * Added r_core_file_reopen() // work in progress * Added r_flag_get_at () to handle deltas * New APIs in r_util - r_sys_run() for JIT execution - r_file_size() - r_cons_clear_line() - Add has_va in RBinInfo class for bindings - Added new api r_graph * Added R_MEM_ALIGN() - r_core_bin_info shows bin data from core * rabin2 now depends on RCore as long as r_bin_info() rasc2 deprecated ---------------- * rasc2 has been deprecated and reimplemented inside r_egg $ ragg2 -i x86.osx.binsh -b 64 -k osx -f mach064 -o a.out * Added ragg2 and ragg2-cc - Shellcode compiler for linux-x86-32/64 and OSX-32 based on ${CC} - XOR encoder * Padding data is now defined like a format string New stuff: ---------- * rax2 now supports hexpair <-> binary conversions (-s, -S) * Added eval var descriptions (see e?? command) * Add graph.font=Courier eval var to configure dot graph output * Add support for byte patching in ragg2 (-d, -D, -w) Search engine ------------- * remove search.asmstr and use /a and /c * Show progress info in search * Rename /a to /r * Fix search when io.va=true - Add search.in = file, section, raw Changes: -------- * Add support for continuations in rapatch2 '+' char * Add r2 -a arch -b bits - -b flag to specify blocksize is now -B * rasc2 has been deprecated. ragg2 is the replacement * Colorize trap instructions in bright red * Handle int3 on x86 as a trap instruction instead of SWI Build framework --------------- * Magic files are distributed on Windows too * Simplified makefiles to use absolute paths * Add sys/static.sh * Add install-rev.sh script to build old versions of r2 Bug fixes: ---------- * 'oo' reopen command will * Update file size information when requested * Fix bug when redefining io sections * Fix warning in R_MEM_ALIGN() macro * Fix rabin2 -B baddr * Fix overflow in r_cons * Fix loading strings on a object file without io.va * Fix for .ko and .o elf parsing * Use UT64FMTx instead of %llx in various places (fix for w32) * Fix AT&T x86 disassembler * Fix negative blocksize and printidx issues in visual * Many ugly hacks to enhace w32 console * Various fixes in sys/ * Added dist-bin.sh and python-bindist.sh - Fixes paths and pkgnames * Implement dtg (debug trace graph) * Fix RIO seek undo with io.va