Adds the core implementation of the new search. The rough architecture is the following: A search for a certain type of information (strings, bytes, keys etc.) creates a collections of items to search for (byte patterns, regular expressions etc.). Then specifies some settings how the search (number of threads, maxum hits...) and the finding is performed (string length, inverse match etc.). It also defines a search space, which is currently only the IO buffer. But can be anything in the future, like a graphs or the knowledge base. The search splits up the search space into windows (for IO: address ranges) and dispatches each search window into a 'find()' thread. The 'find()' handler (provided by a specific search implementation) checks the given window and produces search hits matching the elements in the search collection. The main search handler collects the hits of the dispatched workers and returns them to the user. Note: The byte and string search implementations are added in the next two commits. Part 6/9. Likely won't build in between parts. Co-authored-by: wargio <deroad@kumo.xn--q9jyb4c> |
||
|---|---|---|
| .. | ||
| arch | ||
| bin | ||
| bp | ||
| config | ||
| cons | ||
| core | ||
| crypto | ||
| debug | ||
| demangler | ||
| diff | ||
| egg | ||
| flag | ||
| hash | ||
| il | ||
| include | ||
| io | ||
| lang | ||
| magic | ||
| main | ||
| reg | ||
| search | ||
| sign | ||
| socket | ||
| syscall | ||
| type | ||
| util | ||
| meson.build | ||
| plugins.h.in | ||
| README.md | ||
| RizinConfig.cmake.in | ||
| RzModulesConfig.cmake.in | ||
Rizin Libs (librz)
The Rizin framework is composed of several pieces that work together to provide a reverse-engineering framework useful for a variety of use-cases and tasks. All tools present in binrz are based on the libraries present in this directory, so getting a general idea of what these libraries are and do is key to navigate the codebase.