-
Notifications
You must be signed in to change notification settings - Fork 566
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
i#731,i#3271: Keep IR cti+copied bits valid and re-relativized (#4018)
Adds rip-relative information tracking at IR levels 1-3 for instruction references on x86, extending the existing tracking for data references. Adds decode_sizeof_ex() and instr_get_rel_data_or_instr_target() to support rip-relative displacement and target handling. Changes decode_from_copy() to preserve raw bits for all instructions, eliminating problems where untracked encoding features are lost such as in #4017. Documents the changes and describes how to avoid the new behavior. Does just that for intra-sequence cti's in the rseq native code copy and Windows syscall wrapper copies. Adds test cases to api.ir. Implementing the same thing for AArchXX is left unimplemented, tracked by i#4016. Issue: #731, #3271, #3339, #4016, #4017 Fixes #731 Fixes #3271 Fixes #4017
- Loading branch information
1 parent
224dc41
commit d6f5fca
Showing
16 changed files
with
428 additions
and
205 deletions.
There are no files selected for viewing
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
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
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
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
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
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
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
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
Oops, something went wrong.