Commit graph

1188 commits

Author SHA1 Message Date
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
Nibble
3455c738df * Fix -e in rasm2 2010-09-08 12:35:38 +02:00
pancake
62935fe017 * Missing build dependency 2010-09-06 16:14:37 +02:00
Nibble
f7693a14d2 * Huge refactoring of anal_x86_x86im
* Add comments in anal_x86_x86im explaining how x86im parse the opcodes
* Implement analysis for more opcodes
* Rename R_ANAL_OP_TYPE_RCALL into R_ANAL_OP_TYPE_UCALL (more generic)
* Update anal_mips.c and r_anal.vapi
* Update TODO
2010-09-05 21:20:56 +02:00
Nibble
98a09ecd52 * ranal2
- Add stackop2str() and optype2str()
  - Output op type
* r_anal
  - Fix fcn analysis
  - Remove test_anal.sh
2010-08-25 02:27:42 +02:00
Nibble
aed141180e * ranal2
- Move t/test_anal to binr/ranal2
  - Add support for static/dynamic plugins
  - Add flag '-B' for binary input
  - Add support for ascci hexpairs
  - Now input can be given through argv or stdin
  - Output analyzed bytes
* r_asm & r_anal
  - Improve output of r_*_list

--HG--
rename : libr/anal/t/test_anal.c => binr/ranal2/ranal2.c
2010-08-24 22:16:03 +02:00
pancake
895d947f49 * Fix build 2010-08-23 12:50:19 +02:00
pancake
3abfbe418d * Swap file-offset order in visual prompt
* Fix build
2010-08-23 12:39:00 +02:00
pancake
eb0ce8208d * Initial implementation of '=' command
- Deprecate the useless '|' one
* Added rap.loop config var to wait for connections in loop
* All data operations in rap are now bounded to RMT_MAX
* Protocol implementation compatible with r1
  - Many endian hacks.. must take care of
* Use blocking operations for reading network packets
2010-08-23 06:39:23 +02:00
pancake
4d50a86855 * Initial implementation of the rap:// IO plugin
- RMT packet descriptions are in r_io
  - io.rap plugin is now compiled by default.
    $ rm -f plugins.cfg
    $ ./configure-plugins
* Some syntax fixes in r_vm
* RCore.r_core_server() method uses r_io_is_listener() to wait for connections
* Some minor fixes in r_socket
  - Add r_socket_read_block() fixes SIGPIPE and network issues
2010-08-22 21:42:08 +02:00
pancake
b6cc9ca1ba * Merge r_meta inside r_anal
* Display filename in title line of Visual mode

--HG--
rename : libr/meta/README => libr/anal/README.meta
rename : libr/meta/meta.c => libr/anal/meta.c
rename : libr/meta/t/test.c => libr/anal/t/test_meta.c
rename : libr/meta/type.c => libr/anal/type.c
2010-08-20 00:36:22 +02:00
Nibble
283c2efef9 * rabin2
- Add flag -n to filter by {symbol, import, section} name
* r_core
  - dmi accepts argument symname
  - more work on cmd parsing
2010-08-17 13:15:18 +02:00
pancake
3287f8d64d * Filter string to avoid escaped commands execution (r_str_unscape)
* More chars filtered in rabin2 -z (flag ..)
* Parse PLT in order to find matching ordinal in rgot.vala
2010-08-16 14:58:10 +02:00
Nibble
6727897e73 * rabin2
- Add flag -b to set a custom baddr
* r_core
  - Add command 'dmi' to flag the symbols of a given lib in memory
2010-08-16 14:35:15 +02:00
Nibble
28ef002c21 * Fill field 'ordinal' in elf symbols 2010-08-16 01:14:54 +02:00
pancake
b7dbae4ebb * Display '*' in S= where you are
* Add note about the bug in io.va/-d/rabin2-r{v}S
* Fix rarc2/t
2010-08-15 21:30:59 +02:00
Nibble
a7750b3204 * r_anal
- Add field at to RAnalRef
  - Set ref->at to the addrees of the opcode which does the
    jump/call
  - Set correctly the xrefs "from" address
* r_core
  - Modify afl to accept an optional argument [fcn name] to
    filter output by function
  - Change afl output to group xrefs by type (code and data)
2010-08-02 12:42:59 +02:00
Nibble
d094f42d2f * r_bin
- Fill RBinImport->size within bin plugins
  - Add field size to RBinImport
* r_bin_elf
  - Correct value of r_bin_elf_symbol_t->size for imports
* rabin2
  - Output af+ command in radare mode
* Update TODO
2010-08-01 11:02:55 +02:00
Nibble
62e24bd0c6 * r_bin_fatmach0
- Huge refactoring of r_bin_fatmach0
* rabin2
  - Don't print msg "n bins extracted" in radare mode
2010-07-29 18:15:02 +02:00
Nibble
bb8cfd866d * r_bin
- Add function r_bin_extract()
  - Add lib r_bin_fatmach0 into format/mach0/
  - Complete mach0_specs with fat mach-o stuff
  - Add plugin bin_fatmach0
  - Initial import of mach-ex into r_bin
  - Remove mach-ex
* rabin2
  - Add flag -x for extracting bins from file
* Build
  - Update plugins.def.cfg
  - Remove mach-ex stuff from libr/Makefile
2010-07-29 16:04:18 +02:00
Nibble
344bcf16a6 * Fix build 2010-07-23 12:19:39 +02:00
pancake
894202db16 * Fix creation of ~/.radare2/rdb and r2 -p (Thanks edu!)
* Re-run ./configure-plugins if .def.cfg is newer than .cfg
* Documentate build instructions of the TestRBin.java
* Sync TODO and ChangeLog
2010-07-23 01:15:03 +02:00
pancake
2f09509630 * Fail when binr build fails somewhere
* userconf R2_VERSION
* Implement some more # hashing algorithms
2010-07-15 13:34:53 +02:00
Nibble
3131a9a7cf * Speed up make mrproper 2010-07-13 11:59:55 +02:00
pancake
5f10d6ba64 * r2 -n does not load rabin2 information
* Implemented search.align
  - Affects RPrint->addrmod and RSearch->align
* Use r_search_reset() instead of r_search_new()
* typedef RConfigCallback
* r_sys_bt renamed to r_sys_backtrace
2010-06-30 02:30:07 +02:00
pancake
3c7610bd9f * Some enhacements for rarc2.
- Add -s flag to use att syntax instead of intel one
  - Flag -A is the new -a (show selected arch)
  - Some more work on the arm code generation backend
  - Simplify some code (-58LOC)
  - Finish manpage rarc2(1)
2010-06-29 16:50:15 +02:00
pancake
affbba8aa2 * Rename r2rc to rarc2
- Moved into binr/rarc2
  - Integrated with symstall
  - rarc2-tool now support -xc and -cx combo
  - Add rarc2.1 manpage
* Add some bugs to review in TODO

--HG--
rename : r2rc/Makefile => binr/rarc2/Makefile
rename : r2rc/README => binr/rarc2/README
rename : r2rc/TODO => binr/rarc2/TODO
rename : r2rc/emit_arm.c => binr/rarc2/emit_arm.c
rename : r2rc/emit_x64.c => binr/rarc2/emit_x64.c
rename : r2rc/emit_x86.c => binr/rarc2/emit_x86.c
rename : r2rc/i/libc.r => binr/rarc2/i/libc.r
rename : r2rc/i/socket.r => binr/rarc2/i/socket.r
rename : r2rc/out.c => binr/rarc2/out.c
rename : r2rc/r2rc-tool => binr/rarc2/rarc2-tool
rename : r2rc/r2rc.c => binr/rarc2/rarc2.c
rename : r2rc/rcc.h => binr/rarc2/rarc2.h
rename : r2rc/t/Makefile => binr/rarc2/t/Makefile
rename : r2rc/t/argv.r => binr/rarc2/t/argv.r
rename : r2rc/t/bytedump.r => binr/rarc2/t/bytedump.r
rename : r2rc/t/data.r => binr/rarc2/t/data.r
rename : r2rc/t/dump.r => binr/rarc2/t/dump.r
rename : r2rc/t/hello.r => binr/rarc2/t/hello.r
rename : r2rc/t/if.r => binr/rarc2/t/if.r
rename : r2rc/t/inline.r => binr/rarc2/t/inline.r
rename : r2rc/t/input.r => binr/rarc2/t/input.r
rename : r2rc/t/loop.r => binr/rarc2/t/loop.r
rename : r2rc/t/ptr.r => binr/rarc2/t/ptr.r
rename : r2rc/t/rawsys.r => binr/rarc2/t/rawsys.r
rename : r2rc/t/rawsys64.r => binr/rarc2/t/rawsys64.r
rename : r2rc/t/regs.r => binr/rarc2/t/regs.r
rename : r2rc/t/ret.r => binr/rarc2/t/ret.r
rename : r2rc/t/room.r => binr/rarc2/t/room.r
rename : r2rc/t/segfault.r => binr/rarc2/t/segfault.r
rename : r2rc/t/shell.r => binr/rarc2/t/shell.r
rename : r2rc/t/sub.r => binr/rarc2/t/sub.r
rename : r2rc/t/syscall.r => binr/rarc2/t/syscall.r
rename : r2rc/test.r => binr/rarc2/test.r
2010-06-28 20:30:20 +02:00
pancake
cb5f4f26da * Fix segfault in osx 2010-06-27 22:15:44 +02:00
pancake
e101e5023d * Fix build on mingw32 2010-06-27 22:14:06 +02:00
pancake
7ff20e59db * Add -t flag to launch rabin2 in a thread
* Fix ^D using threaded load
* Only load rabin info when no project file exists
* r_core_project_open does not works on directories now
* Sync r_core.vapi
2010-06-24 23:14:12 +02:00
pancake
37c3e25664 * RCore now depends on RThread
- Loads rabin2 information in a background thread
  - Prompt is now much more responsive
  - Fix segfault in null pointered var in RThread
* rabin2 load strings only from data sections if found
* Split r_core_prompt/exec (make it cooperative-thread-friendly)
2010-06-23 17:30:16 +02:00
pancake
5748a66278 * Fix segfault in stepover in non-debugger mode
* Check if file exists before launching rabin to avoid noisy messages
* Disable io.va when using the debugger
* io.va is now enabled by default (static-analysis-friendly)
2010-06-22 20:27:14 +02:00
pancake
790491a707 * Added basic guidelines in TODO.decompiler
* r2 now support -s and -b with ut64/ut32 offsets
* Remove 'goto' statement
2010-06-21 21:08:43 +02:00
pancake
ace71e8be4 * Load string flags into r2
- 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
2010-06-21 00:48:06 +02:00
pancake
276f186e7e * Add rafind2.1 manpage
* Many cleanups in the TODO files
2010-06-18 17:52:30 +02:00
Nibble
3eb855f6c4 * r_bin
- Rename characteristics into srwx
  - Fix ref to binmain in the pe64 plugin
* r_bin_pe
  - Rename section.characteristics into section.flags like in
    the other formats
2010-06-17 18:45:27 +02:00
pancake
c528edf318 * Link r_reg when r_anal 2010-06-17 00:04:57 +02:00
Nibble
414f5a38bc * More fixes on build system
- 'make mrproper' now works like 'hg purge --all'
  - More fixes on 'make clean'
  - Remove some missing -Wl,-R
2010-06-15 14:10:42 +02:00
Nibble
19dfb38b23 * r_core
- Fix segfault (pancake)
* Build
  - Remove rpath stuff
  - Simplify Makefiles
  - Add rafind2 to binr/Makefile
  - Add symstall to binr and r2rc
  - Fix minor deinstall issues
2010-06-15 13:10:46 +02:00
Nibble
2d81aabbd5 * Fix the build of radare2 and radiff2
* Remove r_line dep from cons/t/Makefile
* Build r_cons before r_line in libr/Makefile
2010-06-15 01:23:34 +02:00
pancake
16089bb6e9 * Fix build of binr/
- Some missing deps everywhere
* Initial work for RAnalCond
2010-06-15 00:46:18 +02:00
Nibble
68aeb6f92a * Add targets clean & mrproper to binr/Makefile
* Use r_list_free instead of r_list_destroy in r_anal
* Some minor fixups in r_anal
2010-06-14 18:29:52 +02:00
pancake
d27e461811 * Fix linking issues reported by matalaz (Thanks!) 2010-06-06 23:26:11 +02:00
pancake
b7c554b24a * Some linkage fixes for binr/
* Added 'at' command (not yet implemented at all)
  - Some refactoring in r_debug_trace code
  - Remove deprecated r_trace.h
2010-06-04 00:56:44 +02:00
pancake
fdb0cf4229 * Do not warn in r_lib until R_DEBUG env is defined 2010-06-03 10:57:34 +02:00
Nibble
c63963c598 * Fix binr/Makefile (thanks jan! :) 2010-05-31 19:59:31 +02:00
Nibble
fcc6b8d013 * Add flag -M to rabin2 at radare2 startup and cg
* Add r_asm_mdisassemble_hexstr
* Update r_asm.vapi
2010-05-30 13:00:21 +02:00
Nibble
2f43431e80 * r_bin
- Add r_bin_get_main
  - Implement get_main for elf32 & elf64
  - Rename RBinEntry to RBinAddr
* rabin2
  - Add flag -M to output main offset and va
* bindings
  - Update r_bin.vapi
  - Minor fixup in r_util.vapi
2010-05-30 06:06:25 +02:00
pancake
64c329d297 * More work for 'binr'. Hopefully everything is done now :) 2010-05-29 13:24:47 +02:00
pancake
eb05e6a6b2 * Move all the r2 programs into binr/
- Little cleanup of the build system
2010-05-29 03:30:36 +02:00
pancake
49f09cc421 * Initial refactor to build libr bins (binr) out of libr
- Cleaner build/install
2010-05-28 17:15:20 +02:00