bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/19878] New: PE/COFF regression in base of code and data ca


From: toni.spets at iki dot fi
Subject: [Bug binutils/19878] New: PE/COFF regression in base of code and data calculation
Date: Mon, 28 Mar 2016 17:53:51 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=19878

            Bug ID: 19878
           Summary: PE/COFF regression in base of code and data
                    calculation
           Product: binutils
           Version: 2.25
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: toni.spets at iki dot fi
  Target Milestone: ---

Commit 32a9d621c3c480aa093a089a36e36c35f68a4010 introduced a very rare
regression regarding base of code and base of data RVA calculation. This commit
falls between binutils 2.24 and 2.25.

If an executable is built with uncommon section names, the linker can't
calculate BaseOfCode and BaseOfData NT header fields. The behaviour before the
regression was that they stay at zero which technically equals ImageBase.
Behaviour after causes an invalid substraction from zero flipping the base
addresses to a high value.

An example build that has unknown sections before (objdump -x):

BaseOfCode              00000000
BaseOfData              00000000

And after:

BaseOfCode              ffc00000
BaseOfData              ffc00000

There's no effective difference when running such executable - the win32 loader
ignores these fields. It only affects programs that analyze executables, like
debuggers. Notably, OllyDbg fails to analyze an executable that seeminly has
the entry point outside code sections.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]