New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 623674 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature



Sign in to add a comment

Courgette : Pointers in x64 not being detected

Project Member Reported by etiennep@google.com, Jun 27 2016

Issue description

Multiple 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.
 

Comment 1 by etiennep@google.com, Jun 27 2016

Linking experiment results 
go/courgette-623674

Project Member

Comment 2 by sheriffbot@chromium.org, Jun 28 2016

Labels: Hotlist-Google
Project Member

Comment 3 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)

Comment 5 by wfh@chromium.org, Jul 8 2016

This is cool! thanks for doing this!

Sign in to add a comment