Was sind "Symbols" in einer DLL
-
Ich beschäftige mich seit kurzem mit DLL's und hab dazu auch schon ein paar kleine geschrieben. Da mich das Thema Shellcode auch ziemlich reizt hab ich mir dazu ein englisches tutorial als pdf von metasploit.org runtergeladen. Allerdings gibt es da etwas das ich nicht verstehe und zwar wäre das das wort "Symbols" im bezug auf dll's. Hab dazu auch schon ausführlich in google danach geschaut, aber finde da nur icon dll's. da es in dem tutorial darum geht die adressen der kernel32.dll zu finden, denke ich nicht das es hier um die icons geht die als grafisches element gemeint sind. Sprich was bedeutet "Symbol" hier in diesem Bezug?
Danke für eure Antworten im voraus

Grüße der DLL-Frager
-
Du müßtest mal so einen Satz mit "Symbols" im Zusammenhang bringen.
Mein Compiler meint mit "Symbols" meistens Variablen oder Zeiger, in der Regel bei Fehlermeldungen ("unresolved symbol xx in line...").Ich weiß nicht, ob es Deine Frage beantwortet.
-
danke für deine antwort. Also wenn das so ist, dann bezieht dich das wohl auf zeiger.
hier mal ein beispieltext aus der pdf
3.3 Resolving Symbol Addresses
At this point one has the tools necessary to determine the base address of
kernel32.dll; the only piece missing is how to resolve symbols not only in
kernel32.dll, but also in any other arbitrary DLL.
In the previous section it was mentioned that one of the potential mechanisms
for obtaining symbol addresses would be to use GetProcAddress. The problem
with this is that it’s a sort of cart before the horse situation. At this point
the only information one has is where in memory kernel32.dll can be found,
but that does no good as the offsets to functions inside the DLL itself will
vary from version to version. With that said it will be necessary to be able to
resolve function addresses, or at least that of GetProcAddress, without the use
of GetProcAddress itself.Grüße Dll-Frager

-
Es gibt zwei Wege, wie eine Funktion in einer DLL gefunden wird:
- Über eine Zahl
- Über einen NamenWenn ein Name definiert ist, kann man mittels "GetProcAddress" die Funktion mit diesem Namen ermitteln.
Schau Dir doch einfach mal die Symbole der DLL an:
http://www.dependencywalker.com/Und was ist jetzt Deine Frage?
-
ich wollte wissen was ein symbol in einer dll ist, aber du hasts ja gerade beantwortet
eine funktion in der dll die man über die zahl oder name aufrufen kann.ist das so korrekt? bitte verbesser mich, wenn das nicht simmt
Grüße Dll-Frager
-
Man kann auch eine Variable exportieren...
-
the only piece missing is how to resolve symbols not only in
kernel32.dll
(...)
In the previous section it was mentioned that one of the potential mechanisms
for obtaining symbol addresses would be to use GetProcAddress.Dieser Satz läßt darauf schließen, daß mit "symbol" tatsächlich Variablen oder Zeiger (oder Funktionen) gemeint sind.
-
Es können Variablen (Daten) oder Funktionen sein.
Du kannst Dir auch das COFF-Format anschauen, da ist das Format der DLL definiert:
http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx