DLLs lesen

Dieses Thema DLLs lesen im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von wowische, 28. Okt. 2003.

Thema: DLLs lesen Hallo, liebe WinTotalerInnen! :) Ich habe lange gebraucht, mich zu überwinden, dies zu fragen, aber nun ist es...

  1. Hallo, liebe WinTotalerInnen! :)

    Ich habe lange gebraucht, mich zu überwinden, dies zu fragen, aber nun ist es soweit:

    Was muss ich tun, um eine DLL lesen zu können?

    Wenn ich mir so eine Programm-Bibliothek mittels QuickViewPlus ansehe, verstehe ich nur Bahnhof.

    Welches Programm, welches Tool muss ich mir also zulegen, um DLLs lesen zu können? (Oder gar um sie zu bearbeiten?)

    Oder ist die Darstellung einer DLL von z.B. QuickViewPlus richtig und ich muss eben lernen, wie das Durcheinander entziffert wird?

    Dies sieht etwa so aus:

    >>

    DYNAMIC LINK LIBRARY
    32-Bit für Windows 95 und Windows NT

    Technische Dateiinformationen:

    Bild-Datei-Header

    Signatur:00004550
    Maschine:Intel 386
    Anzahl Abschnitte:0004
    Zeit- und Datumsangabe:3b7e5684
    Symbol-Zeiger:00000000
    Anzahl Symbole:00000000
    Größe des optionalen Headers00e0
    Kenndaten:Die Datei ist ausführbar (d. h. keine unaufgelösten externen Referenzen).
    Die Zeilennummern wurden aus der Datei entfernt.
    Lokale Symbole wurden aus der Datei entfernt.
    32-Bit-Textverarbeitungsmaschine.
    Die Datei ist eine DLL-Datei.



    Bild mit optionalem Header

    Dateitypanzeiger:010b
    Verbindungseditor Version:7.00
    Größe des Codes:00009a00
    Größe der initialisierten Daten:00003c00
    Größe der uninitialisierten Daten:00000000
    Adresse des Eingangspunkts:000092c5
    Codebasis:00001000
    Datenbasis:0000b000
    Bildbasis:715c0000
    Ausrichtung des Abschnitts:00001000
    Ausrichtung der Datei:00000200
    Betriebssystem Version:5.01
    Bildversion:5.01
    Subsystemversion:4.10
    Reserved1:00000000
    Größe des Bildes:00010000
    Größe des Headers:00000400
    Kontrollsumme:000180ca
    Subsystem:Das Bild wird im Windows-Zeichen-Subsystem verarbeitet.
    DLL-Kenndaten:0000
    Größe des freien Stapelspeichers:00040000
    Größe des zugewiesenen Stapelspeichers:00001000
    Größe des freien Speicherbereichs für dynamische Variablen:00100000
    Größe des zugewiesenen Speicherbereichs für dynamische Variablen:00001000
    Ladeprogramm-Flags:00000000
    Größe des Datenverzeichnisses:00000010
    Virtuelle Adresse des Export-Verzeichnisses: 0000a210
    Größe des Export-Verzeichnisses: 0000073c
    Virtuelle Adresse des Import-Verzeichnisses: 00009730
    Größe des Import-Verzeichnisses: 0000008c
    Ressourcen-Verzeichnis
    Virtuelle Adresse: 0000e000
    Größe des Ressourcen-Verzeichnisses: 000003c8
    Tabelle für Basisadressverschiebung
    Virtuelle Adresse: 0000f000
    Größe der Tabelle für Basisadressverschiebung: 00000a5c
    Virtuelle Adresse des Debug-Verzeichnisses: 000011e0
    Größe des Debug-Verzeichnisses: 0000001c



    Export-Tabelle

    Name:NULL.dll
    Kenndaten:00000000
    Zeit- und Datumsangabe:3b7d7b54
    Version:0.00
    Basis:00000001
    Anzahl Funktionen:0000003e
    Anzahl Namen:0000003e

    OrdinalzahlEingangspunktName
    00000000922cGetHookAPIs
    000300007cb8LuaCopyFileW
    0004000091f5LuaCreateDirectoryW
    00050000326eLuaCreateFileW
    000600003441LuaDeleteFileW
    00070000312cLuaFSInit
    0008000033baLuaGetFileAttributesW
    000900003d76LuaGetPrivateProfileIntW
    000a00003366LuaGetPrivateProfileSectionNamesW
    000b0000397fLuaGetPrivateProfileSectionW
    000c000039efLuaGetPrivateProfileStringW
    000d0000385eLuaGetPrivateProfileStructW
    000e0000372eLuaGetTempFileNameW
    000f00003a5cLuaMoveFileW
    001000003629LuaRegCloseKey
    00110000356fLuaRegCreateKeyExW
    001200005f95LuaRegCreateKeyW
    001300006819LuaRegDeleteKeyW
    0014000067d8LuaRegEnumKeyExW
    001500005fc2LuaRegEnumKeyW
    001600005f53LuaRegEnumValueW
    001700005f16LuaRegOpenKeyExW
    001800005ed4LuaRegOpenKeyW
    00190000679aLuaRegQueryValueExW
    001a0000675aLuaRegQueryValueW
    001b00005e56LuaRegSetValueExW
    001c00006895LuaRegSetValueW
    001d00006949LuaRemoveDirectoryW
    001e00006907LuaSetFileAttributesW
    001f000035a2LuaShouldApplyShim
    0020000034c8LuaWritePrivateProfileSectionW
    002100001c0aLuaWritePrivateProfileStringW
    0022000038ceLuaWritePrivateProfileStructW
    0023000037a4LuacCreateFileW
    002400003acfLuacDeleteFileW
    002500007351LuacFSCleanup
    0026000073e9LuacFSInit
    002700007257LuacFindFirstFileW
    0028000074bfLuacGetFileAttributesW
    002900007263LuacRegCleanup
    002a000072ddLuacRegCloseKey
    002b00007b1fLuacRegDeleteKeyW
    002c000079fdLuacRegEnumKeyExW
    002d00007a58LuacRegEnumKeyW
    002e000078f2LuacRegInit
    002f00007dceLuacRegOpenKeyExW
    000100007b0fLuacRegOpenKeyW
    003000007bdfLuacRemoveDirectoryW
    003100007454LuatCopyFileW
    003200008526LuatCreateDirectoryW
    00330000853cLuatCreateFileW
    0034000084feLuatDeleteFileW
    003500008579LuatFSCleanup
    003600008281LuatFSInit
    003700008774LuatGetTempFileNameW
    0038000085ccLuatMoveFileW
    00390000858fLuatRemoveDirectoryW
    003a000085b6LuatSetFileAttributesW
    003b00008552LuatWritePrivateProfileSectionW
    003c0000862cLuatWritePrivateProfileStringW
    003d000085ebLuatWritePrivateProfileStructW
    00020000866aNotifyShims

    ... <<

    Dies ist nur ein Teil der DLL, und so sehen mit QuickViewPlus eigentlich alle aus - hier und da mit kleinen und großen Unterschieden, aber im Großen und Ganzen ähnlich.

    Wer kann mir helfen? Ich blick' da einfach nicht durch... ???

    Viele Grüße
    Wolfgang
     
  2. Hallo zurück,

    das ist jetzt etwas aufwendiger zu erklären. Eine DLL an sich ist erstmal eine fertig compilierte Funktionsbibliothek. Insofern ist es schwierig diese einfach so mit einem Tool zu öffnen und zu bearbeiten (wäre in vielen Fällen auch nicht empfehlenswert).
    Hierzu benötigt man den zugrundeliegenden Source-Code und je nach Entwicklungssprache auch die entsprechenden Entwicklungssysteme (z.B. VB6 oder VC6).

    Beim lesen dieser Bibliothek bekommt man meist auch nicht mehr zu sehen, als das was Du bekommen hast, nämlich eine Auflistung der in der DLL enthaltenen Funktionsnamen.

    Normalerweise braucht man jedoch eine Beschreibung was sich in den DLL's befindet und wie sie zu nutzen ist, da eine DLL entweder eine reine Funktionsbibliothek ist, oder sogenannte COM-Komponenten beinhalten (das sind im Groben gesagt (nicht schlagen ich weiß das es stark vereinfacht ist) eigenständige Komponenten die man->einfach' in sein Programm einbinden kann um z.B. Excel Funktionalität, oder die anderer Systeme->mit'-zu nutzen)

    Beispiele hierzu kannst Du finden wenn Du Dir mal sample-code über die Verwendung von DLL's der Windows API ansiehst, z.B. unter
    http://www.codeguru.com/vb/Win32/index.shtml

    Die Verwendung von COM-Komponenten ist etwas komplexer zu erklären, wenn Du aber Fragen diesbezüglich hast, kannst Du mich auch einfach anmailen.

    Ich hoffe ich hab Dich jetzt nicht vollständig :eek: :eek: :eek: und verschwinde mal wieder im Hintergrund.

    Der Vokalakrobat
    :)
     
  3. Herzlichen Dank für deine hervorragenden Erläuterungen! :)

    Ich habs so einigermaßen kapiert und nun nur noch eine Frage:

    Du schreibst: Normalerweise braucht man jedoch eine Beschreibung was sich in den DLL's befindet und wie sie zu nutzen ist.

    Was ist eine solche Beschreibung und wie komme ich da->ran?
    Ich habe übrigens nicht die Absicht, die DLLs zu bearbeiten. Ich will sie einfach lesen können - verstehen, was das Kauderwelsch darin bedeutet.
    Erklärt eine solche Beschreibung die Bedeutung der in den DLLs enthaltenen Funktionsnamen?

    Wenn ich deine Ausführungen richtig verstehe, bräuchte ich also die Originalsprache (den Source-Code), in der die DLLs geschrieben sind, und ggf. eben auch noch die Entwicklungssysteme - meines Erachtens ein ziemlich großer Aufwand, oder?!

    Leider ist alles unter der URL http://www.codeguru.com/vb/Win32/index.shtml in Englisch - da bräuchte ich mit Hilfe des Babylon-Translators auch für nur einen Absatz eine Stunde! - Und wüsste dann immer noch nicht, ob ich's richtig übersetzt habe.

    Vielleicht sollte ich, bevor ich mich mit DLLs befasse, Englisch und Fachenglisch lernen... ::)

    Nochmals herzlichen Dank und viele Grüße

    Wolfgang
     
  4. hp
    hp
    ich weis ja nicht wie weit du mit linux zurecht kommst, ich schlags dir aber einfach mal vor: installier dir linux, dort kannst du dann anhand der shared object (sind vergleichbar den dll´s) die programmiertechniken und die vorgehensweisen beim entwickeln von bibliotheken näherbringen, da ja dei ganzen teile im sourcecode vorliegen, bei ms produkten und bei ms selber wirst du dich schwer tun an originalsourcecode von dll´s zu kommen, es sei denn du gehörst zum elitären zirkel der windowsdevelopper, davon gehe ich mal aber nicht aus.

    greetz

    hugo
     
  5. Neben der Variante sich unter Linux mit der Philosophie von geshareten Funktionen vertraut zu machen, besteht immer die Möglichkeit zu versuchen manche DLL's durch einfaches suchen im Internet erläutert zu bekommen. Ist aber nur ein Versuch weil ab und an liegts nicht im Interesse des Verfassers seine DLL, inkl. Funktionsbeschreibungen freizugeben. Selbst Microsoft hält seine WinAPI Beschreibung gerne etwas unvollständig.
    Angeblich kann ein normaler Programmierer mit den nicht beschriebenen Funktionen eh nicht umgehen .. sagte man mal zu mir ;)

    Hast Du eigentlich eine bestimme DLL im Auge oder ist es allgemein gefragt ?

    Für die Analyse von COM-Dlls gibt es ein wunderschönes Tool mit Sourcen von SteveMcMahon .. leider auch alles auf englisch.

    Gruß das Sängerli
    :D
     
  6. Vielen Dank für eure Antworten!
    Jetzt bin ich tatsächlich im Bilde! 8)

    @hp:
    Ich kenne nichts außer Windows!
    Trotzdem will ich - irgend wann einmal - auch andere Betriebssysteme ausprobieren; auch Linux.
    Aber momentan hab' ich zuviel andere Dinge im Kopf, um dies in Angriff zu nehmen.
    Aber vielen Dank für die Idee; ich werd' sie mir notieren und bei Gelegenheit darauf zurück kommen! :)

    @derSaenger :
    Nein, ich hatte keine bestimmte DLL im Sinn, sondern fragte nur ganz allgemein - aus reiner Neugierde.
    Ich hatte im Oktober 1998 meinen ersten PC gekauft, habe mir nach und nach mittels verschiedener Fachlektüre und ebensolchen Programmen so einiges an Hardware-, Software- und Internet-Wissen selbst beigebracht und auf diese erkleckliche Art und Weise ein gefährliches Halbwissen angesammelt.
    ...Soll heißen, immer wenn ich mich mehr als nötig in die Materie vertiefe, fehlt ein bisschen (oder auch ein bisschen mehr) zum Verständnis.
    Die Frage nach den DLLs quält mich schon lange. Doch jetzt bin ich zumindest einigermaßen zufrieden, auch wenn ich die Dinger immer noch nicht lesen kann. Denn: Es liegt in diesem Falle nicht an meinem gefährlichen Halbwissen! ;D

    Also - vielen Dank nochmals, und -
    bis zur nächsten Frage! ;)

    Grüße
    Wolfgang
     
Die Seite wird geladen...

DLLs lesen - Ähnliche Themen

Forum Datum
System-DLLs werden nicht gefunden obwohl vorhanden Windows XP Forum 19. Juni 2013
Wie funktioniert die Registrierung von DLLs? Windows XP Forum 21. Jan. 2007
überflüssige dlls Windows XP Forum 19. Nov. 2006
S: Program,m, das anzeigt welche DLLs geladen werden Windows XP Forum 8. März 2005
Suche: prog mit dem man dlls öffnen kann Windows XP Forum 11. Jan. 2005