AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi "$SetPeFlags 40", was ist das?

"$SetPeFlags 40", was ist das?

Ein Thema von Fukiszo · begonnen am 18. Jan 2018 · letzter Beitrag vom 18. Jan 2018
Antwort Antwort
Fukiszo
(Gast)

n/a Beiträge
 
#1

"$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 03:07
Guten abend/morgen!

Kann mir jemand sagen was die #40 bewirkt?
Den rest hab ich bereits lösen konnen, aber falls ich da was falsch hab, bitte korrigiert mich.


// ATTENTION: ONLY USE THOSE FLAGS IN YOUR .DPR FILE !!! (can be the first lines above "PROGRAM")
{ the "Lo" Flags: }
{$SetPEFlags $0001} // Relocations Stripped
{$SetPEFlags $0002} // Executable
{$SetPEFlags $0004} // Line mumbers stripped
{$SetPEFlags $0008} // Symbols stripped
{$SetPEFlags $0010} // Agressivly trim set
{$SetPEFlags $0020} // handle > 2GB addresses (default for x64 bit architecture?)
{$SetPEFlags $0040} // ?
{$SetPEFlags $0080} // Bytes reversed lo
{ the "Hi" Flags: }
{$SetPEFlags $0100} // 32 bit machine
{$SetPEFlags $0200} // Debug stripped
{$SetPEFlags $0400} // Patch on removable
{$SetPEFlags $0800} // Patch on net
{$SetPEFlags $1000} // System driver
{$SetPEFlags $2000} // It's a DLL
{$SetPEFlags $4000} // Uniprocessor only
{$SetPEFlags $8000} // Bytes reversed hi

Ps: ich hab nicht vor, abgesehen von #20, diese flags zu setzen, ich benötige es für ein PE-tool.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.679 Beiträge
 
Delphi 5 Professional
 
#2

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 05:01
Da selbst MS keine Konstante für diesen Wert definiert hat (siehe LOADED_IMAGE structure), wird das undefiniert bzw. unbenutzt oder reserviert sein.

Übrigens wäre die Verwendung bzw. Definition von Konstanten sinnvoller. Keiner will irgendwelche Magic Numbers in einem Code lesen.

Grüße
Dalai
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#3

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 09:17
Guten morgen und vielen Dank für diesen Link! (ich war zu doof für diese option brauchbare informationen zu finden)
Keine Bange, abgesehen von #20 (IMAGE_FILE_LARGE_ADDRESS_AWARE) nutze ich keine $SetPeFlags in meinen applikationen.
Ich brauchte die Information wenn ich selbst einen PE-Kopf auslese was was bedeutet.
Da reicht mir ein binär vergleich aus ohne Konstanten definieren zu müssen.

Thema erfolgreich beendet, besten Dank!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 10:18
Hallo,
die Erklärung müsste hier stehen.
http://www.blong.com/Articles/TrimTheFat/

Delphi-Quellcode:
const
  IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = $0040;
  IMAGE_DLLCHARACTERISTICS_NX_COMPAT = $0100;
Da es um DEP und ASLR geht, sind das dann doch interessante Flags.
Heiko
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#5

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 13:01
auch eine interessante seite, danke, wobei ich anmerken muss

Zitat:
Delphi relocation table removal

In the project file add Windows (or Winapi.Windows) to the uses clause and follow the uses clause with this:
{$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED}

This sets a PE file header characteristics flag telling Windows there is no relocation table. In addition, Delphi takes the hint and ensures that no relocation table is placed in the PE file. Easy!
stimmt so nicht oder der Delphi 7 Compiler macht nicht das was dort erklärt wird.
(ich fand keine "Delphi Version XYZ required to do so" im Text)
bei D7 wird zwar die Flag gesetzt aber die Relocation Table landet trotzdem im file.
mir pers. ist's egal da meine RT eh nur marginale grösse von ein paar bytes hat.
für alle die mit IDE/VCL unterwegs sind sieht die lage anders aus, da bläht sich sowas gerne mal auf.

aber generell stehen da ein paar gute tipps um schon beim compilieren etwas ballast loszuwerden. Dank!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#6

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 13:28
stimmt so nicht oder der Delphi 7 Compiler macht nicht das was dort erklärt wird.
(ich fand keine "Delphi Version XYZ required to do so" im Text)
Zwar nicht direkt in dem Post, aber in dem am Schluss verlinkten Post von Hallvard Vassbotn gibt es schon einen Hinweis gleich im ersten Absatz: http://hallvards.blogspot.de/2006/09...exe-files.html

Zitat:
its just about documenting an undocumented and unknown feature of the Delphi 2006 Win32 compiler (it is not implemented in D7 - I don't know about D2005 yet as I don't have it installed on this laptop anymore).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#7

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 13:47
Nun seh ich's auch

falls wer braucht hier ist ein tool samt delphi source was die .reloc entfernt.

http://www.jrsoftware.org/striprlc.php

Programmiert von Jordan Russel.

neuere delphi versionen werden's ja nicht mehr benötigen wie ich nun seh.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.679 Beiträge
 
Delphi 5 Professional
 
#8

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 15:12
@hoika:
Da geht's allerdings um SetPeOptFlags, nicht um SetPeFlags. Das sind zusätzliche Flags, wie man auch an dem identischen Werten von
Code:
IMAGE_DLLCHARACTERISTICS_NX_COMPAT = $0100;
IMAGE_FILE_32BIT_MACHINE = $0100;
sehen kann.

Grüße
Dalai
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#9

AW: "$SetPeFlags 40", was ist das?

  Alt 18. Jan 2018, 15:44
Das hatte ich bereits beim lesen verstanden, da ich die Opt's schon integriert hatte.
Danke für Warnung/Hinweis.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz