Commit Graph

190 Commits

Author SHA1 Message Date
pancake
8a2e418ca2 * Add not-yet-used 'RAnalBlock->type' field
* Added r_list_length() method
* Add missing enums in RAnal
2010-05-21 17:35:05 +02:00
pancake
02c11613ec * Clean TODO files
* Rename refactorization in RAnal
  - Fix compilation of vala test programs
  - RAnalBB -> RAnalBlock, RAnalAop -> RAnalOp, ...
  - sync vapis
2010-05-21 01:46:26 +02:00
Nibble
7abcfe6852 * Refactoring
- Remove all init functions (included in _new)
  - Update vapi's (needs more work)
2010-05-20 17:40:58 +02:00
Nibble
7184530c8a * r_anal
- Add 'st64 stackptr' to RAnalAop
    (avoids pb with 'push imm' where aop.value=imm and simplifies code)
  - Fix stackframe analysis detecting reg size
  - Update old x86 plugin
* r_core
  - Little refactoring of stackframe stuff
2010-05-19 03:55:20 +02:00
pancake
b8e98f3a00 * Add bb_list() method to RAnalFcn class
* Handle function boundaries in 'pd'
* Reset stack_ptr=0 when leaving a function body
* Fix 'asm.bytes=false' (display flags as newlines)
* Fix 's+' and 's-' (seek redo, seek undo)
  - Bindied in visual mode as 'u' and 'U' keys
  - Added 's*' command to list seeking history
* Add dummy file.md5 eval var
  - TODO: must be done by rabin2 and checked by project file
2010-05-19 02:39:01 +02:00
Nibble
8ff37cd30b * r_anal
- Add r_anal_strmask
  - Add nopcode (opcode count) to RAnalAop
* r_util
  - Fix constant types in r_types_base
* Add r_anal stuff to TODO
2010-05-16 14:04:08 +02:00
Nibble
6759768392 * r_anal
- 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
2010-05-14 23:04:10 +02:00
Nibble
5e0b5c5e4c * Fix jmps in anal_x86_x86im
* Fix bug in r_hex_bin_truncate with negative values
* Add new limits into r_types_base.h
2010-05-07 13:00:52 +02:00
Nibble
96187da91d * More work on x86im plugin (vars detection needs more love)
* Fix segfault in sys.c
* Add r_hex_bin_truncate() to r_util
2010-05-06 20:24:16 +02:00
Nibble
f5b31aab25 * Add anal/t/test_x86im.c to speed up the development of the
x86im plugin
* Some fixups in anal_x86_x86im
2010-05-06 13:06:51 +02:00
Nibble
c72c17ed45 * More work on x86im plugin 2010-05-04 17:17:46 +02:00
Nibble
9ae4ba7cc8 * Remove hardcoded stuff from 'ao'
* Initial working version of x86im plugin
  - graphs can be generated using the plugin
  - basic code analysis is working too
  - Next step is adding support for some missing opcodes
* Fix x86im makefile
2010-05-03 19:52:27 +02:00
Nibble
5c3c8e70c6 * Initial import of x86im (by pluf) into 'x86/x86im/'
* Add dummy ranal plugin for x86im
* Move dislen stuff to 'x86/dislen/'
* Add "import msdn" to TODO.refactoring

--HG--
rename : libr/anal/arch/x86/dislen.c => libr/anal/arch/x86/dislen/dislen.c
rename : libr/anal/arch/x86/dislen.h => libr/anal/arch/x86/dislen/dislen.h
2010-05-03 12:37:51 +02:00
pancake
c552863cef * Initial refactoring work for 'pd' and 'pD' commands
- Colorize bytes and offset when scr.color=true
  - Still needs to be moved to r_print
  - Needs cleanup, optimization and simplification
2010-04-14 22:28:45 +02:00
pancake
34435b1285 * Mental note: %lld/%llx does not exist on windows
- Use the macro PFMT64{xod} in case
2010-04-14 13:02:23 +02:00
Nibble
9207ece839 * Fix segfault printing big buffers
* Modify r_anal_reflines_str to return char*
2010-04-08 18:29:46 +02:00
Nibble
d8cb940a9d * Initial refactoring of r_anal & r_core 2010-04-07 13:43:50 +02:00
pancake
6e6dbf5b81 * Some fixes in code analysis
- Fix some issues for 64bit instructions in z0mbie dislen
* Fix EOF, ^D and terminal resize
  - Do not understand terminal resize as EOF
* Display rpathstrip lines to identify segfaults
* Implement 'ao' command to analyze opcodes
2010-03-26 17:01:25 +01:00
pancake
728bd1f817 * Fix w32 build 2010-03-25 10:18:59 +01:00
pancake
a5d4166cf5 * Fix compilation of r_lang vapi for valadoc
* Fix valadoc visualization and update radare.org/vdoc
* Added 'agc' command to draw graphviz graph of calls
* Remove some unused flush calls in various 'ag' commands
2010-03-24 01:24:27 +01:00
pancake
ea5413f760 * Added csr code analysis plugin
- Cleaned up version from r1 code
  - Build asm.csr and anal.csr by default
* Added 'dsu' command. step until
* Remove vala and swig checks in configure.acr

--HG--
rename : libr/asm/arch/csr/csr_disasm/dis.c => libr/asm/arch/csr/dis.c
rename : libr/asm/arch/csr/csr_disasm/dis.h => libr/asm/arch/csr/dis.h
2010-03-23 12:30:04 +01:00
pancake
6d6ede7ee6 * Disassemble branch-in-the-middle instructions
- Uses reflines code analysis to get some hints
* Rename RAnalysis into RAnal
2010-03-19 12:00:04 +01:00
Nibble
e834fc9c9b * r_anal
- Fix aop->addr asignment in plugins
* r_core
  - Add commands 'agl' and 'agfl' that output graphs with meta-data
2010-03-15 19:47:26 +01:00
pancake
3da650d4b1 * Write and install manpages
* 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
2010-03-12 18:46:11 +01:00
Nibble
9af6794cec * Rename MALLOC_STRUCT into R_NEW and deprecate it. 2010-03-12 13:35:10 +01:00
Nibble
21add09f5d * r_anal
- Fix local var / arg analysis
  - Add some opcodes to p/anal_x86.c
* r_util
  - Add macro r_num_abs
2010-03-12 12:15:35 +01:00
Nibble
e12bcd1f3b * r_core_anal
- List vars in 'afl' output
* r_anal
  - Add r_anal_var_type_to_str
  - Use hex delta in var names
2010-03-12 11:07:05 +01:00
Nibble
6d7184a1d6 * Build
- Remove r_var from libr.pc.acr
* r_anal
  - Rename the var typename to name in order to avoid problems
    with the c++ code generated by swig
2010-03-12 03:24:38 +01:00
Nibble
9a1f1bc44c * r_anal
- Split anal.c in several files
    (bb.c, aop.c, var.c...)
2010-03-12 03:05:20 +01:00
Nibble
071aaf0a4e * r_anal
- More work on r_anal_var API
  - Initial working implementation of r_anal_var
  - Avoid duplicated refs
2010-03-12 02:45:24 +01:00
Nibble
57be33ff76 * Build
- Remove remaining r_var.pc.acr
  - Remove references to r_var from configure.acr
* r_anal
  - More work on r_anal_var_*
2010-03-11 19:52:05 +01:00
Nibble
d05b0fedf4 * r_anal
- Initial work in var analysis
  - Move r_var into r_anal
* r_var
  - Removed

--HG--
rename : libr/var/var.c => libr/anal/var.c
2010-03-11 17:19:33 +01:00
pancake
7572171516 * Add dbg.stopthreads configuration variable
- Stop all threads by default when a breakpoint is handled
2010-03-11 00:51:32 +01:00
Nibble
6303a8d10b * Remove references to bea plugins from r_anal & r_asm 2010-03-10 15:15:50 +01:00
Nibble
35592a60e9 * r_asm
- Move ppc_disasm and x86_bea to radare2-extras
  - Add gnu ppc disassembler plugin
* r_anal
  - Move x86_bea plugin to radare2-extras
2010-03-10 14:56:45 +01:00
Nibble
7e5e81e3cd * r_list
- Fix r_list_foreach
* r_anal
  - Move p/arm.h to arch/arm/arm.h
  - Add arm.mk to p/Makefile
* r_core_anal & r_anal
  - Refactoring using r_list_foreach

--HG--
rename : libr/anal/p/arm.h => libr/anal/arch/arm/arm.h
2010-03-08 12:31:14 +01:00
pancake
1914c38729 * Added missing arm.h 2010-03-08 11:05:58 +01:00
pancake
023bcce689 * Added copypasta 'arm' code analysis for r_anal 2010-03-08 10:53:15 +01:00
Nibble
420acc3ff3 * Add dummy local-var analysis stuff to r_anal
* Check return value of r_anal_set_bits in asm.bits callback
2010-03-07 14:00:26 +01:00
Nibble
bf2a8120ea * r_core
- Set r_anal bits in asm.bits callback
* r_core_anal
  - Improve xref resolution
* r_anal
  - Fix infinite loops in r_anal_bb and r_anal_fcn
  - Some code cleanup in bea plugin
  - More improvements in code analysis
* r_bin
  - Mark symbols as functions in r_bin_pe
* rabin2
  - Print 'af+' commands and 'fcn.' flags for all functions
    in -rsi output
2010-03-05 18:55:39 +01:00
Nibble
f163a08aea * r_anal
- Add r_anal_fcn
* r_core
  - Implement 'af' subcommands
  - 'af @ [addr]' needs more work
2010-03-03 12:08:27 +01:00
Nibble
1038c46565 * r_core_anal
- Avoid bb overlapping
  - Code refactoring
* r_anal
  - Add r_anal_split and r_anal_overlap
2010-03-01 16:50:37 +01:00
Nibble
cbb5fe143b * r_anal
- Update build system
  - Fix analysis of bb longer than blocksize
  - Code cleanup
* build
  - Add anal plugins to plugins.def.cfg
2010-02-28 20:07:36 +01:00
Nibble
6ff04b0869 * r_list
- Fix r_list_unlink
  - Add r_list_split and r_list_split_iter
* r_core_anal
  - Split basicblocks (only 1 entrypoint and 1 exitpoint)
* r_anal
  - Add field addr to RAnalysisAop
2010-02-27 15:56:07 +01:00
Nibble
ee4ef8fa91 * Fix BB analysis algorithm
* Add r_core_anal_graph function
  - Generates graphviz code from "ac" data
* Add command "ag" to r2 (Output graphviz code)
2010-02-27 11:56:41 +01:00
Nibble
a0c28f1394 * More work on r_anal
- Basic Block analysis is working
2010-02-26 21:00:03 +01:00
Nibble
54e804eec9 * Fix r2 build
- Add CFLAGS+=-DCORELIB in libr/cmd/Makefile
  - Add target all in r2rc/Makefile
* r_core
  - Add dummy command ac (stands for analyze code)
* r_anal
  - Reorganize code
  - Add function r_anal_bbs (not working yet)
2010-02-26 13:08:42 +01:00
pancake/imac
edb48945b7 * Added DEFAULT_ARCH for mips and powerpc
* Refactoring in r_anal API for _aop() with addr and length
  - Added ppc code analysis plugin
  - sync in r_core
* cfg.ffio->io.ffio
* Add CMD type in r_lib
* Added SR register type
* More stuff is now working in osx-ppc debugger
* Random code cleanup
2010-02-22 04:02:13 +01:00
pancake/imac
9890c6e8b0 * Fix build in OSX
- 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
2010-02-21 20:21:36 +01:00
pancake
f343c4d74f * Fix delta seeking (do not allow seeks <0)
* 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
2010-02-02 11:09:52 +01:00
pancake
f974fea7da * Many fixes in r_io and r_anal from r_core
- Reference code lines are displayed again
  - Optimize the open_as method of RIo
  - Do not use R_XXX_NAME() macros anymore. simplify!
  - Add 'ah' command to select the handler
* Do not allow to seek on unreadable addresses
  - Warns a lot but its better. More strict
* SEEK_END is now UT64_MAX. Fear
2010-01-31 02:30:59 +01:00
pancake
7ce3232747 * Build all pkgconfig files (fixes valaswig stuff)
* Split some install targets
* Fix segfault in r_anal when not setting any handler
* Rename R_ASM_SYN -> R_ASM_SYNTAX cprefix
  - R_ASM_*_NULL -> R_ASM_*_NONE
* Added nonworking scr.html eval key in r_core/config
* Add install-ruby target for swig bindings
* Use @VERSION@ in libr.pc.acr
* Lot of fixes for valaswig integration
2010-01-25 11:54:25 +01:00
pancake
3d667dbdd9 * Many bug fixes for the build. Oops 2010-01-15 01:56:43 +01:00
pancake
8ba7b6b043 * Many build fixes for mingw32
- See doc/windows
* Rename config.mk to global.mk
  - Avoid name collision (cascade includes in rules.mk)
* Added ${EXT_EXE} in some test program directories
* Split rules.mk into config.mk
  - Some scripts just need to get the environ (config.mk)
  - They dont need the rules

--HG--
rename : config.mk => global.mk
2010-01-15 01:32:28 +01:00
pancake
ec4673b6e1 * Fix build of libr/vapi/t and some bugs in vapis
* Fix some minor random warnings
2010-01-07 22:26:03 +01:00
pancake
78dbab76d6 * Added basic working example in swig-python for r_util
* Add _write and _puts methods for r_socket api
  - fgets -> gets
  - fix r_socket_printf
* More random fixes
* typedef all structures in r_util
2009-12-22 13:27:43 +01:00
pancake/fluendo
1ac990a330 * Fix build 2009-11-23 17:49:40 +01:00
pancake
deb263a5fb * Apply whats's patch fixing r_search for stripstr
- 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
2009-10-12 17:41:52 +02:00
pancake
8579a5b41f * Release version to 0.3
- Propagate @VERSION@ from ACR
  - All *2 apps are now supporting a -V flag to show the version
* Fix .dr* command in r_core debugger
  - dr now supports [regtype] [bitsize] arguments
  - Check dr? for help
* Added some 8, 16 bit registers to the dbg.ptrace backend
  - Just for testing :)
* Check build of the whole source tree
  - test programs are now in ${prefix}/bin/libr-test
* Fix lot of warnings and bugs
* Simplify some code
* Some rapification
* Fix segfault in r_reg related to unallocated arenas
  - New function r_reg_type_by_name() resolves string->id
* Fix help of rax2
2009-09-25 04:04:51 +02:00
pancake
1aadbea576 * Some more random refactoring on r_debug and r_reg
* Added support for bit level hash algorithm selection
  - Integrate it with rahash2
  - Needs some cleanup of spagheti mess
  - All hash algorithms are now supported in a shot :)
  - R_APIfy r_hash
2009-09-15 00:06:37 +02:00
pancake
f1c9c1e778 * Some malloc checks in _new() class constructors
- Fix warnings in many places
* R_APIfication of r_anal
  - Fix probable segfault in x86_bea
* Use macros to define plugin names
* Fix build of radare2, rasign2 and debug/t/main
* Call sundo_push() when io_seek
* Added toggles for seek and write undo levels

--HG--
rename : libr/sign/t/rasign.c => libr/sign/t/rasign2.c
2009-09-09 00:35:00 +00:00
pancake
a9d47cbecb * Initial working version of the r_iter for Vala
- pointers is the answer
2009-09-03 11:17:00 +00:00
pancake
bca428f994 * Some ideas for the code analysis module
* Fix r_iter_last()
  - Some more work on the Vala integration
* Grep for README and TODO for hg-miss
2009-08-24 12:03:37 +00:00
pancake/fluendo
57cb3628fa * Added basic iterator helper functions (help vala integration?) 2009-08-19 18:38:35 +02:00
pancake
bc1b1b976e * Initial implementation of r_asm_fastcall()
- VAPI sync
  - Used to get register N to call fastcalls (syscalls f.ex)
* Code analysis marked as 8-bit compliant
2009-08-14 00:37:18 +00:00
Nibble
94445e1540 * Change the name of some types
- s/u64/ut64/
  - s/u32/ut32/
  - s/u16/ut16/
  - s/u8/ut8/
2009-07-08 13:49:55 +02:00
Nibble
f76f81b917 * Merge 2009-05-02 01:08:57 +02:00
pancake
7c27588c13 * Sync x86 code analysis fixups from r1
* Fix some segfaults on the not-yet-used dbg.reg api
* Now uses .radare2rc
* Some R_APIzation in r_debug
2009-04-16 20:49:18 +00:00
pancake
cdd80105cb * Initial dummy implementation of r_bp
- Managing breakpoints for the core
  - Initial work on the support for breakpoints
    for the r_debug plugins
* Adding some dummy work for context support in r_anal
* Make asm_set_bits check per-plugin supported bit sizes
  - Now asm plugins have 'arch' and 'bits' attributes
  - Used to setup default callbacks for undefined 'assemble' callback
  - Also used to avoid setting asm.bits eval variable to invalid values
  - We need a way to display all this data
* Added DEFAULT_ARCH in config.h to setup default arch to asm and anal
* Added r_config_set_i_cb()
  - Make r_config_set restore value when callback is called and fails
  - asm.bits now has a config callback
* Added _LAST in some r_anal enums
2009-04-11 21:22:20 +00:00
Nibble
fd06adb922 * More r_anal_reflines fixups 2009-04-06 17:11:37 +02:00
Nibble
57c0c88205 * Oops, type error in anal O:-) 2009-04-06 14:48:46 +02:00
Nibble
1b61512a72 * Added r_str_concatch
* Fixed reflines libc issue
2009-04-06 14:01:56 +02:00
Nibble
f3d8941cd1 * r_anal
- Dropped param addr in r_anal_reflines_str
    Use r_anal_set_pc instead
  - Fixed asm.reflinesout behavior
* Fixed r_line build
* Fixed 'make install'
2009-04-03 13:01:58 +02:00
Nibble
d12e2bd16a * Removed expand option from reflines
* Added function spacer
* Fixed fortunes bug
* Fixed history bug
* Fixed r_line_hist_add
* Fixed eval list bug
2009-04-02 15:07:26 +02:00
Nibble
bacc40a6cd * Fixed r_anal reflines
* Added config vars for configuring it
2009-04-02 11:36:34 +02:00
pancake
3b95d5c605 * Another 700-LOC train-based commit
* Initial work on integrating the anal_x86_bea plugin
* Adds the concept of 'opcode families'
* Added 'cmdhit' from e cmd.hit
* Fix r_print_hexdump ascii column
* More R_APIziation
* Cleanup some warnings
* Added keyword index attribute to the keyword structure
2009-04-02 10:23:32 +00:00
Nibble
a09f365de5 * reflines partial fix 2009-04-02 01:09:38 +02:00
Nibble
6791ef0f6b * More work on r_anal_reflines
* Fixed r_bininfo build
2009-04-02 00:41:10 +02:00
Nibble
103d23cd48 * r_anal
- Added reflines support
  - Fixed anal_x86 code
  - Refactoring (removed r_asm dependency)
2009-04-01 00:32:26 +02:00
Nibble
c4421c3c7f * Some changes in r_anal
* Fixed build
2009-03-31 22:05:18 +02:00
pancake
1d90ad7143 * Add constructor/destructor for r_anal and r_sign
- Add rasign test program for r_sign
* Minor code cleanup in cons
* Cleanup and sort commands in help message
* Make oobi input work as command interpreter
  - Add r_core_cmd_buffer
* Some basic design workup for xrefs search engine
2009-03-14 11:39:37 +00:00
pancake
f88fd507cd * fix r_asm and r_anal deps
* Initial import of depgraph.pl helper script to get the libr
  internal library dependencies graph with graphviz
2009-03-04 12:39:51 +00:00
Nibble
ea44bb103a * r_anal
- Added initial anal_x86_bea plugin (op analysis using bea engine)
    'ao' command in radare2
  - Minor fixups
* r_asm
  - Modified r_asm_aop_t to fit r_anal requirements
  - Updated r_asm plugins
* r_parse
  - Removed several warnings from mreplace
  - Removed unnecessary includes
2009-02-26 15:15:19 +01:00
Nibble
ab956379ea * Fixed plugin name length error in r_{asm, anal, lang}
* r_asm
  - asm_bea renamed to asm_x86_bea
  - asm_olly renamed to asm_x86_olly
  - Minor fixups in rasm2
* r_debug
  - R_ASM_ARCH_ renamed to R_DBG_ARCH_

--HG--
rename : libr/asm/p/asm_bea.c => libr/asm/p/asm_x86_bea.c
rename : libr/asm/p/asm_olly.c => libr/asm/p/asm_x86_olly.c
2009-02-19 16:41:51 +01:00
Nibble
23afb7eeb3 * r_asm
- Used plugin infrastructure
  - Huge refactoring
  - Added x86 plugin

--HG--
rename : libr/asm/arch/x86/asm.c => libr/asm/p/asm_x86.c
2009-02-18 01:49:26 +01:00
Nibble
d3643d52a6 * Minor fixups in r_anal 2009-02-16 03:13:51 +01:00
Nibble
f2a93116c9 * r_anal
- Redefined r_anal_aop
  - Fixed x86 plugin
* r_core
  - Added ao command (test)
* Fixed r_search Makefile
2009-02-16 02:12:02 +01:00
Nibble
26b5e48ede * r_anal
- Initial (non working) implementation
  - Added dummy and x86 plugins
* r_core
  - Added 'anal' command
* r_asm
  - Removed aop parser
2009-02-16 00:57:03 +01:00
Nibble
389cce05f6 * r_anal // r_asm
- Initial AOP parser (needs more love)
  - Adds buf and inst_len to r_asm_t
  - Refactoring
* More Makefile refactoring
2009-02-09 00:19:06 +01:00
Nibble
710adba920 * More Makefile refactoring and cleanup
* Minor cleanups in r_asm.h
* First work in r_anal
2009-02-06 18:22:27 +01:00