AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [DLL, HID] Zugriff auf DLL ohne Exports
Thema durchsuchen
Ansicht
Themen-Optionen

[DLL, HID] Zugriff auf DLL ohne Exports

Ein Thema von Rollo62 · begonnen am 4. Mai 2017 · letzter Beitrag vom 6. Mai 2017
 
Rollo62

Registriert seit: 15. Mär 2007
3.942 Beiträge
 
Delphi 12 Athens
 
#1

[DLL, HID] Zugriff auf DLL ohne Exports

  Alt 4. Mai 2017, 10:44
Hallo zusammen,

ich habe hier eine DLL von einem Gerät bekommen, das sich als HID Device ansprechen lassen soll.
Das HID Device kann man auch sehen und ansprechen, nur leider soll der Zugriff über besagte DLL erfolgen.
Natürlich nur die DLL, und keine .H oder .def Datei vorhanden.

Die DLL hat aber keinerlei Exports, weder DLL-Tools oder DependencyWalker können etwas erkennen.
Ich habe versuche die Funktionen per Index/Order zu enumerieren, es kommt aber gar nichts dabei heraus
(andere DLLs lassen ihre Funktionen damit wunderbar auflisten).

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  LRes: LPWSTR;
  pwc: PWideChar;
begin
    if FLib <> 0 then
    begin

        repeat

            Button3.Tag := Button3.Tag + 1;

            LRes := MakeIntResource( Button3.Tag );

            pwc := PWideChar( LRes );

            Memo1.Lines.Add( 'GetProcAddress (' + Button3.Tag.ToString + ') ' );

            FProc := GetProcAddress(FLib, pwc );

            if FProc <> nil then
            begin
                Memo1.Lines.Add( '--> success 0x' + IntToHex( Cardinal( FProc ) ) );
            end
            else
            begin
                Memo1.Lines.Add( '--> failed ' );
            end;

        until (FProc = nil);

    end;
end;
Ich hätte da mal ein paar Fragen an die DLL/HID Experten:
  • DependencyWalker zeigt Links zu vielen 32-Bit Funktionen (Kernel32, ...),
    deshalb gehe ich davon aus das die DLL auch 32-Bit ist.
    Ich habe versucht da mit Win32-Test zuzugreifen, oder muss ich das irgendwie anders machen (Stichwort WoW64) ?
  • Wenn die DLL 32-Bit im 64-Bit System ist, können dann 32/64 Bit Apps beide damit arbeiten ohne Verrenkungen ?
  • Kann es sein das eine DLL keine Funktionen per GetProcAddress mit Index s.o. exportiert, und trotzdem
    in VS oder .NET linkbar ist ?
  • Braucht ein HID Controller eine solche Geräte-DLL, wenn ja gibt es da vielleicht neuere Registierungsmethoden
    für .NET die ich nicht kenne ?
  • Soweit ich weiis wird .NET möglichst nicht mit unmanaged DLLs arbeiten, oder gibt es "managed" DLLS für .NET
    mit anderem Mechanismus ?
    Wenn ja, wie könnte ich das feststellen. ?
  • Gibt es vielleicht ein Tool was solche versteckten Funktionen-Exports automatisch disassemblieren könnte
    (ohne das man es wirklich selber debuggen müsste, dafür habe ich zu wenig Zeit) ?

Für eure Einschätzung wäre ich sehr dankbar, sorry für die viellen blöden fragen.
Aber ich habe die letzten Jahre DLLs möglichst verbannt (solange bis mir dann doch wieder diese Dinos
über den Weg laufen).
Und dann noch DLLs ohne jegliche Dokumentation, das ist für mich der Horror hoch drei

Rollo

Geändert von Rollo62 ( 4. Mai 2017 um 10:48 Uhr)
  Mit Zitat antworten Zitat
 


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 22:40 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