46 Commits

Author SHA1 Message Date
pancake
7db1a11d33 More reindent and use R_EMPTY instead of {0} 2017-03-25 02:30:00 +01:00
Ole André Vadla Ravnås
abc9187e14 Fix invalid free() on teardown for io plugins (#5722)
For example given a plugin defined like this:

RIOPlugin r_io_plugin_foo = {
	.name = "foo",
	...snip...
};

#ifndef CORELIB
RLibStruct radare_plugin = {
	.type = R_LIB_TYPE_IO,
	.data = &r_io_plugin_foo,
	.version = R2_VERSION
};
#endif

We will try to `free(&r_io_plugin_foo)`, which was not allocated on the
heap. Static io plugins are OTOH allocated like this, so we need to do
the same for dynamically loaded io plugins. However, this is not the same
across the different plugin types, so we need to special-case io plugins
here.
2016-09-09 19:30:23 +02:00
Álvaro Felipe Melchor
99fc0b9fef fix CID 1352385 and 1354256 again (#4601)
* fix CID 1352385 again

* fix CID 1354256 again
2016-04-10 21:28:05 +02:00
pankajkataria
4789c5d46c CID-1354256-libs.c and CID-1352385-fs.c 2016-04-10 18:04:04 +02:00
Lukas Dresel
5a4fe03d41 Fix #4495 - rasm2 not loading all the plugins
- Fixed misplaced free(tmp) i broke
- Made plugin loading work the same in every tool.
- Removed last instances of hardcode 'LIBR_PLUGINS' string
2016-04-05 22:42:19 +02:00
pancake
09aed6e525 Simplify ?T and fix load time 2016-03-18 13:39:45 +01:00
Darredevil
12e40a9249 Loading time for issue #3244 2016-03-18 12:34:17 +01:00
pancake
af2f02515f Support and load r_fs plugins 2016-02-21 02:32:28 +01:00
pancake
6c4bfb94b1 Fix windist, r2pipe and plugins paths 2015-10-23 02:58:48 +02:00
pancake
b515a34676 More stdboolification 2015-09-14 12:35:38 +02:00
pancake
663d135cfc Fix loadlibs regression 2015-04-10 01:35:50 +02:00
pancake
2a59f58560 Add --disable-loadlibs configure flag for static builds 2015-04-10 00:17:30 +02:00
pancake
734d1a9a5d Add -e cfg.plugins (speedup tests), initial massive esil-review
- Includes some fixes for the bf, mips and x86
- Toggle some missconcepted swapped parameters
2015-03-11 02:59:33 +01:00
pancake
31e08131d1 Handle RBin demanglers from plugins and support D language 2015-02-11 02:05:22 +01:00
pancake
89d1991db2 Load plugins from r2e and r2b system directories
/usr/lib/radare2-extras/$version
/usr/lib/radare2-bindings/$version
2015-01-03 00:41:48 +01:00
pancake
08d94e38e1 Plugins are now loaded from API, not from Core constructor 2014-04-03 12:43:30 +02:00
pancake
4e8ab49948 Fix freeing issue in RCore plugins and rename RCmdPlugin to RCorePlugin 2014-04-01 17:17:03 +02:00
pancake
9a099e9e9e Add RAsmPlugins->cpus and handle it in rasm2 -L <arch> 2014-02-06 00:26:17 +01:00
pancake
399a48da34 Fix libr plugins path 2013-11-28 05:51:09 +01:00
pancake
209ac5696c Fix '$' alias command (thanks alxchk for reporting) 2013-07-13 01:13:23 +02:00
pancake
8377c98458 Use xdg configuration path ~/.config/radare2/ 2013-06-27 19:15:59 +02:00
pancake
fc9301b14b Add hints and named print formats and more
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
2013-01-22 05:06:12 +01:00
pancake
3fb4c7dd5e Use encodeURI in r2.js and implement http upload support 2013-01-02 18:37:48 +01:00
pancake
83da070d44 Fix fcn lines in disasm, minor fix in meta
Initial work to fix linux32 debugger on linux64
2012-12-06 03:11:40 +01:00
pancake
2e83fa67b8 Fix python bindings: do not use homonim methods and fields 2012-09-19 14:08:44 +02:00
pancake
d2c7832d96 Sync with sdb git 2012-09-17 11:18:20 +02:00
pancake
c16d61b370 * Add missing fs/types.h
* Fix many memory leaks in r_anal_{op,cond}
* Fix signature of r_fs_name()
2011-11-14 00:21:25 +01:00
pancake
ac7f96bb0c * Add ragg2 -p to specify a padding
- Use the new r_egg_padding function
* Add support for continuations in rapatch2 '+' char
* Fix malloc(0) thanks to llvm's scan-build
* Fix build
2011-11-13 05:26:07 +01:00
pancake
e0fc376dab * Fix some t-*.sh scripts (rollback)
* Initial working version of shellcodes inside r_egg
  $ ragg2 -i x86.osx.binsh -b 64 -k osx -f mach064 -o a.out
  ragg2 -L : list all plugins
  ragg2 -i <shellcode-plugin> : select shellcode
  ragg2 -r : show raw bytes
  ragg2 -x : execute -- fails :(
* Use r_lib in r_egg
  - User defined shellcode plugins can now be loaded on runtime
* Fix append_bytes in r_egg api
* Implement r_egg option_{get|set}
* Use working shellcode for x86.osx.binsh example (64bit)
* Update pkgconfig templates
* Add -D flag to rasm2 (show hex and asm)

--HG--
rename : libr/egg/p/x86_osx_binsh.c => libr/egg/p/egg_x86_osx_binsh.c
2011-11-13 04:08:08 +01: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
a87f10cf56 * Fix security vulnerability loading shared libraries in ./
- Can cause code execution when running in the same directory
2011-05-25 00:43:28 +02:00
Nibble
4235dd2a8e * Fix bug with static plugins
* Treat r_cons and r_line as singleton in r_core_init
* Move gdiff to r_core
* Fix libgmp support

--HG--
rename : libr/diff/gdiff.c => libr/core/gdiff.c
rename : libr/diff/gdiff.h => libr/core/gdiff.h
2010-05-28 02:44:51 +02:00
Nibble
083ebe4832 * r_core
- Fix segfault in r_core
* r_bin
  - Minor fixup in r_bin_load
  - Move plugin pointers to r_bin.h
2010-05-27 19:58:54 +02:00
Nibble
4ead120e53 * Rename "handler" to "plugin"
* Rename */handler.c to */plugin.c
* Rename "handle" to "handler" in r_lib

--HG--
rename : libr/bp/handle.c => libr/bp/plugin.c
rename : libr/cmd/handle.c => libr/cmd/plugin.c
rename : libr/debug/handle.c => libr/debug/plugin.c
rename : libr/io/handle.c => libr/io/plugin.c
2010-05-26 18:25:35 +02:00
Nibble
5c35f6e359 * Rename {r_*_handle_t, R*Handle} to {r_*_plugin_t, R*Plugin} 2010-05-26 01:42:22 +02:00
pancake
1940120f0a * Added fast keys to seek on jumps or calls '1'-'9'
* More seek undo pushes in visual mode
* Added 'd' key in visual mode 'df' defines a function
* Huge repointerization in RCore
* Fix r_num_new() constructor
2010-05-20 00:59:42 +02:00
pancake
d73e6e0b72 * Load plugins from ~/.radare2/plugins instead of ~/.radare/plugins
* Fix fcn_bb_list() method declaration in r_anal.vapi
* Fix warnings and add assembler declaration in r_core vapi
2010-05-19 03:02:18 +02:00
pancake
4137587cb3 * Fix compilation under mingw32
- 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
2010-04-12 02:22:52 +02:00
pancake
a19c5c6197 * Added linux-arm syscalls
* Lot of syntax cleanup (reduce locs, unify syntax)
2010-03-08 12:45:22 +01:00
pancake
9c0636e5ca * Fix return value of bin_meta_elf
* Added 'dsl' command to step until next meta information
  line is reached.
* Display file:line with context 5 with 'CL' command
  - Fix r_file_slurp_line
* Added 'dcu' command to continue until an address
  - bp,dc,bp-
* Added dbg.swstep to configure stepping debugger algorithm
* Add file.type. fixes warning. Defined by rabin2
* Load rabin2 in va format when debug or va modes are enabled
* Ask to kill the child before quitting
* cmd_quit is no longer calling 'exit'.
  - Returns R_CORE_CMD_EXIT (-2)
  - Return value can be captured at core->num.value
* Implement native kill as a debugger callback
* cmd.visual is now cmd.vprompt
* Add r_debug_reg_{get|set}
  - Handle register name aliases
  - Works only with ut64 type
* 'dr:eax' is now 'dr?eax'
* Lot of random syntax cleanups
2010-02-28 22:58:21 +01:00
pancake
f8fcba5d81 * Implement plugin support to r_cmd
- Added dummy command **dummy** for testing purposes
  - Initialize CMD dynamic plugins from r_core
* Fix bug in configure-plugins
  - Generates bad config.mk and config.h when no static
    plugins defined for a category.
2010-02-26 00:37:49 +01:00
pancake
cfbb6574f7 * Initial implementation of the r_lang VAPI
- Added test program in Vala
* Added r_lang_define and r_lang_undef
  - They are global on the module
  - Each plugin should use lang_t
  - *user must be deprecated
2009-09-20 01:03:57 +02:00
pancake
91ad40d663 * Major unfinished refactoring for r_debug and r_bp
- radare2 debugger is now broken
  - r_reg has grown a bit more
  - Better separation of debugger elements
* r_bp now has r_bp_add_hw and r_bp_add_sw() calls
  - Added minimal support for breakpoint handlers
  - Import th0rpe's watchpoint expression parser engine
* iob moved from r_debug to r_bp
* Arch types has been moved into r_asm
  - Soft compile time dependency
* Update pkg-config .pc files
2009-09-14 00:37:28 +02:00
pancake
c6aa69fef1 * Initial pseudo-working implementation of the r_bp library
- Integrated with r_debug module
    - Hardware breakpoints will be handled by the debug backend
  - Breakpoints support software/hardware, lil/big endian, trace, enable/disable
  - Plugin infrastructure adding software breakpoint templates
    - Added x86 and arm software breakpoint plugins
* Some work on the 'db' command to manage debugger breakpoint
* Added empty dH to transplant process between debugger backends
2009-04-12 22:46:44 +00:00
pancake
70186e1120 * More R_API-zation
* More stuff in doc/release
* Added 'dk' for sending signals to processes in the debugger
  - A bit hacky, but funny enought for testing
* Initial draft of the process-related API
  - For handling tree's of processes with threads
* Fix a bug in dietline ('supr' key is working now
2009-04-01 22:44:43 +00:00
pancake
d41e40ba05 * Huge build system refactoring
- Make proper use of the config-user.mk
  - Accelerate build by manually checking timestamps of bin/lib to objs/srcs
  - Use '-MD' by default
  - Lot of minor fixups done in multiple places
  - Fix PREFIX/LIBDIR installation/loading problems for plugins
  - Some segfaults has been fixed
  - Use R_API in r_core and r_lib
* Add 'vm' to be build by libr by default
* Add 'libs.c' in core/ to manage plugins from core
  - Added 'dir.plugins'
  - Make '-e' and '-L' radare2 flags work
  - Plugins are not loaded multiple times now
* Added r_lib_types string array containing plugin types strings
* Minor fixups in r_debug
  - Properly check 'contsc' delegate
  - Separate r_debug_wait()
* Rename dbg-ptrace into dbg_ptrace

--HG--
rename : libr/debug/p/dbg-ptrace.c => libr/debug/p/dbg_ptrace.c
2009-04-01 00:28:13 +00:00