Seite 1 von 1
Frage zur Sicherheit von PB Executables
Verfasst: 07.12.2012 12:12
von Kukulkan
Hallo,
wie schaut es dabei mit PB eigentlich aus?
http://www.heise.de/newsticker/meldung/ ... 63634.html
Geht das auch mit PB EXE und DLL Dateien?
Grüße,
Kukulkan
__________________________________________________
Thread verschoben
Windows>Offtopic
07.12.2012
RSBasic
Re: Frage zur Sicherheit von PB Executables
Verfasst: 07.12.2012 13:02
von NicTheQuick
Es geht auf jeden Fall durch eine Änderung im ASM-Code, denn FASM unterstützt das beides, also DEP und ASLR. Man muss es irgendwie im PE-Header spezifizieren. Schlauerweise hab ich im FASM-Forum nur Threads gefunden, wo es darum geht, dass man es ein- oder ausschalten soll um etwas bestimmtes zu erreichen. Aber niemand schreibt genau wie es geht. Und in der Dokumentation steht es auch nicht.
Falls es hier jemand heraus findet, wäre es sicherlich möglich ein Tool zu schreiben, was sich zwischen ASM-Code und FASM schaltet und das entsprechend ändert.
Re: Frage zur Sicherheit von PB Executables
Verfasst: 07.12.2012 13:21
von Danilo
NicTheQuick hat geschrieben:Aber niemand schreibt genau wie es geht. Und in der Dokumentation steht es auch nicht.
Falls es hier jemand heraus findet, wäre es sicherlich möglich ein Tool zu schreiben, was sich zwischen ASM-Code und FASM schaltet und das entsprechend ändert.
Für FASM DEP findest Du Infos
<HIER>.
Tomasz Grysztar hat geschrieben:I have added the "NX" flag in 1.69.32 release.
IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 (offset PE_Header:0x5e)
IMAGE_FILE_RELOCS_STRIPPED 0x0001 (offset PE_Header:0x16)
PB könnte das mit dem flag "/NXCOMPAT" bei polink einschalten. Am besten Compiler Option hinzufügen.
Für ASLR
habe ich diesen Artikel gefunden:
[...] will set the 0×40 DllCharacteristics value in the PE header of the output binary.
This corresponds to a newly-defined constant which is at present only documented briefly in the WDK version of ntimage.h:
Code: Alles auswählen
#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040 // DLL can move.
If this flag is set, then the base address of an image can be randomized by Vista’s ASLR; if the flag is clear, however,
then no ASLR-style randomizations are performed to the image base address of a particular image (in this case, however,
it is important to note that heap and stack allocations are still randomized – it is only the image base address that does not become randomized).
Beides kann also über 'DllCharacteristics' im
IMAGE_OPTIONAL_HEADER structure (Windows) von .EXE/.DLL gesetzt werden.
DllCharacteristics
- IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040
The DLL can be relocated at load time.
- IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100
The image is compatible with data execution prevention (DEP).
Re: Frage zur Sicherheit von PB Executables
Verfasst: 07.12.2012 15:47
von Kukulkan
Danke für die info, aber Assembler hab ich leider das letzte mal vor 22 Jahren auf dem C64 benutzt
Kann ich das über mein Makefile (cygwin) realisieren?
Kukulkan
Re: Frage zur Sicherheit von PB Executables
Verfasst: 07.12.2012 16:22
von mk-soft
DEP ist bei Purebasic bereits aktiv...
Re: Frage zur Sicherheit von PB Executables
Verfasst: 20.12.2012 21:55
von Thorium
Kukulkan hat geschrieben:Danke für die info, aber Assembler hab ich leider das letzte mal vor 22 Jahren auf dem C64 benutzt
Kann ich das über mein Makefile (cygwin) realisieren?
Kukulkan
Wie Danilo schon geschrieben hat, sind das nur Flags, die im Header gesetzt werden müssen, da brauchst kein ASM für. Kannst du entweder dem Linker übergeben oder aber auch die .exe/.dll nach dem Kompilieren mit einem entsprechendem Programm wie z.b. PE Explorer ändern.