- Fix various project related issues
- Do not save in directories. Projects are file + file.d/
- Do not show division by zero issue (e cfg.foo=/bin/ls)
Initial implementation of anal hints (ah?)
Use anal hints in core/disasm. Needs more work
New data structure StrHT (string hashtable)
Simplify core/libs.c with cpp macros
Added r_cons_color() wip function for ansi256 consoles
RPrint no longer depends on r_cons
Sort 'a?' help commands
Add support for named print formats with pf$ command
Add support for 64 bit string pointers in 'pf' ('S')
Add r_print_mute and r_print_format_length functions
Bump r2 nodejs bindings version number
Merge r_print into r_util
Implement io.buffer for fast IO (work in progress)
Rewrite util/cache.c and use it form io/buffer.c
Refactor util/ht.c and util/ht64.c to reuse code
Various minor fixes in RIO api
cache.c must be rewritten into r_buf for
Some more work to get java support back (analysis, disasm, bin share)
Honor ordinal field in java r_bin methods
Fix segfault in 'af*' on FreeBSD (thanks idwer for reporting!)
Fix some valgrind warnings
Better io.maxblk handling
Fix div by zero when blocksize is 0
Fix disasm lines when no function and extra code comments
Reference of RNum in RAsm (use flags in 'wa/pa'!)
Use RNum in x86.nz plugin
Rename scr.segoff to asm.segoff
Fixes for segmented addressing resolution
Honor lineswidth in disasm
Remove rabin2 -p flag in help and manpage
Fix disasm.c loop for small blocksizes and invalid ops
Fix parsing of segmented addresses
Move hud to shlr/hud
Add r_cons_print_clear () for delayed 'clearscreens'
Add blankline option to RCons
Add scr.segoff to show prompt as segmented or not
Add scr.colpos to choose the position of cmd.cprompt
Deprecate old flags code
Fix http server shutdown issue
Add timeout on socket connect
Enhace web ui with 'afr' and 'pdi' commands
Fix segfault in 'afr'
Fix build (thanks @egeektronic)
Autodetect osx, win, linux and android browsers
Default port is 9090
Add support for local networking in RSocket
Add r_str_unescape() helper function
Fix htmlgraph.sh script.
Added wwwroot in shlr/www
Swap eval/cmd load order in r2
Add r_core_cmd_str_pipe()
Use RCons in 'fs'
Changes in the disasm loop to support continuous fun
Fixes disasm after opcode payload
Added RConstr code in r_util (not yet used)
RBinSize implemented for elf, mach0 and plan9
Fix build
* handle eval cuando escribes una y otra vez
* add support for [bracket] comma-separated list for controversial
- add api to push-back states
* Added uleb128 api in r_util
* Add p= command to show the statistics graph
* Rename Vw to Vi (write->insert)
* Add dummy base85.c
* Various binding fixes (add test3.js)
* Fix socket.vala
* Fix nested command repeaters
* Add hardcoded limit for BB analysis (fix infinite analysis bug)
- RAnal.Fcn now has a .depth field
* Fix some r_cons usage related issues in rcore
* Add 'pif' command. as in 'pdf' one resizes the blocksize
* Fix '#' command/comment again
* Fix r_io_read issue that was causing everything to go wrong
- atm only for files
- o `?y` doesnt works with path with spaces
* Add r_file_is_directory()
* Documentate ?V command
* Add support for prompt in r_cons_hud()
* Use '_' key in visual mode to enter in hud mode
* Support mach0 files with multiple sections with same name
* Fix parsing of commands with nested quotes
* rename ?z to ?l
* added new command ?y to get and set yank buffer contents to stdout
* ?i stores the input into the yank buffer now
* ?I accepts a file name as argument which is loaded as hud
* ?k used as key=value temporal storage
* Add calc.c .. plans are:
- support proper parenthesis in math.c
- support floating point arithmetics
* ragg2 now works better
- Show bitsize in ragg2 -L
- Added a sample plugin for x86-64 osx shellcode
- command can be configured, suid can be enabled
* Minor fix in r_buf api
--HG--
rename : man/rasc2.1 => binr/rasc2/rasc2.1
- Add r_anal_fcn_xref_{add|del} methods
* Some fixes for r_bin_dex file format
- Properly name all fields and methods
- Add entry support in java too
* Add default sections for dex and java class files
- constant pool, code, data, extra
* Beautify 'S=' command
* rarun2 and rasc2 now depend on r_util
* Add r_mem_protect() as a wrapper for mprotect/VirtualProtect
* Fix segfault in java class parser
--HG--
rename : binr/rarun2/main.c => binr/rarun2/rarun2.c
* fcnstore working, results slower than with traditional method :(
- disabled by default
* Fix R_BETWEEN signature
* Add /q to search for qwords
* scr.fkey = hit by default
- Added a r2-like API on top of it
- Make RSearch and RMagic use this new api, so
* Only load default magicpath files when no file is passed to RMagic
* Initial work on r_listrange optimization in RAnal
- #define USE_NEW_FCN_STORE
- Still work-in-progress
* Implemented a RPoolFactory singleton api to accelerate
allocations of little objects in the future
* Fix sys/mingw32.sh for osx
* Added sys/maemo.sh
* Honor bits in r_syscall_setup
- Initial work on RPair in r_syscall
- Not yet integrated, but design is mostly done
* Add r_str_split()
* Add python2 and python3 makefile rules in r2-bindings
* p= command is now an alias for !rahash2 -a entropy -b 512 $FILE
* Some work in the 'G' key in visual
* Fix zoom on io.va=1
* r_sys_getcwd now returns a heap ptr and its named to r_sys_getdir()
* Show invalid instructions in 'pd'
* Fix prompt for 'w' key in visual
* More work with RPair
- Looks like it's finally usable. Let's use it from r_syscall
- Update sdb from hg
- Enhace test program
* Show newlines in 'ps' command
* Honor null callback in r_cmd
* Some enhacements in the r_config_description
* Implement cmd.repeat and add two commands to handle it
- . and .. (allow to handle pyew-like newline)
* Add ia and ia* to show all binary information info
- Use r_sys_cmd_str() instead of r_sys_cmd()
- This fixes the bug of not able to interpret output of .i?*
* Some random minor code simplifications
* r_sys_getenv now returns an allocated buffer
- Need some review to avoid memleaks
- Allow to create tiny elf binaries (only text section)
$ rabin2 -a x86_32 -c elf:31c040bb2a000000cd80 a.out
* Added api for 16 and 64 uint write in RBuffer
- Allow to create tiny binaries with r_bin
- ATM only MACH0 format for x86-32 is supported
$ ./rabin2 -a x86_32 -c mach0:31c040682a00000081ec04000000cd80 a.out
* Rename r_bin_set_arch{idx} to r_bin_select{idx}
- New API r_bin_create and r_bin_use_arch()
* Stretch bytes and stackptr in disasm
* Fix string length in r_bin (\0 is counted)
- hello is a 6 byte length string
* Fix 'Vds' to autodetect string length
- Added bin.strings eval key
* Fix range check for anal/meta
* Do not exit(1) when write error on console
* Added 'ad' command to analyze data
- Find trampolines from data to text f.ex
- Supports 32 and 64 bit archs
* flags/name moved to util/name
--HG--
rename : libr/flags/name.c => libr/util/name.c
- Update all .pc files
* Fix 'pf d*' segfault
- Show flag references in all 'pf' values
* Many bugfixes in vapis
- Use nested namespaces instead of static classes
- Static classes was deprecated in Vala some years ago
- All bindings are working again
- C++ support has been added
- Guile is now compiled by default
* Added ./configure-langs to select which langs to use
- Use --enable=python,perl or --disable=guile
* Parse space separated words in rax2
* Added r_str_binstr2bin() helper function in r_util/str
- Converts binary string to raw bytes
- rax2 -b is the commandline frontend for this
- r2 -d gdb://<host>:<port>
- register maps not yet implemented
- some basic step/continue should work in cfg.debug=true
- gdbwrap instance is shared between RIO and RDebug
* RDebug is now arch-sensitive
- Plugins describe which architectures and register sizes are supported
- Native debugger is restricted to local CPU
- Remote debugger (GDB) arch can be specified with -e asm.arch=arm
* Fix some random warnings
* Move R_ASM_ARCH into R_SYS_ARCH
- Helper functions to translate id to string and string to id
are now in util/sys.c (r_util)
- Move all R_SYS_* from r_util to r_types
- Endianness, OS, CPU and regsize is now 'global'
- Kinda smart (150LOC)
- Fork it for 64bit hash keys (make ht64 in libr/util)
* Make RConfig use the RHashTable to resolve by name
- Code cleanup resulting in -30LOC
- O(1) access to config variables (speedup!)
- Make r_list_free and r_list_destroy take sense
- It's like r_vm, but using r_anal
- r_vm is going to be deprecated
* Added r_mem_set_num()
* Remove deprecated asm/t/fastcall example
* Fix warnings in r_syscall_regs
- Integrated with r_syscall_use()
- Fix r_syscall_reg() out of bound bug
--HG--
rename : libr/syscall/regs.c => libr/syscall/fastcall.h
* Some alloca->malloc fixes for w32
* More error checking in r_sys_rmkdir
- Uses the new r_sys_mkdir_failed() api
- works on windows and posix
* Disable asm.dwarf when the plugin fails to init
- Displays a warning message
* Added 'e scr.cols=16'
- Determines the width of the hexdump (px, x)
- Used also by Visual mode hjkl dimensions
* Improving rax2
- Support for many bases.
- Add -s flag for transform byte to bin (ej: "48454c4c4f" to "HELLO")
- Add -e flag for endian swap.
* New r_num_to_bits converts nums into binary representation.
- Added help in 'b?'
* Added support for bit-collection registers
- eflags is now displayed as a string
- debug/p/debug_native.c needs a correct x86 flag string
* Fix segfault when listing empty register sets
- Analyze code in order to do syscall analysis
- Some fixes in r_vm to make it work
- Add 'av' command to interact with the virtual machine
- added r_str_subchr helper func in r_util
* Added r_anal_fcn_to_string() and get_var()
- vars now have array size and direction
* Some random fixes
- minor opimitzation in autocompletion (thx edu)
* Added Vtlr command to rename in visual tracked flags
- Fix string filtering
* Display string references for ARM (load indirections)
* Fix numeric indexing of branch references in visual mode
* Display '>' char for call instructions
* More work on RMeta
- unscape strings to avoid \n and \t
- handle correctly the 'Cs' command
- Add partial documentation for the rest of 'C' commands
- Add r_diff_gdiff (initial import of the graphdiffer)
Next step is remove the mnemonics array and use a hash function
The bb_diff function will change too :)
- Add flag -g to radiff2
* r_core
- Add cmd 'cg [file]' for graphdiffing
- Add cmd 'agd [file]' for output graphdiff results
- Modify r_core_anal_graph() for supporting graphdiffs
* r_util
- Implement more r_big functions
- Make other more gmp-like
- Using continue-until-opcode-type call
- Implemented continue-until-syscall in the same way
* Fix r_str_hash() algorithm to avoid colisions
* Added r_sys_bt()
* Update configure
* r_big
- Prepare big.c to add gmp code
- Implement r_big_{new, free} with libgmp
* r_anal
- Change the type of {bb,fcn}->fingerprint to RNumBig
* r_flags & r_core
- Add cmd 'af-*' which removes all flags
- simplify local var/args analysis
- Fix var sign in x86im plugin
- Add analysis support for some missing opcodes
* r_parse
- Fix asm.filter
* r_util
- Change r_hex_bin_truncate type to st64
- Do not used trashed bytes from r_file_slurp_range
* Implement r_sys_cmd_strf
- Simplify code in addr2line r_bin_meta plugin
* Install again in site-packages for py2.6
- Debian/Ubuntu uses dist-packages, but not in arch
- Linking fixed for r_sign and
* Fix some reads out-of-bounds in r_bin_elf
- Use __strnlen instead of ELF_STRING_LENGTH
- Some simplifications using macros
* Open plugins in radare2 found in '.' by default
- Make w32 happy
- Fix RLib for w32 and local plugin files
* Implement r_sys_cmd_str() for w32
- Also r_sys_setenv()
* Fix printfs in lib/t example
* win7 syscall list is now default windows one
* Added 'r_sys_perror' to make it portable on *nix and w32
* Rename RLibrary into RLib
* Fix flagSort command (fS)
- sort by name is now done by strcmp
- str_hash and str_hash64 are not enought
* Use r_cons in flag/t .. we must drop this dependency
* Add 'all-flagspaces' entry in Vt menu
- When switching back to visual mode, the
print mode is not lost
* Some code cleanup
> s 0&&./x 6c..62&&p8 3@@hit
> zb function 89e55383ec....38 # binary mask inline
- works like r_hex_str2bin, but converts binary mask and keyword
* RSign now uses r_cons_printf from core.
* FunctionPrintf typedef to bypass some warnings
* Added r_mem_eq
- Handled by 'S' command
* Added dummy 'z' command to handle zignaturez
- Added more dummy 'az' commands
- RCore now depends on RSign
* Some refactoring and speedup in _update method of RSearch
- Added support for distance search (maybe buggy and incomplete atm)
- Fix binary mask for keywords after previous commit
* Added 'r_str_rwx*' helper functions in r_util
- e io.cache=true
- Fixes support for overlapped changes
- Implement cache_list
- We can merge it to remove vm and undo writes with this
* Some code cleanup in vm
* Fix division by 0 bug notified by @ash
* Some random makefile cleanup
* Use RMemoryPool and RList in RSearch
- Store hits in RList if no callback defined
* Fix constructor of r_mem_pool if alloc fails in init
* Remove unused file from search/ binparse.c
* Merge r_trace into r_debug (RDebugTrace)
- Implement 'dt' command to manage debugging traces
- TODO: Track register values and memory changes
- Added dbg.trace and dbg.trace.tag
* Added r_sys_now() to retrieve ut64 value of current time
- Must check endianness issues
* Initial work trying to implement RPATH support to ELF
* Less flat command tree
- 'dt' is now 'dbt'
- 'dk' is now 'dpk'
* Some more random syntax cleanup fixes
* Say 'yes/no' instead of 'ok/fail' in check-langs script
- Integrated with core 'as' command. as? for help
- Display formatted parametters of syscalls
- Needs to fully implement this everywhere
- Syscall argument parsing is not yet complete (<4args)
- r_debug_arg_{set|get}
* Implement continue until syscall on Linux debugger backend
* Lot of syntax cleanup to use the new code convention
- Clean r_sign, r_search, r_syscall
* Define global R_SYS_ARCH, _OS and _BITS
- Handle asm.os and asm.arch to hook r_syscall plugins
- Display 8 or 16 zeros depending on asm.bits
- Added r_str_filter () to filter nonprintable chars
--HG--
rename : libr/search/stripstr.c => libr/search/strings.c
- Added endianness in r_bp
- Add breakpoints for mips and ppc
- Needs to be used from r_core (dbt?)
- Added dummy bp_watch api (WIP: needs access to r_reg)
* Merge r_range inside r_util
* Added BIT_{SET|CHK} helpers in r_types_base
- Define ST32_MAX
--HG--
rename : libr/range/range.c => libr/util/range.c
- Use it from p/debug
- Now is possible to debug programs with arguments
- Added test program in util/t/argv
* Fix pd/pD
* Clean and fix the native debugger plugin
* More random code syntax cleanup
* Rename io plugin names without the deprecated 'io_' prefix
* Fix mk/stat-make.pl (missing ;)
- Use 'asm.arch=ppc' in POWERPC by default
- Added r_io_mach for MACH microkernel debugging
- Compiled as static plugin by default
- Added darwin mach/ptrace stuff in debug_native
- Very ugly code.. needs some refactoring
- Add powerpc-OSX registers description map
- Added temporally .h files in debug/p/native
* Display verboser version message with 'r2 -V'
* More linking issues fixed for OSX
* Build gdbwrap debugger plugin
- Not yet usable
* Added R_SYS_OS R_SYS_ARCH and R_SYS_ENDIAN strings
* Deprecate DEBUGGER variable
- env.sh now also uses DYLD_LIBRARY_PATH
- Fixes in ollyasm/dis to link with no global variables
- Remove double definition of global _state
- Same for asm_java
- Split -shared and -Wl,-R into LDFLAGS_{LIB|LINKPATH}
- Fixes linkage in osx
- anal_x86_bea plugin now links correctly against BeaEgine.o
- dietline is now #include'd from line.c
- no debugger support yet
- Do not externalize any variable. Some linkage does not support it
* Remove bininfo dependency .. aims to be merged into bin soon
* Added r_str_case() method to change to lower/upper case a string
- r_util is now bindable from swig !!
- Added test cases for r_util
- r_flist has been mirrored in C, to keep API consistent
* Rename RIO->seek into RIO->off
- There's a method with the same name
- Also rename list.h ->next and ->prev into ->n ->n
* Apply patch from whats fixing 'r_cmd_str' EOF for stdin (Thanks!!)
- Added test program to ensure stdin food works
* Allow '-f -' to rasm2 (assemble file from stdin)
* Added test case in python using RBin, RAsm and RCC to compile
and assemble a code to be injected in the given target program
* Add ruby test for r_bin
* Remove old r_array stuff from r_types.h
* Fix swig/Makefile to install ruby libs into ruby1.8 libdir too
--HG--
rename : libr/include/r_array.h => libr/include/r_flist.h
* Out of file reads (padding) filled by 0xff
* Added r_sys_cmd () to wrap r_system()
* Fix debug registers command to display segment and flag registers
- Some draft changes in r_debug (signal handling and backtrace)
* Fix warnings in r_line
* Many more indentation fixes
- Added st32 and st8 basic types
- Fixes ruby warnings
- Follow java syntax conventions
- Helped to identify and fix bugs in many vapis
- Sync swig examples
- Add test-r_core.rb (ruby test for RCore)
* Some work in r_cons, some refactoring and cleanup
- scr.html is now working again
- w32 cons support should work now
- Rename r_cons_get_columns -> r_cons_get_size()
- But it needs more work
* Typedef all r_range, r_parse and r_anal structs
- Add missing r_lib.pc in configure.acr
* 'make' clean now removes the libr* in swig/${LANG}/
* Fix linking of r_core (r_bin not found)
* Lot of fixes for valaswig. libr, r_io and r_debug
are now usable from python/perl/ruby
- Fix many .vapi files
- Enhace the libr.pc
- r_hash.deps must be removed
- Depends on valaswig-head
- Added R_BUF_CUR for reading at current offset
* r_bin
- r_bin_java rewritten using r_buf
- Removed unnecessary headers
- Some minor fixes in r_bin_pe and r_bin_elf
- Add r_buf_fread for "format read" (needs a better name)
- Fix segfault in set_bytes
- Fix r_buf_read
* r_bin
- Refactoring of r_bin_mach0 using r_buf and r_file
- hg clone http://hg.youterm.com/valaswig
* typedef all structs as r_asm_item_t -> rAsmItem
- Sync typedefs with classnames for vala and valaswig interfaces
- Needs more work and testing
- C code keeps fully compatible
* New script to build valaswig bindings (swig/libr-swig.sh)
- Needs integration with 'make test'
- This will help to create a decent unit testing framework
to find bugs in bindings and enhace the design of APIs
from a centralized way keeping compatibility for all the
languages supported by swig (c#, python, java, ruby, perl, ..)
* Fix vala test programs build
- Thanks! :)
* Added dummy r_socket_proc_* api
- Needs to be moved outside r_socket
- Added two non-working usage examples
* Add some checks and enhacements to the r_buf API
- Implemented in r_util.vapi
* R_APIfy the r_cache api
* Add missing methods in r_socket.vapi
* Update the README file in r_anal describing the
new design of r_anal..not yet finished
* Some random warning fixups
* extern plugins defined in handle.c for asm, bin, .. cleaner
* RAPIfy the r_bininfo
* Initial implementation of Rarray Iterator
- Needs some tuning in core Vala..but it is ok for demos
- r_bin API is now using the Rarray iterator
- Added Vala test program for it
* Fix build of some test programs
* Added r_diff and r_bininfo VAPI files
- The APIs are inconsistent and untested. Proposals welcome
- Fix possible overflow in r_bininfo
* Initial implementation of pool.c
- Implements Memory.Pool class (Extracted from 'alt')
- Added test program
- Does not yet supports bitlevel registers
- Added test program modifying and showing regs
- Added dummy x86-linux.regs register layout
* Added r_mem_copybits() in r_util
- Bitlevel precission for a memcpy
* Populate r_io_lseek -> r_io_seek refactoring
* R_APIfy a bit the r_hash
* Also build hash/t/hello program
* Fix some warnings and build blockers
* Make rahash2 read from files (using slurp)
* Added r_buf API in r_util (interacts with r_io)
* Add initial template for r_io_bind
- Needs some more work
- r_debug_ptrace is now static by default
* Some code cleanup and warnings removal
* Added hg-utils.mk and MKPLUGINS directive in user-config
* Initial implementation of dbg_gdb r_debug plugin
- Import ERESI's libgdbwrap from r1
* Add some missing files (asm/p/fastcall_mips.h, core/t/ragrep2.c)
* Added r_str_bool helper to get "true"/"false" from int