-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
great!! will have a look at it as soon as possible. By the benchmarking difference keep in mind that the cost for N searches shouldn't be much bigger that the cost for one search. The burden for many searches at once has a payoff in performance. Anyway if I have some time I'll look at it! Great work! pancake wrote: > I have finally integrated the new search engine into radare. > > Thanks to esteve for the great search algorithm! > > This new algorithm is called "binparser" and it's in his first stage of > design. The new engine fixes all the tickets in the bug report page > and gives more possibilities with a new regexp-like syntax for binary > searchs. > > [0x00000000000000]> /? > /x A0 B0 43 ; hex byte pair binary search. > /m FF 0F ; Binary mask for search > / \x7FELF ; plain string search (supports \x). > /. [file] ; search using the token file rules > /r 0,2-10 ; launch range searches 0-10 > /l ; list all search tokens (%SEARCH[%d]) > // ; repeat last search > > Note that the buggy GNU regexps have been removed in pro to avoid buggy > results and buggy portability. The /m command to define a MASK for binary > strings is not yet implemented , but the rest is fine. > > You can throw N token searchs at once, so paralel searchs will be faster > than serialized ones with the old engine. Search strings are stored in > environment variables named %SEARCH[#] where '#' is a number from 0 to N. > > This is very useful because you can define multiple search strings and > throw them by range: > > /r 0-3,5 > > This command will throw a search for the tokens 0, 1, 2, 3 and 5 > Use the % command to define the search strings: > > >>%SEARCH[3] ELF\x01 > > > The regexp support is done with [a-z] [0x00-0xFF] , etc... so, remember > to scape the '[' and other critical characters. (read the source, no doc yet) > > I've done some benchmarking on it and these are the results: > > Time resuls searching a 3 char string inside a file of 60M: > > old engine: > real 0m3.352s > user 0m2.973s > sys 0m0.377s > > new engine: > real 0m4.956s > user 0m4.610s > sys 0m0.347s > > ------------- > > The new engine is a bit slower, but it's ok for me, actually the code is > not clean at all, and both search engines are there. So I could probably > think on maintain both search engines or just the best one :) > > The next goal is to implement the 'binary mask'. > > Hope to documentate all this stuff in the wiki ASAP. > > > --pancake > _______________________________________________ > radare mailing list > [email protected] > https://lists.nopcode.org/mailman/listinfo/radare > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFGF3D0HCkwMET/DRYRAtfhAKCeGKQJWooK2eYFTCvwueJkagrRIgCdH60n wcTEhP57nJm4CDANX8mxKHY= =UXb+ -----END PGP SIGNATURE----- _______________________________________________ radare mailing list [email protected] https://lists.nopcode.org/mailman/listinfo/radare
