![]() |
Betriebssystem: Win 98 / ME,Win 2000,Win XP,Win Vista,Win 7
Unterscheidung verschiedener Exe-Typen
Angenommen wir haben nun ein Programm Anwendung.exe.
Und wollen es ausführen. Woher weiß Windows jetzt, um was für einen Anwendungstypen es sich handelt?
Kann man auch irgendwo eigene Typen festlegen? :gruebel: |
AW: Unterscheidung verschiedener Exe-Typen
Java wird anhand der Endung erkannt (.class, .jar)
.Net ist ja eine Exe, die das Framework lädt Nativ anhand der Endung (.exe, .com) |
AW: Unterscheidung verschiedener Exe-Typen
Denke das jede EXE im Prinzip das Laden Ihrer Bibliothek selber macht. Delphi mit Laufzeitpackages ja auch.
Windows wird nur den PE-Header? prüfen, ob es eine gültige Executable ist... schon wegen DOS/16/32/64Bit PS. Ich kann mit einem Byte auch 257 Zustände speichern |
AW: Unterscheidung verschiedener Exe-Typen
Für .net gibt es ein spezielles Flag im PE-Header soweit ich weiß. Bei COM, EXE etc. weiß ich nicht, ob es überhaupt eine Unterscheidung gibt. Ich kann meine Exen problemlos in .com umbenennen und ausführen... (wird ja auch von Malware gerne mal gemacht um DAUs in die Irre zu führen).
|
AW: Unterscheidung verschiedener Exe-Typen
Zitat:
Ich bin überzeugt, dass man sowas auch mit anderen Versionen hinkriegen kann, ausreichende Systemkenntnisse vorausgesetzt, so dass man etwa ein Programm schreiben könnte, das mit .NET läuft wenn vorhanden und sonst als Win32-Applikation. Das macht nur niemand, weil man die Software grossenteils 2 x schreiben müsste. Gruss Reinhard |
AW: Unterscheidung verschiedener Exe-Typen
Soetwas wie Fat oder universal binaries unter MacOS bze MacOSX
|
AW: Unterscheidung verschiedener Exe-Typen
Zitat:
Ausserdem gab es, glaube ich, auch Größenbegrenzungen, eine .Com durfte nur 64K groß sein, aber da bin ich mir nicht sicher. Gruß K-H |
AW: Unterscheidung verschiedener Exe-Typen
Zitat:
|
AW: Unterscheidung verschiedener Exe-Typen
Windows bekommt über die EXE-Header mit, um was es sich handelt und jenachdem werden COM/EXE/DLL/... dann unterschiedlich behandelt.
Warum man ein EXE in 'ne COM umbenennen kann ich auch einfach erklärt werden. > Der Teil, welcher diese Anwendungen analysiert/startet, ist der Selbe |
AW: Unterscheidung verschiedener Exe-Typen
![]() Letztendlich gibt Windows die EXE zum Ausführen auch nur an die einzelnen Subsysteme weiter (64,32,16...) und schlägt fehl, wenn keines davon erfolgreich war. |
AW: Unterscheidung verschiedener Exe-Typen
Übrigens gibt es keine java-exen ;) Das sind meistens (native) Programme die einfach die jar starten.
MfG Fabian PS: Okay es kann java-exen geben, aber das hat dann nicht mehr mit der JVM zu tun! |
AW: Unterscheidung verschiedener Exe-Typen
Na es ist ja noch viel schlimmer
Man braucht nur eine "Ausführbare Dateiendung" damit der Doppelklick ein Programm startet. Benenne einfach mal eine beliebige .EXE in .BAT um. Die startet so wie gewohnt. Gruß K-H |
AW: Unterscheidung verschiedener Exe-Typen
Das ist eigentlich egal.
- die BAT läuft mit den selben Rechten, selbst wenn eine EXE drin steckt - die BAT und die EXE können Dinge am System verändern (solange sie die nötigen Rechte besitzen) - man weiß, daß bei Beiden (BAT und EXE) verschiedene Dinge passieren können - im Endefekt kommt es also auf's Selbe raus, egal ob als EXE oder BAT (versteckte EXE) |
AW: Unterscheidung verschiedener Exe-Typen
Zitat:
Dann muss der JIT-Compiler ja schon geladen sein, sonst kann die EXE ja nichts tun. Zitat:
Danke nochmal an alle!:thumb: [OT] Zitat:
Ich schaffe nur 256 :gruebel: 0, 1, 2, 3, ..., 255 Oder habe ich da einen Denkfehler? [/OT] |
AW: Unterscheidung verschiedener Exe-Typen
Du kannst ja mal auf Luckies Webseite oder im Forum nach dem Code suchen, welcher die CompileTime ausließt ... da hast du die Header mit enthalten, daß dieses dort ausgelesen wird.
Mit TreeStateBits bekommt man 6561 Werte da rein. (Strom an, Strom aus oder so lala ... oder ... Minus, nix oder Plus) |
AW: Unterscheidung verschiedener Exe-Typen
[OT]
Zitat:
Byte-Element (Object, Datenbankfeld) hat die Zustände: 0-255 oder null An Chuck Norris komme ich nicht ran ;) PS: Oder wenn ich himitsu's Hinweis lese, mit null für jedes Bit eben noch mehr. [/OT] |
AW: Unterscheidung verschiedener Exe-Typen
Habe mir jetzt einfach mal
![]() Interessant finde ich, dass .NET von Windows nicht als Subsystem angesehen wird:
Code:
Zu .NET taucht erst später ein Feld im Optional Header auf:
Constant Value Description
IMAGE_SUBSYSTEM_UNKNOWN 0 An unknown subsystem IMAGE_SUBSYSTEM_NATIVE 1 Device drivers and native Windows processes IMAGE_SUBSYSTEM_WINDOWS_GUI 2 The Windows graphical user interface (GUI) subsystem IMAGE_SUBSYSTEM_WINDOWS_CUI 3 The Windows character subsystem IMAGE_SUBSYSTEM_POSIX_CUI 7 The Posix character subsystem IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 Windows CE IMAGE_SUBSYSTEM_EFI_APPLICATION 10 An Extensible Firmware Interface (EFI) application IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER11 An EFI driver with boot services IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 An EFI driver with run-time services IMAGE_SUBSYSTEM_EFI_ROM 13 An EFI ROM image IMAGE_SUBSYSTEM_XBOX 14 XBOX
Code:
Dem Verweis zur .cormeta-Section bin ich gefolgt. Aber das "(Object Only)" irritiert mich. :shock:
208/224 8 CLR Runtime Header The CLR runtime header address and size. For more information, see section 6.10, “The .cormeta Section (Object Only).”
Also kann's das nicht sein :glaskugel: Aber sonst finde ich dort nirgends etwas dazu... Kennt sich hier jemand genauer mit den Headern aus und hat vielleicht einen kleinen Hinweis für mich? [EDIT] Zitat:
[EDIT2] Bin ich zu blöd, oder warum finde ich den Code nicht? :gruebel: Wie heißt das Programm / die Unit / wasauchimmer denn? |
AW: Unterscheidung verschiedener Exe-Typen
Zitat:
![]() Zitat:
Delphi-Quellcode:
Zustände mehr in 8 Bit abspeichern. :thumb:
2^(UncompressedSize)-2^(8)
Also scheint sich Chuck Norris doch nur im Rahmen des Möglichen zu bewegen :stupid: (Und ja, ich weiß das es den Komprimierungsalgo nicht geben kann)^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 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