AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Data Execution Prevention (DEP) aktivieren
Thema durchsuchen
Ansicht
Themen-Optionen

Data Execution Prevention (DEP) aktivieren

Ein Thema von HeikoAdams · begonnen am 5. Aug 2010 · letzter Beitrag vom 11. Aug 2010
 
rob74

Registriert seit: 13. Sep 2006
Ort: München
22 Beiträge
 
Delphi XE Starter
 
#7

AW: Data Execution Prevention (DEP) aktivieren

  Alt 7. Aug 2010, 15:42
Ich habe mich auch in letzter Zeit mit diesem Thema beschäftigt. Die einfachste Möglichkeit ist, die Compiler-Direktive {$SetPEOptFlags $0140} (am besten im Projekt-Quelltext) zu verwenden - dies setzt den DllCharacteristics-Wert des Optional PE Headers (Siehe MSDN). $0100 heißt IMAGE_DLLCHARACTERISTICS_NX_COMPAT (aktiviert DEP), $0040 heißt IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE (aktiviert ASLR). Das funktioniert sogar in älteren Delphi-Versionen (ich weiß nicht seit wann es SetPEOptFlags gibt, aber in Turbo Delphi funktioniert's problemlos).

Das Ganze hat leider einen Haken: diese Flags werden nur unter Vista und 7 ausgewertet, unter XP nicht. Das heißt, unter XP (ab SP2) entscheidet das System, welcher Prozess DEP kriegt und welcher nicht - außer das Programm benutzt die Funktion SetProcessDEPPolicy. Diese Funktion gibt es leider aber erst ab XP SP3 (und in Vista erst ab SP1). Um DEP auch unter XP SP2 nutzen zu können, kann man es wie der Chromium-Browser machen: die rufen die undokumentierte Funktion NtSetInformationProcess mit den Parametern ProcessExecuteFlags= PROCESS_INFORMATION_CLASS=$22 und ProcessInformation=MEM_EXECUTE_OPTION_PERMANENT | MEM_EXECUTE_OPTION_ENABLE=$9 auf (Quellcode zu sehen bei Google Code Search).

ASLR gibt's unter XP übrigens gar nicht, erst unter Vista.

Geändert von rob74 ( 7. Aug 2010 um 15:44 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz