Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi loadlibrary problem (https://www.delphipraxis.net/78128-loadlibrary-problem.html)

Olli 30. Sep 2006 17:12

Re: loadlibrary problem
 
Zitat:

Zitat von OldGrumpy
Alternativ kannste mir eine der DLLs auch mal zugänglich machen, dann schau ich mal rein, wo das Ding auf die Nase fällt. Btw, GAR KEINE Imports? Das wäre aber doch schon etwas ungewöhnlich :) Unter w2k ist dem OS-Loader so ein Executable z.B. so suspekt dass das Laden verweigert wird :) (Genauer: In den Imports muss eine Systemkomponente auftauchen, ich bin mir gerade nicht sicher obs user32.dll oder kernel32.dll war, müsste ich mal nachschauen)

Kernel32! Die wird benötigt, weil Win32 eben "nur" eines der vielen Subsysteme ist. Unter NT/2K/XP/2K3/Vista geht es jedenfalls nicht, daß man eine Anwendung ohne Importe hat. Unter 9x/Me sollte es keine Probleme machen.

OldGrumpy 30. Sep 2006 17:50

Re: loadlibrary problem
 
Das geht schon sehr gut, diverse Exe-Packer und -Crypter, usw. arbeiten z.B. nach dem Prinzip, die haben keine Importtable im PE-Image sondern generieren die zur Laufzeit dynamisch. Und ab XP aufwärts kann ich sehr wohl wieder eine Exe haben die gar keine statischen Imports hat... Nur bei W2K ist der Loader so penibel.

Olli 30. Sep 2006 18:21

Re: loadlibrary problem
 
Zitat:

Zitat von OldGrumpy
Das geht schon sehr gut, diverse Exe-Packer und -Crypter, usw. arbeiten z.B. nach dem Prinzip, die haben keine Importtable im PE-Image sondern generieren die zur Laufzeit dynamisch. Und ab XP aufwärts kann ich sehr wohl wieder eine Exe haben die gar keine statischen Imports hat... Nur bei W2K ist der Loader so penibel.

Laufzeit und Loader sind aber unterschiedliche Dinge. Wie gesagt, komischerweise ging es bei mir bisher auf keinem NT-System. Kannst mir ja gern mal die EXE zukommen lassen - würde mir das gern mal mit Debugger, Disassembler usw. anschauen. Das Problem ist nämlich, daß Win32-Prozesse eine Initialisierung seitens des Loaders durchlaufen, die es notwendig macht, daß Kernel32 schon vor der Ausführung des Hauptthreads geladen sein muß.

OldGrumpy 1. Okt 2006 03:09

Re: loadlibrary problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anbei die vermutlich kleinste Exe der Welt ;) Ohne Import der kernel32.dll - und unter W2k (SP4 getestet) geht sie nicht, weil der Loader "user32.dll" bei den Imports zwingend erwartet, das "user32" reicht nicht aus. Unter XP kein Problem :)

Olli 2. Okt 2006 20:02

Re: loadlibrary problem
 
Zitat:

Zitat von OldGrumpy
Anbei die vermutlich kleinste Exe der Welt ;) Ohne Import der kernel32.dll - und unter W2k (SP4 getestet) geht sie nicht, weil der Loader "user32.dll" bei den Imports zwingend erwartet, das "user32" reicht nicht aus. Unter XP kein Problem :)

Da ging wohl was verloren, die DP schmeißt mich heute regelmäßig raus ...

Es mag die kleinste EXE-Datei sein, aber nicht die kleinste PE-Datei. Sie ist nämlich ohnehin ungültig - daß sie funzt hat sie wohl exakt dieser Eigenschaft zu verdanken.

OldGrumpy 3. Okt 2006 03:07

Re: loadlibrary problem
 
Warum ist sie ungültig? Wäre sie das, müsste sie ja vom Loader abgelehnt werden ;)

rd5pro 3. Okt 2006 05:22

Re: loadlibrary problem
 
In einer der beiden DLLs dürfe wohl unter USES... eine Unit auftauchen, die für das bLOCKierEN verantwortlich sein dürfte.

Roland

Olli 3. Okt 2006 10:18

Re: loadlibrary problem
 
Zitat:

Zitat von OldGrumpy
Warum ist sie ungültig?

Schau dir die Datei in einem Hexeditor an und vergleich sie mit den PE-Spezifikationen.

Zitat:

Zitat von OldGrumpy
Wäre sie das, müsste sie ja vom Loader abgelehnt werden ;)

Sehr interessante Theorie. Nach dieser Theorie sind Sicherheitslücken in Software dann wohl Standardverhalten, welches der Softwaredesigner nur vergessen ht in die Spezifikation aufzunehmen. :|

Übrigens, der W2K-PE-Loader lädt solche Dateien generell nicht. Da du ja nun offensichtlich aus Deduktion Schlüsse ziehst, ist mein Schluß - nach Deduktion - daß der Loader die Datei ablehnt. :stupid:

Sauerkrautpoet 4. Okt 2006 16:31

Re: loadlibrary problem
 
folgende strukturelle frage:

ich habe ein funktionsmodul und ein datenmodul welches in der defekten dll ist. das funktionsmodul benutzt (uses) das datenmodul. das ist der einzige unterschied zu allen anderen dlls (die haben nur datenmodule, da nicht so massig viele funktionen benötigt werden).
sieht dann ungefähr so aus:
DLL-Form >>funktionen>>daten
>>I/O-Form(Reports)>>Reportdaten
darf ich die abhängigkeiten der module nicht so sehr auftröseln? kann ich mir garnicht vorstellen...

ich bekomm noch nen mittelschweren anfall :(



@old-grumpy: hat sich was mit meinen gesendeten dateien was ergeben?

Olli 4. Okt 2006 21:31

Re: loadlibrary problem
 
Ein wenig mehr Code (z.B. die "DllMain") könnte u.U. helfen das Problem zu identifizieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 2 von 3     12 3      

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