AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi DLL Funkt. Statisch/Dynamisch einbinden > Vor und Nachteile?
Thema durchsuchen
Ansicht
Themen-Optionen

DLL Funkt. Statisch/Dynamisch einbinden > Vor und Nachteile?

Offene Frage von "richard_boderich"
Ein Thema von richard_boderich · begonnen am 20. Dez 2007 · letzter Beitrag vom 20. Dez 2007
Antwort Antwort
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

DLL Funkt. Statisch/Dynamisch einbinden > Vor und Nachtei

  Alt 20. Dez 2007, 14:00
Hallo allerseits!

Ich wollte mal Fragen wo genau die Vorteile und Nachteile beider Methoden liegen? Besonders interessiert mich dies im Bezug auf Resistenz gegen Hooks.
Sprich welche Methode ist hinterher schwerer zu hooken? Oder mach es keinen Unterschied? Gibt es eventuell Maßnahmen um Hooking auf NTDLL Funktionen zu verhindern bzw. zu erkennen.

mfG Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: DLL Funkt. Statisch/Dynamisch einbinden > Vor und Nac

  Alt 20. Dez 2007, 14:49
Hi,
was das Hooking angeht, so kann ich leider nicht viel dazu sagen.

Allgemein unterscheiden sich die beiden Varianten vorallem im Zeitpunkt der Bindung. Da DLLs gerade entworfen wurden, um das dyn. Binden zu erlauben, kommt die dyn. Bindung dem entsprechend näher. Hier kann der Code genau dann geladen werden, wenn er benötigt wird (und danach eben auch wieder entladen). Das schont ggf. Ressourcen. Vorallem aber ermöglicht dieses Verfahren es, dass man erstmal schaut, ob eine Datei gibt, die gebunden werden kann. Das Vorhandensein von Dateien lässt sich vorab prüfen und Fehler können leicht behandelt werden. Insbesondere kann man auch unbekannte DLLs laden (bei denen die Schnittstelle, aber nicht der Name bekannt ist, z.B. Plugins).
Für die statische Bindung spricht eigentlich nur die einfachere Syntax, da der Code zum Laden (auch nicht weiter kompliziert) entfällt. Hier muss jedoch der Name der Datei schon zur Übersetzungszeit bekannt sein, wird die zugehörige DLL nicht gefunden, löst dies immer eine Ausnahme aus.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#3

Re: DLL Funkt. Statisch/Dynamisch einbinden > Vor und Nac

  Alt 20. Dez 2007, 16:24
Hi,

wird eine DLL statisch geladen und ist dann nicht vorhanden, gibt es eine Fehlermeldung und dein Programm ist weg. Beim dynamischen laden kannst du vernunftig reagieren. Benötigt nur ein AddOn deines Programmes die DLL, so ist es blöd, wenn das Proggi ohne DLL nicht läuft. Reagierst du beim dynamischen Laden darauf, funzt dein Proggi weiter, nur die zusätzliche DLL-funktionalität nicht.

Das war jetzt sehr populärwissenschaftich gesprochen, trifft aber einen praktischen Aspekt.

Was der Unwissende da gesagt hat hört sich natürlich viel toller an.

Gruß oki
42
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:32 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