flat assembler
Message board for the users of flat assembler.

Index > Compiler Internals > Supported PE relocation types

Author
Thread Post new topic Reply to topic
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 25 Jul 2006, 12:15
jsut wondering - which relocation types are supported by FASM?

Code:
// I386 relocation types.
//
#define IMAGE_REL_I386_ABSOLUTE         0x0000  // Reference is absolute, no relocation is necessary
#define IMAGE_REL_I386_DIR16            0x0001  // Direct 16-bit reference to the symbols virtual address
#define IMAGE_REL_I386_REL16            0x0002  // PC-relative 16-bit reference to the symbols virtual address
#define IMAGE_REL_I386_DIR32            0x0006  // Direct 32-bit reference to the symbols virtual address
#define IMAGE_REL_I386_DIR32NB          0x0007  // Direct 32-bit reference to the symbols virtual address, base not included
#define IMAGE_REL_I386_SEG12            0x0009  // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address
#define IMAGE_REL_I386_SECTION          0x000A
#define IMAGE_REL_I386_SECREL           0x000B
#define IMAGE_REL_I386_TOKEN            0x000C  // clr token
#define IMAGE_REL_I386_SECREL7          0x000D  // 7 bit offset from base of section containing target
#define IMAGE_REL_I386_REL32            0x0014  // PC-relative 32-bit reference to the symbols virtual address    
Post 25 Jul 2006, 12:15
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3175
Location: Denmark
f0dder 25 Jul 2006, 16:16
Just wondering what relocation types exist in existing 32bit PEs - and which types the win32 PE loader supports Smile
Post 25 Jul 2006, 16:16
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 25 Jul 2006, 16:26
PE laoder supports them all, but they NEVER are used in real executables.

btw, types of relocations depend on processor type, see winnt.h
Post 25 Jul 2006, 16:26
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3175
Location: Denmark
f0dder 25 Jul 2006, 16:28
vid wrote:

PE laoder supports them all, but they NEVER are used in real executables.

I'll have to trust you on that, too lazy to fire up IDA right now ^_^

vid wrote:

btw, types of relocations depend on processor type, see winnt.h

Yeah, knew that, thus why I specified 32bit and win32 Smile
Post 25 Jul 2006, 16:28
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8357
Location: Kraków, Poland
Tomasz Grysztar 25 Jul 2006, 19:24
fasm supports IMAGE_REL_BASED_HIGHLOW relocations in 32-bit PE and IMAGE_REL_BASED_DIR64 in 64-bit ones. The IMAGE_REL_I386_* are for COFF objects, not PE images.
Post 25 Jul 2006, 19:24
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.