Commit Graph

400 Commits

Author SHA1 Message Date
pancake
2ef1abb974 * Add -t flag to radiff2 to select code diffing match threshold 2011-10-20 02:14:35 +02:00
pancake
3b9420fad8 * More stuff to make --with-sysmagic work 2011-10-18 18:12:17 +02:00
pancake
04cbf68819 * Fix segfault in elf (thanks @earada!)
* Make cg and cgo work
* Added r_anal_diff_setup_i()
  - Fixed bindings
2011-10-16 13:59:05 +02:00
pancake
6c0318fa86 * Honor LIBDIR in syscall/d and magic/d
* Show similarity distance in radiff2 -C output
* Add -O flag to radiff2 to use diffops
* Diffing threshold for basic blocks and functions is now configurable
* Explicitly delete the asm object from the nodejs example
2011-10-14 10:09:53 +02:00
pancake
e9d1dcb4ec * Fix make w32dist
* Update manpages
* Added r2 -H for env and files help
* Add rarun2 -h
* Show assembler/disassembler features in rasm2 -L
* Add opcode 'mov dword [ebp-12],4' to x86.nz
  - Make t/test.nz work with x86.olly (32bit only atm)
* Fix unknown os issue with tiny-pe files in r_bin
* Fix some plugin names build fails in mingw32
* MAGICPATH renamed to R_MAGIC_PATH
* Add another experimental way to generate gir files
  - Added dummy test.js for nodejs
* Build python-dist in farm

--HG--
rename : man/rarc2-tool.1 => binr/old.rarc2/rarc2-tool.1
rename : man/rarc2.1 => binr/old.rarc2/rarc2.1
2011-10-12 03:24:19 +02:00
pancake
32afad2b65 * Fix build with clang
* Fix some warnings which result in more bugfixes. yay
2011-10-10 01:48:08 +02:00
pancake
a43068bde0 * brainfuck debugger is finally usable
- Added breakpoint and code analysis plugins for bf
  - *mem++ != mem[0]++
  - Full register get/set support
  - Support for step and continue-until-syscall
  - Work in progress breakpoint support
* Added bfvm_reset() hooked to plugin->kill
* Enhacements in r_core and r_debug for better debugger support
  - Added plugin->step_over delegate
2011-10-09 04:15:32 +02:00
pancake
ebb04f2e8f * Fix overflow in rasc2 (needs more work)
* Remove pragma pack(push) in x86im
* Remove analysis reference memory reads error messages
2011-07-03 01:51:20 +02:00
pancake
ce1d0e9975 * Fix sys for gmake (*BSD)
* Increase buffers in rasc2
2011-07-02 23:15:40 +02:00
pancake
bb904490dc * r2 -D now accepts a dbg.backend (dh) argument
- Fix segfault when accessing null r.file->fd->data
* Initial first working steps of the brainfuck debugger
* Add missing io.w32 plugin (untested)
  - Plugins that doesn't work on current platform are not listed
2011-10-08 12:10:30 +02:00
pancake
4ea6ee9873 * Add new flags to r2
- -D : enable debugger mode for non native debuggers
  - -c cmd : execute a command before showing prompt
* Initial import of the bfvm (brainfuck virtual machine)
* Initial dummy implementation of the brainfuck debugger plugin
  - Needs to be integrated with bfvm to work
* Added doc/brainfuck
2011-10-07 03:10:44 +02:00
pancake
508963677b * Fix linking 2011-10-06 10:09:12 +02:00
pancake
098b1ba127 * Implement input and output filters for rasm2
- Experimental.. not yet ready for release
  - Add rasm2 -F flag to specify input and output filters
   $ rasm2 -F att2intel
* Add new att2intel r_parse plugin
  - make mrproper required
* Initial implementation of RBinClass
  - Only experimental and Java-specific atm
  - Add rabin2 -C to display classes
* Optimize some r_str functions
2011-10-05 02:38:37 +02:00
pancake
3b8c1e1b32 * Add support for incremental hashing in rahash2
- Enables working with huge files
  - Use -B to per-block-hash
* Initial dummy for 'ax' command
* Add 'pdb' command
2011-09-27 10:27:13 +02:00
pancake
9884ce9db0 * Initial support for Android NDK build (fix build)
- Not yet runnable, but compiles against bionic
2011-09-25 06:57:13 +02:00
pancake
0eb0eabd19 * Do not dist w32 test bins
* rahash2 now depends on r_io
  - support for huge files is wip
* Handle offset in afl command
* Fix libs.mk syntax issue
2011-09-23 12:25:06 +02:00
pancake
0217c146ef * Fix x86.nz -> push [esp+N]
* Use pw instead of px in debugger stack view
* Disable stackptr by default
* Add OSX-32bit debugger register map
  - Fix support for debugging 32bit bins in 64bit OSes
* Implement r_egg_run() -- just in time execution
* Fix r_egg string construction and argument passing
  - Still needs more work, but at least some hello worlds work
2011-09-21 19:51:09 +02:00
pancake
1b440bf9d2 * Add ragg2 -I to prepend include path directories
* Enhacements in r_egg library
  - Add support for including files
    - bla.r@include($PATH);
  - Proper support for goto() keyword
  - Add support to get and set environment variables (need more work)
    - PATH@env(/bin);
  - Fix /* */ comment parsing code
2011-09-20 01:53:15 +02:00
pancake
279d4e6f5f * Fix make deinstall
* 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
2011-09-19 13:54:57 +02:00
pancake
0a14411bc1 * Added README documentation for libr/egg programming language
* Add -O flag to ragg2 as an alias for -o a.out or -o <file> (without extension)
* Add rabin2 -M (get main) for Java Class files
* Add emit_trace (code tracer) for r_egg. useful to debug
  - ragg2 -a trace hello.r
  - Add emit->jmp() function pointer and emit->retvar
  - many fixes in function calls and definitions
  - Added support for 'break;' 'break();' and 'goto();'
  - Added .ret variable as an alias for eax, rax or r0
2011-09-19 02:39:33 +02:00
pancake
838e6b7466 * Fix java class parser for javac -g files
- Show debug information in sdb format
  - Fix null pointer segfault
  - Still work-in-progress for proper debug info
* Some work on r_egg
  - Fix windows and osx default syscall tables
* Export version number in vapi R2_VERSION
* Hide ccache error if not found in sys/install
2011-09-18 18:56:11 +02:00
pancake
096b7eb406 * Fix mingw32 build 2011-09-14 12:37:26 +02:00
pancake
2edfc3495e * Re-enable r2 -t - use threads to load big files 2011-09-14 04:31:22 +02:00
pancake
cfccb47b0f * Fix build 2011-09-11 00:42:59 +02:00
pancake
0357ddf18e * Move rapatch into r_core_rapatch (r2 -P)
- Remove r_core deps from rabin2
  - Accessible via 'wp'
* Fix build check of test program in r_db
* Pass CFLAGS/LDFLAGS to sdb build
* Add rax2 -k to not change base
2011-09-09 09:49:55 +02:00
pancake
4d6c585672 * Add support for mach0-arm and mach0-x86_64 in r_bin_create
- x86_64 has been tested and works fine, but needs some love
  - the arm mach0 (iPhone) is not yet tested, but the bin looks ok
* Install syscall sdb files into versioned directory in lib/radare2
2011-09-09 01:09:36 +02:00
pancake
62cd212ba1 * Fix non-PIC/static build (apply Glyn patches)
* Fix entropy multiplication bug (Thanks Glyn!)
* btw.. previous patch added asm.case eval var
2011-09-08 15:47:05 +02:00
pancake
4af07f8f2f * Fix linkage of rabin2 in OpenBSD 2011-09-06 17:12:45 +02:00
Nibble
ee8ca52b57 * Add decode str to ranal2 output
* Fix syscall installation
2011-09-04 17:47:26 +02:00
Nibble
0f8cc36a58 * Fix build
- Add r_db to DEPS in Makefiles
2011-09-04 11:49:32 +02:00
pancake
2c92c7d172 * Merge rapatch2 into rabin2 -p
* 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
2011-09-04 03:56:35 +02:00
Nibble
fd49310812 * Merge 2011-09-04 02:45:29 +02:00
Nibble
d7afa73011 * Minor refactoring of rabin2 main() 2011-09-04 02:44:53 +02:00
pancake
56fb04bb79 * Say different error if -w is used in r2 and fails
* 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
2011-09-04 02:34:54 +02:00
Nibble
334a6bcfb8 * Fix list and select archs in rabin2 (flags -A and -a)
* Fix memory leak in rabin2
* Fix segfault in r_bin_use_arch()
2011-09-04 02:19:43 +02:00
Nibble
8ec73271c7 * Filter section names in rabin2 output 2011-09-02 13:55:59 +02:00
pancake
12af78ccee * Fix build, reduce warnings and add some checks 2011-08-30 19:12:49 +02:00
pancake
763289b4aa * Fix Bx1d issue in rax2
- Applied patch by flux. Thanks!
2011-08-29 00:43:20 +02:00
pancake
f6d5e9034a * Add r_core_prompt_loop()
* Add support for descriptions in configuration variables
  - Add e+ to list all descriptions
* sync vapis
* Fix zero end string in r_print_hexpair
2011-08-27 04:32:27 +02:00
pancake
2f84cbe1c4 * Fix valabind bindings
* Fix Go bindings build for arm, 386 and amd64
* Apply ricky's patch honoring LIBDIR
2011-08-21 14:24:58 +02:00
pancake
f5228044f1 * exit 1 if egg assemble or compilation fails
* Simplify x86nz assembler jumps
  - Fix 'test reg, reg'
* Minor simplification of entropy.c
2011-08-14 14:11:15 +02:00
pancake
a050b58797 * Show progress bar in entropy calculation output of rahash2
- Allow per-block hash calculation instead of only full file
2011-08-13 18:09:39 +02:00
pancake
de5f4061ee * Add support for jl, jle, jg, jge, jne, je in x86.nz
- support for signed/unsigned values in r_egg
2011-08-13 17:23:24 +02:00
pancake
1424bf9701 * Initial support for 'jb' opcode in x86.nz
- hello.r now is broken because of this use
  - Ignore prefixed '$' in numeric values for r_egg
* Apply @capi_x's patch fixing a bug in 'wb' and rsc/msdn
2011-08-11 17:41:24 +02:00
pancake
c53a78bd88 * Add ragg2 -F (-f native)
- Uses pe on w32, mach0 on osx and elf everywhere
* Apply msdn rsc2 script fixes from capi_x
* Remove comments from ragg2/t/hello.r
2011-08-10 15:42:54 +02:00
pancake
b3cefac08b * Make while() and .var0-= statements work in r_egg lang
- Added support for 'add|sub [reg+delta],n' opcodes in x86.nz
* Add emit_init() function pointer to fix entrypoint issues
  - ebp has no valid value defined on entrypoints
2011-08-10 11:24:15 +02:00
pancake
168d38fc44 * Add rax2 -x to calculate string hash
* Use trim to avoid noisy chars in symbol names for egg/lang
* Properly handle osx/w32 os strings in r_egg
* Make string construction works in r_egg
* Initial work on while() constructs
2011-08-09 11:06:50 +02:00
pancake
06e98dadb1 * Add -k flag to ragg2 - select kernel
- ATM only support for linux and osx
  - Do not show asm when -f is passed
  - Added 3 test programs for osx/linux in ragg2
* Add support for 'lea' opcode in x86.nz
  - Support more 'mov [off], reg' opcodes
  - Lot of new test cases in test.nz
* Fix some segfaults and parsing bugs in egg/lang

--HG--
rename : binr/ragg2/exithello.r => binr/ragg2/t/exithello.r
2011-08-09 02:03:12 +02:00
pancake
1f48797bfb * Fix test reg, reg; mov reg, [reg] ; mov reg, [reg+off] in x86.nz
* First hello world working with ragg2 on linux-x86-32
  - Named exithello.r .. run cd binr/ragg2 ; make test
2011-08-09 00:10:12 +02:00
pancake
1733e6d8a9 * Use r_bin from ragg2 to create ELF/PE/MACH0 bins 2011-08-08 15:00:42 +02:00
pancake
429a475ac0 * Deprecate rarc2 and rarc2-tool
- Replaced by ragg2 - the new r_egg based tool for r2
* Add r_egg_assemble as a 2nd step for compilation
* Fix memory leak in r_egg_free
* Add support for 'cmp' and more 'test' variants for x86.nz
  - Ignore 'dword ptr' string
  - More test cases
* Fix SCSIZE issue in rasc2 -s

--HG--
rename : binr/rarc2/Makefile => binr/old.rarc2/Makefile
rename : binr/rarc2/README => binr/old.rarc2/README
rename : binr/rarc2/config.def.h => binr/old.rarc2/config.def.h
rename : binr/rarc2/config.h => binr/old.rarc2/config.h
rename : binr/rarc2/emit_arm.c => binr/old.rarc2/emit_arm.c
rename : binr/rarc2/emit_x64.c => binr/old.rarc2/emit_x64.c
rename : binr/rarc2/emit_x86.c => binr/old.rarc2/emit_x86.c
rename : binr/rarc2/i/libc.r => binr/old.rarc2/i/libc.r
rename : binr/rarc2/i/socket.r => binr/old.rarc2/i/socket.r
rename : binr/rarc2/osxtest.r => binr/old.rarc2/osxtest.r
rename : binr/rarc2/out.c => binr/old.rarc2/out.c
rename : binr/rarc2/rarc2-tool => binr/old.rarc2/rarc2-tool
rename : binr/rarc2/rarc2.c => binr/old.rarc2/rarc2.c
rename : binr/rarc2/rarc2.h => binr/old.rarc2/rarc2.h
rename : binr/rarc2/t/Makefile => binr/old.rarc2/t/Makefile
rename : binr/rarc2/t/argv.r => binr/old.rarc2/t/argv.r
rename : binr/rarc2/t/bytedump.r => binr/old.rarc2/t/bytedump.r
rename : binr/rarc2/t/data.r => binr/old.rarc2/t/data.r
rename : binr/rarc2/t/dump.r => binr/old.rarc2/t/dump.r
rename : binr/rarc2/t/hello.r => binr/old.rarc2/t/hello.r
rename : binr/rarc2/t/hi.r => binr/old.rarc2/t/hi.r
rename : binr/rarc2/t/if.r => binr/old.rarc2/t/if.r
rename : binr/rarc2/t/inline.r => binr/old.rarc2/t/inline.r
rename : binr/rarc2/t/input.r => binr/old.rarc2/t/input.r
rename : binr/rarc2/t/loop.r => binr/old.rarc2/t/loop.r
rename : binr/rarc2/t/ptr.r => binr/old.rarc2/t/ptr.r
rename : binr/rarc2/t/rawsys.r => binr/old.rarc2/t/rawsys.r
rename : binr/rarc2/t/rawsys64.r => binr/old.rarc2/t/rawsys64.r
rename : binr/rarc2/t/regs.r => binr/old.rarc2/t/regs.r
rename : binr/rarc2/t/ret.r => binr/old.rarc2/t/ret.r
rename : binr/rarc2/t/room.r => binr/old.rarc2/t/room.r
rename : binr/rarc2/t/segfault.r => binr/old.rarc2/t/segfault.r
rename : binr/rarc2/t/shell.r => binr/old.rarc2/t/shell.r
rename : binr/rarc2/t/sub.r => binr/old.rarc2/t/sub.r
rename : binr/rarc2/t/syscall.r => binr/old.rarc2/t/syscall.r
rename : binr/rarc2/test.r => binr/old.rarc2/test.r
rename : libr/egg/t/syscall.r => binr/ragg2/syscall.r
2011-08-08 02:07:26 +02:00
pancake
d99fbd7680 * Fix make mrproper
* Initialize {code,data}_offset to 0
2011-08-08 00:54:00 +02:00
pancake
e812ab57f1 * Add capi's shellcode for x86-64 OSX (tested on Lion)
- fork+wait+execve(/bin/sh)
2011-08-07 01:47:17 +02:00
pancake
839f71e937 * Initial import of the asm.x86.nz plugin
- Very few instructions can be assembled
  - Aims to assemble code with no zeros
* Added xorencoder.asm test file
2011-08-05 00:34:45 +02:00
pancake
63917198b6 * Check empty optind arg to -d 2011-08-04 12:22:24 +02:00
pancake
aad2e91d96 * Initial import of asm.x86.as plugin
- Uses OSX/GNU/BSD 'as' assembler
2011-08-03 21:01:56 +02:00
pancake
860e608d23 * Fix build.. :( 2011-07-27 17:41:35 +02:00
pancake
dc93b16f7b * Minor work on egg and rasc 2011-07-27 10:30:23 +02:00
pancake
deced01103 * Fix build of rasc2 2011-07-27 01:41:35 +02:00
pancake
26a070f5aa * Initial import of r_egg api
- Implements rarc2 as a library
  - Supports x86-32/64 and arm
  - WIP inline-egg like api
* Add radiff2 -x to dump two column output
2011-07-27 01:16:18 +02:00
pancake
259d14940e * Implement R_SEARCH_DELTAKEY
- Accessible with /d search command
* Code cleanup in TinyPE
* Implement rasc2 -o
2011-07-26 09:34:10 +02:00
pancake
041751e029 * Added osxtest.r and adapt rarc2-tool to support rasm2 and rabin2 -c
- rarc2-tool can now create tiny executables!
* Fix segmentation fault in bad use of r_bin_create api
2011-07-26 00:30:45 +02:00
pancake
a6b94842f3 * Add universal rop shellcode for osx-x86-64 in rasc2
- https://github.com/pakt/exp-dev/tree/master/osx.dyld.rop
2011-07-25 23:54:37 +02:00
pancake
d2cf5e4425 * Import chmod() from sbase as r_file_chmod()
- Support recursive chmod
  - Handles string-based octal/expression formats
  - Used by rabin2 -c to chmod +x the created binary
2011-07-25 23:42:39 +02:00
pancake
8d06dd2f02 * Initial implementation of rabin2 -c
- 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()
2011-07-25 21:10:25 +02:00
pancake
fde9168bd4 * Remove linking dependencies in radiff2 as reported by Debian
* Use -v instead of -V in rasm2 too
2011-07-25 12:22:55 +02:00
pancake
553ac83d91 * Added __KFBSD__ define and enable new proc/maps for GNU/kFreeBSD
* Do not install rsc2 stuff
2011-07-20 19:26:07 +02:00
pancake
ad30b95b45 * Honor --libdir --includedir and --bindir
* Put rsc2 scripts in ${LIBDIR}/radare2/bin
* Force RELEASE=1 in r2-bindings. Oops
2011-07-19 11:25:11 +02:00
pancake
28e5244064 * rax2 -s (without arg) uses stdin now
* Show help when no file given to rabin2 -O help
* Fix ELF strtab section read issue (workaround?)
2011-07-18 00:07:45 +02:00
pancake
df2ec8e014 * Added support for new platform Maemo6-Harmattan
- Linux/arm with debugger support
  - Debian package generation tools (no need for dpkg)
  - Compilation instructions at doc/maemo
* Fix install in binr and libr
2011-07-15 01:50:42 +02:00
pancake
07b5b473c5 * Use OpenSSL (cflags/ldflags) from pkg-config 2011-07-13 19:22:38 +02:00
earada
008dc76721 * Use native api to calculate md5/sha1 hashes
- Fix bug 29
2011-07-13 17:41:26 +02:00
pancake
ca5e38d239 * Fix w32 and w64 build (r_fs/grub issue)
* Dont quit rax2 when reading from stdin until 'q' or ^D
* Minor fix in fortunes
2011-07-13 13:59:55 +02:00
pancake
7bcd23df0f * Fix static build (--without-pic --with-nonpic) 2011-07-13 10:14:30 +02:00
pancake
d07c67e87a * Fix build on mingw32 2011-07-06 21:57:12 +02:00
pancake
510c08f4e4 * Do not use strcpy/strcat/sprintf
- There are still some 3rd party files that require update
  - Makes OpenBSD linking less verbose
2011-07-06 03:01:21 +02:00
pancake
ea98fe1bd6 * Various gcc-4.6 warnings fixed 2011-06-30 00:17:12 +02:00
pancake
e1d569fbeb * use r_num_get in r_cons_grep
- Flags are now handled
* Added 'S.' command to show begin end and name of current section
* Implement 'sn' to seek to next opcode (alias for s+$l)
  - Added $l variable
* Rename r2 flag -v to -q
  -V flag is now -v (all flags in lowercase
2011-06-26 23:49:11 +02:00
pancake
814d220ac6 * Implement 'Cl' command to set sourceline comments
* Fix, implement and install rsc2
  - Added rsc2 srcline script
2011-05-25 15:43:54 +02:00
pancake
c72cbe9bfa * Add rafind2 -e to search for regular expression keywords 2011-06-22 00:28:03 +02:00
pancake
adcefe78fe * Added 'mad' compiler support to crosscompile to maemo6 with QtCreator
- ./configure --with-compiler=mad --with-ostype=gnulinux
* Fix various warnings reported by maemo toolchain
2011-06-14 01:44:28 +02:00
pancake
c1a7557959 * Handle environment variables in rarun2
* Added support for F12 key in r_cons
* Added key.f# eval vars to configure function keys in visual
2011-06-06 00:16:11 +02:00
pancake
fb0119c9b5 * Fix build. Use r_name_filter in rabin2 2011-06-05 23:30:19 +02:00
pancake
f7f82ecbc0 * Implement support for handling av/repag and Function keys in r_cons
* Remove -u flag in r2 (was not implemented, but not needed)
* Added ?v command
* Check if file exists in rarun2
* Fix cmd.vprompt
* Some fixes in io.undo
  - Two test cases to check undo and redo ops
* Added 2 bugs in testsuite
2011-06-05 20:36:22 +02:00
pancake
8fe475a50f * Added rarun2 program 2011-06-05 01:33:28 +02:00
pancake
c9faf9f88b * Do not load strings if project is already loaded
- 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
2011-06-04 05:27:26 +02:00
pancake
bf95651e69 * Fix DEX parsing segfault
* Fix possible segfault on newer glibc
* Fix some indentations and Visual hints
2011-05-24 15:25:52 +02:00
earada
839bd60882 * Add mfs and mfo to search by name and offset
* Fix rafind2 build
2011-05-22 00:23:39 +02:00
pancake
acb7709bff * Fix OpenBSD python bindings
- Use -L$(pkg-config --prefix)/lib
  - Use -pthread when linking
* Many fixes in vapi bindings
  - Thanks eddyb!
2011-05-18 16:42:12 +02:00
pancake
7e917da3db * Use $(shell) instead of ``
- Compile time should be a little faster now
* Fix warning in lang_perl
2011-05-15 04:31:08 +02:00
pancake
6277d904d9 * Initial import of r_sys_crash_handler ()
- Launch 'gdb --pid %d' when crashing
  - Enabled when R_DEBUG is set
* List environment variables in help message
2011-05-15 04:20:59 +02:00
pancake
db61c1640a * Implement simple ciphering algorithm to bundle rasc2 shellcodes
- Should trick some silly antiviruses to stop claiming that
    the w32 build is malware
* Unify the python-config-wrapper scripts

--HG--
rename : binr/rasc2/shellcodes.c => binr/rasc2/shellcodes.c.src
2011-05-15 03:33:31 +02:00
pancake
80492f5620 * Fix help message in radiff2 2011-05-13 12:14:00 +02:00
pancake
425fe596f4 * Fix many warning messages
* Initial implementation of r_debug_rap
* Implement 'dcu from to' (ranged stop point)
* Use RList in r_lib (list.h has been deprecated)
2011-05-13 10:22:28 +02:00
pancake
a3050fce7b * Implement r_fs_view() method to set visibility options for filesystems
- Added enum for VIEW_{DELETED|SPECIAL} ...
  - Implement support for listing deleted files for FAT.
  - Experimental state
* Add 'fs.view' eval variable
  - values normal, all, deleted and special
  - only 3 letters are checked 'del' and 'spe' are ok
* Add missing include files
2011-05-13 02:31:18 +02:00
pancake
c2d5f9215b * Move R_SYS_DIR and R_SYS_HOME into r_types.h
* 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
2011-05-13 00:25:36 +02:00
pancake
09577a9246 * Initial import of the r_bin_fs plugin
- Autodetects underlying filesystem
  - Auomatically mounts a /root partition
  - Only support for 'HFS+' filesystem (as a test)
* Added 'oo' command to reopen current file
  - In debugger mode re-forks the process
2011-05-12 09:52:40 +02:00
pancake
bd017111d7 * Fix r2 -d gdb://
- compile debug_gdb plugin statically
  - fix filename construction path
  - /path after :port in gdb uri is now ignored
2011-05-06 17:14:31 +02:00
pancake
3f2677ab7f * Added initial untested support for native gdb debugger mode
- 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'
2011-05-06 00:59:10 +02:00
earada
ac786a03dd * Add OSX x64 Reverse TCP Shellcode
* Fix rasc2 enviroment vars
* Change some files license from GPL3 to LGPL
* Fix some typos
2011-05-03 23:43:16 +02:00
pancake
28de8a232f * Fix build of rapatch 2011-04-28 09:50:38 +02:00
pancake
fad6bc0886 * Commited 'rapatch' from lacon-2010 talk 2011-04-28 01:19:38 +02:00
pancake
e90ea1b3f1 * Fixes in vapis (RCore.file and RBin.get_libs())
* Fix buffer overflow vuln in rasc2 (thanks @earada)
2011-04-25 00:03:43 +02:00
pancake
616395cca3 * Fix help in radiff2 2011-04-18 22:46:21 +02:00
pancake
8069e1f509 * Fix cmdline arguments parsing segfault in radiff2
* Do not build r_big api
  - It's incomplete, not used and is problematic to build
2011-04-17 03:54:27 +02:00
pancake
6b1001aefc * Implement -g and -C flags to radiff2
- Add support for function/basicblock code diffing
  - Import nibble's test-ragdiff2.py in swig/python
  - Added some documentation in doc/bindiff
2011-04-15 18:59:44 +02:00
pancake
94e316b6fe * Do not build r_db
* Group bfd getl{16,32} helpers
  - fix build of sh-dis plugin
* Fix lot of warnings
* Port rap to use RSocket
2011-04-06 09:29:25 +02:00
pancake
3b490556f5 * Do not export drx_get and drg_set
* Do not build/use r_th
2011-04-04 14:39:42 +02:00
pancake
075b495a5c * Implement basic register profile for OpenBSD
native debugger backend.
* Fix make symstall in BSD systems
  - PWD var looks like a linuxism
2011-04-02 20:03:00 +02:00
pancake
daff6aff5d * Fix set_reg_profile callback in r_anal_arm
* Fix dupness issue between RDebug and RAnal sharing RReg
  - Move reg_profile string into inner RReg
* Remove vm.arch setup in rasm2 -ri
2011-03-24 00:54:09 +01:00
capi
44fa1dc253 * Add manc and msdn query scripts to rsc2 2011-03-18 14:07:52 +01:00
Nibble
2db84a2e46 * Fix build when compiling in a clean system (thx @esanfelix!) 2011-03-07 20:50:10 +01:00
Nibble
1535b4c5c1 * Don't flag imports/symbols twice (also for functions)
* Remove unnecessary calls to r_flag_space_set()
* Show calls nicer in decode mode
2011-02-28 17:27:08 +01:00
pancake
d953cd9adf * Initial implementation of the java name mangling
- Added as comments before the method names
* Some fixes in r_bin_java
* Added r_buf(append/prepend)
* Show flags always in new lines
2011-02-27 20:30:41 +01:00
pancake
e557d9a385 * Drop 'r_cons.h' from r_fs
* Fix visual glitch in Vej and Vt
* Handle demangled names as comments
  - in rabin2 and core->bin_load
  - Needs to be a RAnalCall at some point
  - bin_java calls the dummy r_bin_demangle_java
  - Add R_BIN_NM_ANY enum
* Add asm.lbytes config to align disasm bytes to left
* Fix visual glitch in function boundaries
* Import upgraded versions of the idc2rdb scripts in doc/
2011-02-25 04:19:30 +01:00
Nibble
ddffdff8d2 * Rename r_asm_aop_* to r_asm_op_*
* Rename remaining r_anal_aop_*
2011-02-24 16:50:29 +01:00
Nibble
332524e120 * Rename r_anal_aop_* to r_anal_op_*
--HG--
rename : libr/anal/aop.c => libr/anal/op.c
2011-02-24 14:06:49 +01:00
Nibble
f3c32e3c17 * Remove references to r_vm
* Don't build r_vm
* Deprecate cmd 'av'
2011-02-23 17:27:59 +01:00
pancake
d471bd6da2 * Handle entropy hash type from rahash2 2011-02-16 14:18:31 +01:00
Nibble
ec340164c3 * rax2
- Fix another bug in format_output()
  - Remove unnecessary malloc+free
2011-02-15 23:51:05 +01:00
Nibble
4158466b28 * Fix bug in rax2 related to bin conversion (thx Jan Lieven!) 2011-02-15 18:38:18 +01:00
pancake
f950dcb33c * Add RIOMap in r_core_file_open
- RCore.file_open() now accepts one more arg for offset
  - Fix RIO api issues related to RIOMap and opening multiple files
  - Fix infinite loop and simplify design
  - Added test case to ensure it does not breaks
* Fix build of r_lang in OSX (thanks @capri_x)
* Remove debugging printfs
* io.ffio is now true by default
2011-02-12 01:52:41 +01:00
Nibble
ec68959bd2 * Clean up ranal2 output
- Avoid ugly 0xffff...
2011-02-08 14:07:51 +01:00
Nibble
a906dc18a3 * Fix typo in ranal2 2011-02-08 13:59:50 +01:00
Nibble
ead4e9502f * Simplify type assignment in r_anal
* Include fcn type in 'rabin2 -r' output
2011-02-08 00:15:12 +01:00
pancake
64c4e5c014 * Fix various bugs in r_lang api
- Use RList instead of kernel's list.h
* Initial import of 'vala' plugin
  - Allows to write Vala/Genie scripts
2011-02-06 14:10:16 +01:00
pancake
53587faf25 * Implement rap:// remote radare protocol support
- Fully compatible with radare1
  - Server  $ r2 rap://:9999
  - Client  $ r2 rap://127.0.0.1:9999//etc/fstab
* r_io has been refactorized to support client/server io plugins
  - Requires make clean
* Enhacements in Visual mode:
  - [] keys change scr.cols eval variable (hex columns)
  - Handle offscreen cursor and selection
  - Handle <0 seeking in visual mode
2011-02-05 00:20:28 +01:00
Nibble
7de9646195 * Merge 2011-02-04 14:07:56 +01:00
Nibble
1d83a7ba25 * Some optimizations in r_anal
- bb's are included in fcn struct
  - analyze bb's and fcn's all together
* Update some vapis
* Fix build
2011-02-04 14:03:59 +01:00
pancake
8924841072 * Some more work on r_core_sysenv*
- fix api, but still not using BLOCK or so
* Fix help for ??? and !?
* Upgrade swig/configure.acr to 0.6.9
2011-02-04 11:30:08 +01:00
pancake
9c8aa28a9a * Some better help messages
* Added asm.lineswidth (fixed width for reflines)
* Added 'aoe' stub command
2011-02-03 09:31:50 +01:00
pancake
9cd07bd9d2 * Added r_cons_resize() and _interrupt() RConsEvent callbacks
- Use _resize() from visual mode, so redrawing is now cleaner
* Minor bug fixes
2011-01-23 13:12:16 +01:00
pancake
f92ca2da8a * Fix r_io_redirect and debugger IO
- Get PID from inner struct instead of aliased by fd
2011-01-22 00:57:43 +01:00
earada
2fd808e19b * Fix rafind2 build
* jk visual commands seeks an opcode size
2011-01-21 10:21:04 +01:00
pancake
3ab9e61c22 * Do not show registers if sync fails
* More work on the io refactoring
2011-01-21 09:17:14 +01:00
pancake
bbda7ed61e * Much more fixes for the new r_io
- r_io_malloc plugin is now working
  - r_io_size now accepts only one argument
* Fix nullptr bug in r_fs
2011-01-21 00:21:32 +01:00
pancake
ed8d076cbe * Fix r2 -n, remove r2 -t
- Some more fixes related to r_io. still more stuff to do
2011-01-20 23:28:20 +01:00
pancake
b8b87f050e * Initial working r_fs API with ext2 fs
- Support file reading and directory listing
* Fix build
2011-01-14 01:02:20 +01:00
Nibble
2e26e35584 * Add bb list into RAnalFcn structure
* Analyze bbs per function
* Remove gdiff from radiff2 temporary (deprecate?)
  - Meanwhile ragdiff2 should be used
* Update TODO
2010-12-24 13:27:20 +01:00
Nibble
28d0a62430 * Change gdiff API so it takes 2 core's as args
* Don't output diff info and vars in 'afl' for loc's
* More refactoring of gdiff
2010-12-06 03:34:44 +01:00
Nibble
c254af504f * More optimizations in gdiff
* Fix the usage message of radiff2
2010-12-04 15:24:39 +01:00
Nibble
eb88fa40fc * Set variable direction during function analysis
* Add argument "dir" to r_anal_var_add()
* Fix reg handling in x86im plugin
* Fix variable analysis in r_anal
* Use plugin "x86" in ranal2 by default
2010-11-29 20:06:11 +01:00
Nibble
f0d2279a0e * Little refactoring of rax2 2010-11-29 13:20:44 +01:00
pancake
61cf8cd3aa * Remove unused libr.pc.acr
* Set procmod group in osx make target of r2 bin
2010-11-29 10:27:11 +01:00
pancake
58fc61d486 * Fix overflow (Thanks Adriana for the patch!) 2010-11-29 01:29:21 +01:00
pancake
623d91e678 * Apply Adriana patch with some new shellcodes for rasc2 2010-11-29 01:28:17 +01:00
pancake
cb077db5f2 * Add codesign makefile target for OSX 10.6 2010-11-26 13:11:11 +01:00
pancake
6507ea67b8 * Apply patch from @astralia
- Adds -S and -s flags to rax2
2010-11-25 01:27:27 +01:00
pancake
fdaac4c171 * Implement dbg.bep in r2
* Sync r_bin vapi with changes in r_bin.h
2010-11-18 22:57:28 +01:00
pancake
421208a0c7 * Replace main for binsym in r_bin
* Added dummy commands for r_debug_fork/clone
2010-11-18 11:41:17 +01:00
pancake
6d515cc1a8 * Update and reorder TODO tasks
* Added r_file_mmap() functions in r_util
* Do not hash files bigger than 10MB
* Fix abspath() return value and signature
2010-11-17 21:15:34 +01:00
pancake
0aafe05b45 * Step now accepts pid+tid
* Fix attach in w32 debugger
  - use dpa and get first thread by default
* Mark with asterisks the selected pid/thread (dp/dpt)
* Fix reg_write in w32
2010-11-17 02:31:56 +01:00
Nibble
8df7b217eb * List IO plugins with r2 -L 2010-11-17 01:29:33 +01:00
pancake
4db5cded34 * Fix w32dist find command
* Display TODO message in r2 -L
* Implement rax2 -s - and rax2 -
* Honor dbg->tid in many places
* Implement basic stuff for dbg->reason
  - Only w32 and *nix atm
  - Not yet displayed or used
  - Added many new reason types in enum
* Fix w32 register map
* Handle attach:// in io_w32dbg plugin
* Implement w32 process and thread list
  - You can now select the thread
  > dp      # list pids
  > dp=1424 # attach to pid
  > dpt     # list threads
  > dpt=580 # select thread
* Added dummy code to list windows
2010-11-17 00:56:48 +01:00
Nibble
f0fe6ae4fa * Fix binr build 2010-11-16 19:43:26 +01:00
pancake
cfa24e1879 * Add XML to ldid r2 debugger for iOS
* Fix build of the r2 debugger on darwin-arm
* Implement list of threads and memory regions on darwin-arm
  - just a draft, needs more work
* Add attach:// IO handler to mach plugin
* darwin does not needs -ldl
2010-11-11 01:09:27 +01:00
pancake/n900
9580907a35 * Fix static and nonpic build with no gmp
* Needs to rerun configur-plugins
2010-11-10 10:45:47 +01:00
pancake
aacce16095 * Another fix for nonpic build 2010-11-10 04:00:49 +01:00
pancake
a6629c610c * Fix static compilation on Linux systems
- Not really portable, needs some work to fix w32 build
2010-11-10 03:55:27 +01:00
pancake
3a44d471f4 * Fixes for pkgconfig and vapi deps
* Apply patch from @astralia for rax2
  - support int->bin and bin->int
2010-11-04 13:19:36 +01:00
pancake
23e6bfb679 * Add manpages for rarc2 rarc2-tool ranal2
* Use the library symlinking layout as reported by Debian
2010-10-27 22:17:55 +02:00
Nibble
a3ff1f5261 * Fix initial seek in debug mode to pc (use sr pc)
* Complete 's' help
* Fix dietline echo in 'r2 -v' mode
  - Add cb for scr.prompt
2010-10-27 17:45:53 +02:00
Nibble
c79afe3568 * Add var vm.arch
* Fix vm arch setup at startup
* Fix flag set in visual mode when cursor is enabled
* Filter string names before adding flags in r_bin_load
* Fix r_flag_name_filter (do trim)
* Fix r_sys_rmkdir
* Update TODO
2010-10-23 14:27:13 +02:00
pancake
431e626680 * Fix $$$ variable
* Do not set io.va twice
2010-10-22 01:16:32 +02:00
pancake
7592a5e2ba * Fix build of rarc2 on w32 2010-10-19 13:57:00 +02:00
pancake
f9e6ca28cf * Fixes in swig/ for OS type selection
* Move rsc2 into binr/

--HG--
rename : rsc2/rsc2.c => binr/rsc2/rsc2.c
rename : rsc2/scripts/intel2att => binr/rsc2/scripts/intel2att
2010-10-18 20:47:13 +02:00
Nibble
bfbd12ed3c * Don't add symbols as functions before analyze them
* Update and simplify gdiff
2010-10-13 18:51:10 +02:00
Nibble
11e8d6a1da * Fix va issue in dbg mode 2010-10-13 01:23:27 +02:00
pancake
01b56da424 * Remove -l flag in rarc2
- Replaced by rarc2 -a
* Fix build
2010-10-13 00:43:02 +02:00
pancake
f1e46a88f6 * Do not run .!rabin2 from r_core
- Use internal APIs to load binary information
  - Startup time reduced about 2-3 times
  - Thanks @earada for this patch!
2010-10-11 17:11:43 +02:00
pancake
f99e946b9b * Initial import of rasc2 (copypasta from r1) 2010-10-04 19:43:40 +02:00
Nibble
836c91c32a * r_util
- Fix r_sys_rmkdir
* rabin2
  - Generate folder structure on extract operations
2010-10-04 13:57:48 +02:00
pancake
e8f8e72896 * Added r_bin_get_object() to cache binary information
* Initial work in r_core_bin_load()
  - Integrating rabin2 inside core
2010-10-04 10:55:43 +02:00
Nibble
a1d0887ca8 * Fix build (update core/anal.c with the last changes in r_bin)
* Implement extract in rabin2
2010-10-04 04:01:25 +02:00
Nibble
cec1f3fa73 * r_bin
- Refactor r_bin to work better with big fatbins
  - Don't load all sub-bins in memory
    Only load the fatbin and the selected sub-bin
  - Add r_bin_set_archidx() and r_bin_list_archs()
  - Update t/{rpathdel.c, test_meta.c}
* rabin2
  - Use '-f str' to select sub-bin by name
2010-10-04 03:46:58 +02:00
pancake
ee39ba239a * Add 'FS' #define for w32 and *nix
* Add support for thumb mode ARM disassembler
  - Workaround a warning in r_vm for arm-16
* More work on drx.c, but still not integrated
2010-10-04 00:42:11 +02:00
Nibble
48dd408e45 * Merge
* Minor fixes in r_bin
2010-10-01 11:58:11 +02:00
pancake
8081f02601 * Fix uninitialized variable in rabin2
* Fix null pointer handling in rbin when no xtr plugin found
* Initial draft code for the x86 debug registers implementation
* Fix avr* command
2010-10-01 11:10:59 +02:00
Nibble
41bd2fd0ea * rabin2
- Show filesize in '-x' output
  - Select "sub-bin" using '-a arch_bits' and '-n filename'
* r_bin
  - Add argument "name" to r_bin_set_arch
2010-10-01 10:09:50 +02:00
Nibble
4b558bec3b * rabin2 -x uses filename.arch_bits as output file
* store full path in dyld cache filenames
2010-10-01 08:12:43 +02:00
Nibble
987d8599f9 * Initial implementation of the RBin extractor for dyld cache
* Add bin_xtr_dyldcache to plugins.def.cfg
* Show bin name in the output of 'rabin2 -A'
* Minor fix in rabin_list_archs() in rabin2
2010-10-01 04:26:52 +02:00
Nibble
eb811bbf08 * r_core
- Deprecate ah and add anal.plugin
  - e anal.plugin=? list available plugins
  - Add the command 'ar' to handle refs/xrefs
  - Remove old CX and Cx stuff
  - Remove afg (done by af)
* r_anal (& r_meta)
  - Remove refs/xrefs stuff from r_meta
  - Handle refs from r_anal
  - Add r_anal_ref_{add, del}
* rabin2
  - Add 'e anal.plugin' to the output of rabin2 -Ir
2010-09-28 13:58:03 +02:00
pancake
3ef71b106a * Indentation fixes in rax2 as discused in chat
* Fix compilation of vapi/r_bin
* Some mods in test programs for swig/python
2010-09-26 03:18:04 +02:00
Nibble
0a09b20cc0 * rabin2
- Make -A output more verbose
  - Dump all archs with -x when no one is specified using -a
* cleanup TODO
2010-09-25 12:33:30 +02:00
Nibble
333fbbf55b * rabin2
- Set arch with 'rabin2 -a arch_bits filename'
  - Remove flag -B
  - Implement extract (-x)
2010-09-25 03:45:03 +02:00
Nibble
483ab6160b Apply @earada's patch (thx!)
* 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.
2010-09-24 21:25:23 +02:00
Nibble
793dae395d * Massive refactoring of r_bin
- Add support for fatbins (currently only fatmach0)
  - Minimize creation of r_buffers
* rabin2
  - Add flag -A for listing archs
  - Add flags -a and -B for selecting arch
  - In the next commit -A and -B will be removed and -a will work
    with the following format:
    [-a arch bits] for selecting arch
	[-a] for listing them

--HG--
rename : libr/bin/p/bin_fatmach0.c => libr/bin/p/bin_xtr_fatmach0.c
2010-09-24 21:23:13 +02:00
pancake
124786c1ac * Added 'drd' command to show only modified regs
* Added r_list_foreach_prev()
* Add RSyscallPort to handle Hardware I/O ports
* Remove libr/TODO and refactor /TODO
* Link with 'ld' in rarc2-tool for nasm
2010-09-24 16:45:56 +02:00
pancake
54677585c2 * Added support for 'nasm' in rarc2 (-n) 2010-09-24 06:10:20 +02:00
pancake
90a2b9f84a * Initial support for multiple arguments in rarc2 for ARM
- Some more fixes in the ARM emitter backend
  - Single quoted strings are now supported, not filtered
  - Fix math opcode names for ARM
  - Added support for /**/ and // comments
* Fix makefile for test programs in rarc2/t
  - Added simple hello world for tests in rarc2/t
2010-09-16 20:44:22 +02:00
pancake
6072a14eef * Simplify and fix rarc2-tool script
* Add support for /**/ style comments in rarc2
* Fix libr2.a warning message
* Fix .string "" directive in rasm2
  - Now works like in GAS. escape chars are handled
  - and quotes are stripped
2010-09-15 13:10:10 +02:00
pancake
9b2d428d1b * Initial hello world for rarc2 in ARM with GAS working
- Few changes needed to work with rasm
* Cleanup some warnings
* Handle foo() as a function definition, so emit frame in rarc
2010-09-15 10:50:43 +02:00
pancake
1b1599c6df * Support for some push/pop arm opcodes with 2 regs
* More fixes for rarc2 on ARM
* Implement .fill directive in r_asm
* Added asm.profile in r_core
* Added r_str_bits as a helper to display register flags
2010-09-14 11:22:31 +02:00
pancake
a9f8d52e59 * Many fixes in ARM assembler and rarc2 support for ARM
- Still not yet usable, but
* Add .byte and .hex in r_asm as directives
* Add test case for r_word api
  - Fix r_word_count()
* Also handle .globl (and .global) to keep GAS compatibility
  - TODO: add .word .fill .align and others
2010-09-14 01:29:09 +02:00
Nibble
5733497a0b * Add bindings for go
* Add swig/go/test-r_bin.go for testing r_bin from go
* Fix build for r_bp and r_search bindings
* Rename enum VarType to VarClass in r_anal.vapi to avoid conflicts
* Add flag -R to rabin_cmd in r2 start up
2010-09-12 12:31:18 +02:00
pancake
f4ada2309f * Handle numeric values as radix=10 by default in ollyasm
- Fixes rarc ATT output format for x86
* Fix commandline flags parsing in rarc2
  - Honor intel syntax with ".intel_syntax noprefix" header
    - GAS can now compile att and intel syntax rarc2 output
* Handle .intel_syntax and .att_syntax directives in rasm2
2010-09-10 13:17:24 +02:00
Nibble
5567da9538 * Add support for parsing relocs to r_bin
* Add flag -R to rabin2 to list relocs
* Implement reloc resolution in r_bin_elf for 32 & 64 bits
2010-09-10 11:11:38 +02:00
pancake
2d2131607c * Error on invalid hexpair strings in rasm2
* Fix assemble of str/ldr opcodes in ARM assembler
  - add more opcodes: nop, push, pop
2010-09-10 10:50:53 +02:00
pancake
a7e77e78ee * More work on the arm assembler 2010-09-09 01:39:15 +02:00
pancake
183dffcd6b * Fix push immediate opcode analysis in basic x86 analysis
* Import simple arm assembler
* Some fixes for the brainfuck disassembler plugin
2010-09-08 19:49:34 +02:00