Add test to check if result of methods returning big structs is corrupted due to bad handling of sret in frida 17#723
Open
PimentelM wants to merge 1 commit intovfsfitvnm:masterfrom
Conversation
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
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.
This PR adds two tests where we hook methods that return structs.
The first test has a struct that is small enough to fit in registers when returning, the other one has a struct that needs to make use of sret.
The first struct passes fine but when SRET is used the returned struct gets corrupted and accessing its contents might lead to errors if what was corrupted was a pointer. (In our case the string pointer gets corrupted).
It seems that this only happens when using
.implementation =hooks due to some breaking change in how NativeCallback works in frida 17. ( Using frida 16 doesn't cause this issue)