NXCOMPAT bit for PE files. (XP and Vista DEP protection bit)

Got an idea for enhancing PureBasic? New command(s) you'd like to see?
User avatar
Rescator
Addict
Addict
Posts: 1769
Joined: Sat Feb 19, 2005 5:05 pm
Location: Norway

NXCOMPAT bit for PE files. (XP and Vista DEP protection bit)

Post by Rescator »

As usual surfing around I stumble across stuff.
I don't have the exact PE header info but this post/blog was what peakd my interest. (it quickly explains what this is all about)

http://blogs.msdn.com/ed_maurer/archive ... piler.aspx

Any chance of adding this Fred? Considering it's supposedly just a bit flag it's not that hard I hope?
Obviously it would only be available on Windows (although the NX bit is supported on Linux and Mac AFAIK, due to modern CPU's having hardware support for it, not sure how it's done on those platforms though)

An extra checkmark option would have to be added next to the Vista admin/user option in the IDE as well.

Personally I have no need for this, but security app/tool developers, services developers and so on will probably find this great and even a selling point for their apps?
ABBKlaus
Addict
Addict
Posts: 1143
Joined: Sat Apr 10, 2004 1:20 pm
Location: Germany

Post by ABBKlaus »

its already supported by polink :

Code: Select all

Pelles Linker, Version 5.00.1
Copyright (c) Pelle Orinius 1998-2008

Syntax:
POLINK [ { option | file | @commandfile } ... ]

Options:
/ALIGN:#
/ALLOWBIND[:NO]
/ALLOWISOLATION[:NO]
/ALTERNATENAME:symbol=symbol
/BASE:address
/DEBUG[:NO]
/DEBUGTYPE:{CV|COFF|BOTH}
/DEF:filename
/DEFAULTLIB:filename
/DELAY:{NOBIND|UNLOAD}
/DELAYLOAD:filename
/DLL
/DRIVER[:{UPONLY|WDM}]
/ENTRY:symbol
/EXPORT:symbol[=[module.]symbol][,@ordinal[,NONAME]][,DATA]
/FIXED[:NO]
/FORCE:MULTIPLE
/HEAP:reserve[,commit]
/IMPLIB:filename
/INCLUDE:symbol
/LARGEADDRESSAWARE[:NO]
/LIBPATH:path
/MACHINE:{AMD64|ARM|X64|X86}
/MANIFEST[:NO]
/MANIFESTDEPENDENCY:dependency
/MANIFESTFILE:filename
/MAP[:filename]
/MAPINFO:{EXPORTS|FIXUPS|LINES}
/MERGE:from=to
/NODEFAULTLIB
/NOENTRY
/NXCOMPAT[:NO]
/OPT:{REF|NOREF|WIN98|NOWIN98}
/OSVERSION:#[.##]
/OUT:filename
/RELEASE
/SAFESEH[:NO]
/SECTION:name,[E][R][W][S][D][K][P]
/STACK:reserve[,commit]
/STUB:filename
/SUBSYSTEM:{CONSOLE|NATIVE|WINDOWS|WINDOWSCE}[,#[.##]]
/SWAPRUN:{CD|NET}
/TSAWARE[:NO]
/VERBOSE
/VERSION:#[.##]
/WS:AGGRESSIVE
Post Reply