Courgette : Pointers in x64 not being detected |
|||
Issue descriptionMultiple instructions containing a rel32 pointer are not being detected by courgette's RelFinder in X64. Mainly: MOV QWORD[rip+offset], reg MOV reg, DWORD[rip+offset] MOV DWORD[rip+offset], reg LEA reg, DWORD[rip+offset] MOV reg, WORD[rip+offset] MOV WORD[rip+offset], reg LEA reg, WORD[rip+offset] Those account for ~15% of all rel32 pointers.
,
Jun 28 2016
,
Jun 28 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1560d9dbd68658af6659a0bdc7519eb9d18a3a2d commit 1560d9dbd68658af6659a0bdc7519eb9d18a3a2d Author: etiennep <etiennep@google.com> Date: Tue Jun 28 20:17:16 2016 Courgette: Extend pointer detection in x64. These new instructions are now recognised in x64 RelFinder : MOV QWORD[rip+offset], reg MOV reg, DWORD[rip+offset] MOV DWORD[rip+offset], reg LEA reg, DWORD[rip+offset] MOV reg, WORD[rip+offset] MOV WORD[rip+offset], reg LEA reg, WORD[rip+offset] This reduces patch size by ~1% for x64 image files. BUG= 623674 Review-Url: https://codereview.chromium.org/2072093003 Cr-Commit-Position: refs/heads/master@{#402517} [modify] https://crrev.com/1560d9dbd68658af6659a0bdc7519eb9d18a3a2d/courgette/encode_decode_unittest.cc [modify] https://crrev.com/1560d9dbd68658af6659a0bdc7519eb9d18a3a2d/courgette/rel32_finder_x64.cc [modify] https://crrev.com/1560d9dbd68658af6659a0bdc7519eb9d18a3a2d/courgette/testdata/rel32_x64_01.txt [modify] https://crrev.com/1560d9dbd68658af6659a0bdc7519eb9d18a3a2d/courgette/testdata/rel32_x64_02.txt [modify] https://crrev.com/1560d9dbd68658af6659a0bdc7519eb9d18a3a2d/courgette/testdata/rel32_x64_03.txt
,
Jul 8 2016
,
Jul 8 2016
This is cool! thanks for doing this! |
|||
►
Sign in to add a comment |
|||
Comment 1 by etiennep@google.com
, Jun 27 2016