-
-
Notifications
You must be signed in to change notification settings - Fork 373
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RzSearch refactor #4762
Draft
Rot127
wants to merge
21
commits into
rizinorg:dev
Choose a base branch
from
Rot127:rz-search
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
RzSearch refactor #4762
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github-actions
bot
added
RzAnalysis
rz-find
API
ESIL
RzCore
ARM
MIPS
PPC
X86
RzUtil
RZIL
RzSearch
labels
Dec 10, 2024
github-actions
bot
added
API
RzSearch
and removed
RzAnalysis
rz-find
API
ESIL
ARM
MIPS
PPC
X86
RzUtil
RZIL
RzSearch
labels
Dec 10, 2024
Rot127
force-pushed
the
rz-search
branch
2 times, most recently
from
December 12, 2024 19:41
0c558c2
to
b59292d
Compare
wargio
reviewed
Dec 30, 2024
wargio
reviewed
Dec 30, 2024
wargio
reviewed
Dec 30, 2024
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This makes only small edits (renames) to keep the build working.
This sets search.overlap=true by default. Mostly because I think this what people expect. Also, with the search.align or search.alignment options there will be the option to search at alignments. This also adds some hex string to bytes helpers. Fixes them and adds tests. Unfinished reimplementation of /x. Fix up the hex string to buffer functions. Fix fast mask comparison macro. Fix byte comparison with UB. Invert condition to match documentation of callback Handle search options from the settings and add tests. This sets search.overlap=true by default. Mostly because I think this what people expect. Also, with the search.align or search.alignment there are way better options to consider for seraching not overlapping data. Fix rz_hex_str2bin_mask() did set mask bits for 0 Refine documentation for rz_hex_str2bin functions. Add byte search tests. Don't allow wildcards with a custom mask. Change buffer to chunk size and make it a search setting. Make search over bytes more efficient. Searching over windows of memory. Add some helper functions to read from IO into a RzBuffer Simplify buffer management and fix leaks Fix bugs add tests regarding search windows Revert design with RzBuffer due to rizinorg#4769 Fix several stupidity bugs Change order of byte pattern and mask. Apply suggestions.
wargio
reviewed
Jan 3, 2025
RzConfigNode *node = (RzConfigNode *)data; | ||
RzThreadNCores max_threads = rz_th_max_threads(node->i_value); | ||
if (node->value[0] == '?') { | ||
rz_cons_printf("%d\n", max_threads); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should return ncores. It's under rz_th.h
- name: opcodes | ||
type: RZ_CMD_ARG_TYPE_STRING | ||
|
||
- name: "/c" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking to change this and have one command which search for all or one specific material
buffer[3 - x] is of type int by default. And x is 3 at one point.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP
Your checklist for this pull request
Detailed description
Companion PR: rizinorg/rizin-testbins#162
What happens here:
Slowly copying changes from https://github.com/Rot127/rizin/tree/rz-search-reference (which is #4742 with some comments already addressed).
Will resend to
fuzz-dist
when all the tests pass here.Stuff to do (without any order)
search IO
API which doesn't require knowledge of search spaces (whatrz_search_run()
was before).search.align
shoudl default tosearch.alignment=asm.cpu_bits/8
.ctrl + c
RzSearchHit
to hold more complex data.find()
callback.Test plan
...
Closing issues
closes #1586