-
-
Notifications
You must be signed in to change notification settings - Fork 232
feat: Match fingerprints by instruction filters #329
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
Open
LisoUseInAIKyrios
wants to merge
68
commits into
ReVanced:dev
Choose a base branch
from
LisoUseInAIKyrios:feat/instruction_filters
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.
Open
Changes from all commits
Commits
Show all changes
68 commits
Select commit
Hold shift + click to select a range
31f6122
feat: Match fingerprints by instruction filters
LisoUseInAIKyrios 1965e84
refactor
LisoUseInAIKyrios d02aad0
refactor: Use 'by' semantic to capture fingerprint name
LisoUseInAIKyrios a160101
Allow using a fingerprint result inside another fingerprint
LisoUseInAIKyrios 7547319
fix 'by' syntax causing multiple resolves. Add debug resolving perfor…
LisoUseInAIKyrios 14335e8
Add helper method
LisoUseInAIKyrios 3386fd9
make match result fields consistent with fingerprint accessor methods
LisoUseInAIKyrios e2707e1
fix: Retain existing null opcode behavior
LisoUseInAIKyrios 9779e50
refactor: Change `ByteCodePatchContext` to a singleton object, remove…
LisoUseInAIKyrios 4d38837
feat: Add 'classFingerprint' (parent fingerprint)
LisoUseInAIKyrios a3852a6
fix: Temporarily turn off failing tests
LisoUseInAIKyrios 2b6e437
add `NewInstanceFilter`, add JVM method string parsing, add basic uni…
LisoUseInAIKyrios 319a8a7
code documentation
LisoUseInAIKyrios 1199e21
refactor
LisoUseInAIKyrios 111d6ca
comments
LisoUseInAIKyrios 3dad1b0
refactor
LisoUseInAIKyrios 6c80a20
refactor: remove performance logging
LisoUseInAIKyrios cfb873a
Revert "refactor: Change `ByteCodePatchContext` to a singleton object…
LisoUseInAIKyrios c37ecb8
fix: delete test that is now too clunky since a context must be passed
LisoUseInAIKyrios 231378e
refactor: Rename to `MethodCallFilter` and `FieldCallFilter`
LisoUseInAIKyrios 502ea98
Revert "feat: Add 'classFingerprint' (parent fingerprint)"
LisoUseInAIKyrios f5a1b26
perf: Copy strings only if strings are found
LisoUseInAIKyrios 1166096
Restore instruction filter test
LisoUseInAIKyrios cdb986d
Comments. Will update .md examples after DSL is figured out.
LisoUseInAIKyrios 0e85451
refactor: Rename FieldCallFilter -> FieldAccessFilter
LisoUseInAIKyrios b3b77ac
docs: Update fingerprinting examples
LisoUseInAIKyrios 47e8086
refactor: Use DSL style constructor functions
LisoUseInAIKyrios 0ca165d
refactor
LisoUseInAIKyrios f54efb1
add String literal instruction filter
LisoUseInAIKyrios a572771
docs: Cleanup examples
LisoUseInAIKyrios 2faba7f
Comments
LisoUseInAIKyrios b74d51b
refactor: Comments, consistency
LisoUseInAIKyrios df7bc88
refactor: Allow partial matches of string literals
LisoUseInAIKyrios 2c91090
refactor
LisoUseInAIKyrios a0a0306
perf: Skip return type check if access flags include constructor
LisoUseInAIKyrios 329dfbd
add 'checkCast' instruction filter
LisoUseInAIKyrios b117dba
Add field access smali parsing for consistency
LisoUseInAIKyrios bb06381
fix: Improve smali regex filter
LisoUseInAIKyrios e1930ea
refactor: Match class types using endsWith
LisoUseInAIKyrios f981d1c
refactor: Throw exception on bad new instance type
LisoUseInAIKyrios 20b4900
Add more details to example
LisoUseInAIKyrios 132fa00
refactor: Add sub version to show files in correct order
LisoUseInAIKyrios f93f870
refactor: Deprecate pure opcode declarations
LisoUseInAIKyrios 955ceb6
Move instruction filters to fingerprint.kt file
LisoUseInAIKyrios c74c1b8
rename parameter to be more clear
LisoUseInAIKyrios 5885984
Revert "refactor: Deprecate pure opcode declarations" It's still use…
LisoUseInAIKyrios 57d8087
add debugging code
LisoUseInAIKyrios 1dacd3d
Revert "add debugging code"
LisoUseInAIKyrios b08ef19
Work in progress fix for wrong fingerprint indexes found when multipl…
LisoUseInAIKyrios 0f198c4
fix: Replace original classdef with proxy class immediately
LisoUseInAIKyrios 142aa71
refactor: Remove ClassProxy wrapper that's no longer needed. All exi…
LisoUseInAIKyrios 8951990
refactor: Change ProxyList to a map, remove now redundant class looku…
LisoUseInAIKyrios 772c0e6
Update documentation
LisoUseInAIKyrios 8f7911e
Refactor: Simplify
LisoUseInAIKyrios 567feef
refactor: Add `mutableClassByOrNull()`
LisoUseInAIKyrios d7974ef
refactor: Pre-size the class map
LisoUseInAIKyrios d0e0a80
Update examples
LisoUseInAIKyrios 44a1424
refactor
LisoUseInAIKyrios fc319f4
refactor, remove `lastInstruction()` filter
LisoUseInAIKyrios 6c58248
fix: Validate 1 or more instructions or opcodes
LisoUseInAIKyrios 6898576
fix floating point literals
LisoUseInAIKyrios e4bfbce
refactor: Move instruction filters to their own file
LisoUseInAIKyrios d1d5557
fix: Add clear match method for shared fingerprints
LisoUseInAIKyrios 5628204
refactor
LisoUseInAIKyrios f32cc90
Comments and cleanup
LisoUseInAIKyrios f38f5a7
fix default value
LisoUseInAIKyrios 22db561
Merge remote-tracking branch 'upstream/dev' into feat/instruction_fil…
LisoUseInAIKyrios f675f86
refactor
LisoUseInAIKyrios File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -85,7 +85,7 @@ val disableAdsPatch = bytecodePatch( | |
// Business logic of the patch to disable ads in the app. | ||
execute { | ||
// Fingerprint to find the method to patch. | ||
val showAdsFingerprint = fingerprint { | ||
val showAdsFingerprint by fingerprint { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The by API is undocumented anywhere. I had to lookup the source code to understand its existence or difference and when to use = or by. How does the new API in this PR behave differently from current dev? |
||
// More about fingerprints on the next page of the documentation. | ||
} | ||
|
||
|
Oops, something went wrong.
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.
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.
What's the reason for naming the files like this? If they are renamed, they should be named like this in the other repos where we have the same kind of docs as well for consistency.