Announcement

Collapse
No announcement yet.

Wie erzeuge ich dlls ohne Informationen über nicht exportierte Klassen/Funktionen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie erzeuge ich dlls ohne Informationen über nicht exportierte Klassen/Funktionen

    Hallo,

    ich habe mit dem Borland C++Builder 6 eine dll erzeugt. Diese dll exportiert einige Klassen und Funktionen, die von außen aufgerufen werden sollen. Die Namen dieser Klassen/Funktionen sind in der dll als Strings gespeichert, damit die Zuordnung zum Einspringpunkt klappt (wie auch in der zugehörigen .lib-Datei). Öffne ich die dll allerdings mit einem Editor, so sind auch ALLE anderen Klassen/Funktionsnamen als Strings irgendwie verewigt. Gibt es eine Compiler/Linker-Option, mit der man das ausschalten kann (ich habe schon mit 'Optimierung' kompiliert)? Ist alternativ ein Tool verfügbar, das diese Strings aus der dll entfernt (wie z.B. der 'strip'-Befehl in der Unix-Umgebung)? Übrigens: werden die dlls mit VC++6.0 erzeugt, so sind diese überflüssigen String standardmäßig NICHT vorhanden und die dll ist WESENTLICH kleiner.

    Vielen Dank,

    platypus

  • #2
    Hast Du irgendwelche Debugger-Informationen integriert? Ist leider auch schon meine einzige Idee.<p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Was ist das für eine DLL die du mit einem Editor öffnen kannst??

      Natürlich kannst du jedes ausführbare Programm mit einem Editor öffnen, aber sinnvolles ist dabei nicht zu sehen (Aufrufparameter, Rückgabewerte). Zwar sind Namen und anderes zu sehen, aber etwas "anfangen" kann man damit kaum.

      Klar das eine DLL von MSVC kleiner ist. Ms installiert alle benötigten Bibliotheken bei der Installation des Betriebssystemes.

      Wenn du eine so hochgeheime, einmalige DLL entworfen hast, solltest du diese nicht direkt verwenden, sondern verschlüsseln und es durch dein Programm entschlüsseln lassen und dann aufrufen.

      DLL's habe wie EXE ein festes Format wie sie erzeugt werden, und wie sie aufgebaut sind

      Ansonsten prüfe dass, was Mario gesagt hat:

      Debug-Optionen

      und

      Stringklasse
      Christian

      Comment


      • #4
        Hallo,
        um die CBuilderklassen nich zu veröffentlichen muß Du lediglich den Eintrag #pragma package(smart_init) in der entsprechenden Datei löschen. Dann wird die Klasse nicht mehr exportier.

        Gruß
        Hartje Stende

        Comment

        Working...
        X