54 Commits

Author SHA1 Message Date
Sylvain Pelissier
2d53f7083b
Update crypto key search to find keys between blocks ##search (#17323) 2020-08-11 12:31:55 +08:00
Sylvain Pelissier
7de2ca21b5 Add elliptic curve private key search in /cr command (#15761) ##search 2020-01-07 22:01:16 +01:00
radare
c6a58a04cc
Fix #11616 - Remove the use of RMemPool and update some comments for future discussion (#11665) 2018-09-26 11:31:24 -07:00
Maijin
6eda76e0f8
Fix #1361 (#10889) 2018-08-01 22:27:19 +02:00
Fangrui Song
c43e6880fb Refactor search (#8566)
* fix out-of-bounds read in r_search_strings_update
* Remove static variables searchhits maplist maxhits first_hit in cmd_search.c
* Change semantics of r_search_hit_new (update kw->count s->nhits in it), return 2 if search.maxhits is reached and stop searching immediately
* honor search.maxhits in r_search_regexp_update
* Refactor _cb_hit, remove bckwrds/do_bckwrd_srch and static cmdhit
* Fix mem leak in regexp.c
* Add support for /d (delta) /bd (backward + delta) when crossing blocksize boundaries
2017-09-20 17:00:18 +02:00
Fangrui Song
4358de43b2 Fix backward search and string search across boundary in search.overlap=0 mode and fix mem leak (#8537)
* Fix mem leaks in search
* Fix backward search and string search across boundary in search.overlap=0 mode and fix mem leak
2017-09-17 23:44:04 +02:00
Fangrui Song
813e415a1c Fix #8189 - refactor search.c (#8195)
* fix r_search_mybinparse_update when locating `a+a+b` in `a+a+a+b` where len(a) > 1, e.g. locating `ababc` in `abababc`
* fix /d (r_search_deltakey_update) with same issue
* fix search.distance
* fix binmask
* swap the order of the nested loop
* add RSearch::maxhits . More work later
* add RSearch::data for data used by matching algorithm

before:
  for (i = 0; i < len; i++)
    r_list_foreach (s->kws, iter, kw)

after:
  r_list_foreach (s->kws, iter, kw)
    for (i = 0; i < len; i++)

rationale:
  + searching for more than one needles is rare. the branches used in inner loop harms performance
  + it's cumbersome to bookkeep for each `kw` in advanced searching algorithms
2017-09-13 11:48:59 +02:00
Roi Martin
488b688636 Implement zign search using r_search. Minor fixes
Note: Current implementation must be refactored and moved to r_sign.
2017-03-13 11:38:23 +01:00
pancake
1a89cac78f Initial support for search.overlap 2016-02-12 11:37:48 -06:00
pancake
1bdd7c591a Fix #2474 - Implement rafind2 -m for magic search 2015-10-19 03:56:59 +02:00
Nick Stephens
4f15eea06d Fix #1945 - Add wide string search to rafind2
Fix styling issues in r_search_keyword_new_wide
2015-02-04 03:28:28 +01:00
pancake
baf3145598 Use dynamically allocated buffers for RSearchKeywords 2014-09-30 12:04:02 +02:00
jvoisin
061184084b Add /Ar, to search for RSA keys 2014-06-22 01:41:57 +02:00
jvoisin
ac7963a9dd Even more gcc warnings silenced. 2014-06-06 14:07:06 +02:00
LemonBoy
b7f73620d1 fix the regexp engine 2014-06-05 00:00:33 +02:00
LemonBoy
9a9c5e750a simplify the search engine 2014-06-04 20:03:06 +02:00
pancake
7bbca3c2bf Add and implement search.contiguous config var 2014-05-31 13:44:52 +02:00
pancake
2397c956c9 Use R2_ as unique header guard prefix 2014-03-27 16:34:17 +01:00
pancake
d3af1ea077 Fix #723 - header guards conforming to C standards 2014-03-27 02:32:26 +01:00
pancake
c16a3a1e76 Implement backward search /b (Thanks JudgeDredd) 2014-02-18 03:13:29 +01:00
pancake
2cbce80f2f Add __cplusplus extern "C" boilerplate everywhere 2013-06-18 12:09:23 +02:00
pancake
bc0104563b Initial support for runtime versioned libraries
- This check will ensure you are running the latest r2 version.
2013-06-14 02:51:33 +02:00
pancake
afbda180d5 Add visual search and enhace search output
- e search.show = true # by default
- add keyword type (string, binary)
- visual search only works in cursor mode
2012-08-02 01:50:39 +02:00
pancake
1cc5b8e077 * Honor -o in rabin2 for dump section operation
* Autodetect and honor CC environment in ragg2 command
* Update ragg2 manpage
* Fix udis86 at&t '$' usage.. thanks @hteso for reporting!
2011-11-30 20:59:58 +01: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
9a26929858 * Implement inverse search /!x for example
- ./!x 00 # finds the first byte which is not 00 in hexa
2011-05-22 00:52:46 +02:00
pancake
37464fa7f5 * Fix some glitches in r_cons_column
* Bring back the ';' prefix for comments
* Added sf/sF commands to seek next/previous scr.fkey
* Implement /i to search strings ignoring case
* Fix '@' invalid reads issue
* Added 'cmd.cprompt' for column prompt in visual
* Add 'search.kwidx' to store last search index count
* Added 'ee' to edit with cfg.editor the value of an eval variable
2011-05-21 15:45:43 +02:00
pancake
b921a2af7d * Make r_core_magic be verbose or not
* Initial implementation of /p and /m search methods
  - Cleanup some code (-110LOC)
2011-03-02 11:45:20 +01:00
pancake
49ab1886c2 * Fix branch analysis in arm thumb
* Various unnecessary syntax changes
2010-11-14 16:38:17 +01:00
pancake/n900
c73cd38c73 * Implement search.find as proposed by @earada
- this commit has been done in my phone..needs testing
2010-11-09 21:18:39 +01:00
pancake
01fa57d832 * Merge old w32 build fix
* Add 'c' in '?' help message
* Import edu's RList-ification of RSearch patch
* Deprecate r_search_kw_list() method
* Fix build of r_socket_to_string() method on w32
2010-08-08 19:03:51 +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
Nibble
7abcfe6852 * Refactoring
- Remove all init functions (included in _new)
  - Update vapi's (needs more work)
2010-05-20 17:40:58 +02:00
pancake
a358d38e50 * Added support for binarymask hexpairs to search and signatures
> 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
2010-04-08 18:01:45 +02:00
pancake
f2563a7509 * Export 'srwx' perms of sections in rabin2 -rS
- 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
2010-04-08 12:29:47 +02:00
pancake
29ad58473f * Fix 'e foo' output
* Fix io.ffio warnings
* Fix '.' key in visual mode (sr pc)
* Various 64bit related fixes
* Various fixes in r2-swig
  - Needs valaswig from hg (update)
  - r_config and
2010-04-06 14:23:12 +02:00
pancake
929fb8cc2d * Refactor SearchKeyword API
- simplified and cleaned one
  - sync codes using it
2010-04-06 13:02:21 +02:00
pancake
c2bc7e0377 * Initial split of r_search_keyword
* Fix -soname of osx linker (-install_name)
* Added OSX build instructions in doc/osx
2010-04-05 22:49:22 +02:00
pancake
76a22ef18e * Remove deprecated r_meta.pc
* 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
2010-03-15 10:46:41 +01:00
pancake
fcbcc00d1e * Huge refactoring on r_syscall
- 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
2010-03-04 01:46:25 +01:00
pancake
648f8ebe23 * Fix 'const char*' issue in valaswig bindings
- 'unowned string' is the correct vala type
  - Depends on valaswig tip
  - type checking is now more strict
* Build libr.so again for swig bindings
* Added test-r_bin.py
2010-02-12 00:43:11 +01:00
pancake
54bdfb22bd * Uppsercase classnames (rCore -> RCore)
- 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}/
2010-01-26 01:28:33 +01:00
pancake
3b35f5329a * Added r_flag_new()
* Drop parenthesis from callback declaration in rSearch
2010-01-12 02:25:06 +01:00
pancake
c326db2e77 * Integration with valaswig for many libraries
- typedef function pointers in r_search (rSearchCallback)
  - hide R_API stuff as it should in many .h files
  - typedef classes in rCore, rSearch
* Add perl, ruby, python examples for r_asm and r_bp
  - Many other libraries are compiled by default
* Adapt r_asm vapi to the current C api (massemble returns rAsmCode)
  - dynamically allocatable string buffer
* Rename seek->offset to avoid collisions
2010-01-12 02:12:18 +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
648189f21f * Drop PFX in debug plugin names
* Minor cosmetic fixups
* Handle binmask==NULL in all _add methods of r_search
  - Added empty declarations of reset() and kw_reset()
* Various random fixes in some vapis
2009-09-24 19:46:32 +02:00
pancake
9442317413 * Major refactoring patch
- Remove plugin prefixes
    - It was unnecessary complicated
  - Remove unused code
  - Some RAPIfication
  - Rename _set( methods into _use(
  - Simplify some string processing
  - r_parse is working again
  - Sync all those api changes in r_core
  - External static plugin lists moved to .c
  - Fix some cast-related segfaults in core
* Review the r_search API
  - RAPIfication
  - Allow to pass NULL as binmask
  - Added TODO with some more ideas
2009-09-24 12:29:05 +02: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
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
pancake
03a613e7d2 * Fix lot of warning messages 2009-03-06 00:00:41 +00:00