vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: DLL an spezielle exe binden 
Autor: Schü
Datum: 26.09.14 12:35

naja. das kommt wohl nicht in Frage bei mir.
Erstens habe ich alles in VB.NET inkl. Steuerelemente, Multithreading-Klassen etc.
und 2. wollen wir ja nicht zurück.

Muss ich mich mal näher mit Ngen.exe beschäftigen...

Evtl. kann mir ja jemand irgend einen Link zu einem Tutorial o.ä. schicken...

Danke erstmal.

Schü
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

DLL an spezielle exe binden 
Autor: Schü
Datum: 17.09.14 16:32

Hallo.

Ich habe ein Projekt, welches eine selbst entwickelte DLL nutzt, um diverse Funktionen zu kapseln.
Grund: der Quellcode der Funktionen in der DLL soll nicht im Programmcode direkt einsehbar sein.
Die Funktionen werden also über die DLL ausgeführt.
Nun kann aber jeder, der die DLL hat, auch diese Funktionen in VB.net nutzen, da sie als Public deklariert sind.

Kann man die Nutzung der Funktionen/der DLL irgendwie auf die die EXE beschränken, sodass kein anderes Programm diese Funktionen nutzen kann?


Schü
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Manfred X
Datum: 17.09.14 17:00

Einfache Methode:
Du richtest in der DLL eine Klasse mit Passwort-Eigenschaft ein
(eventuell Verschlüsselung nutzen).

Beim Erstellen von Klassen in der DLL ist jeweils in deren Konstruktor zu prüfen,
ob das korrekte Passwort übergeben worden ist. Falls nicht, wird eine
Ausnahme ausgelöst.
Nur wenn die Exe beim Programmstart das Passwort übergibt, werden
die Klassen verfügbar und die Methoden der DLL-Kassen ausgeführt.






Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Schü
Datum: 24.09.14 17:32

Hallo Manfred,

leider kann ich mich erst jetzt melden (Urlaub).

Soweit verstanden. Ist denn die Klasse in der DLL, die Du meinst, nur einmal da oder
muss jede Klasse der DLL im Konstruktor ein PW unterstützen?

Hast Du evtl. ein Code-Fragment parat, wie ich das implementieren könnte?

Schü
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Manfred X
Datum: 24.09.14 18:27

Zunächst wäre zu klären, welche Ziele genau Du verfolgst.

Es macht kaum Sinn, eine DLL nur für eine bestimmte Anwendung zu erstellen.
Solchen Code kannst Du auch direkt in das EXE-Projekt aufnehmen.

Der Net-Precompiler übersetzt in eine "Zwischensprache" aus der der
zugrundeliegende Code wieder gewonnen werden kann.
Man verwendet deshalb spezielle Tools, um den Code gegen allzu leichte
"Übernahmen" zu schützen.

http://msdn.microsoft.com/de-de/library/bb979521.aspx

Beitrag wurde zuletzt am 24.09.14 um 18:35:28 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Schü
Datum: 25.09.14 11:16

Danke für den Link.

Es ist immer das gleiche: wenn man sehr komfortabel und recht Hardwareunabhängig Programmieren kann, hat man Einbußen in der Sicherheit hinzunehmen.

In meinem speziellem Fall habe ich ein Programm entwickelt, was zu einem großem Teil Optimierungen
für die Herstellung gewisser Produkte in der Industrie enthält.
Da der Quelltext des Hauptprogramms dem AG übergeben werden soll, ohne aber meine eigentlichen eigenen Algorithmen preiszugeben (so die Vereinbarung), habe ich diese in eine DLL gepackt, die das Hauptprogramm eben nutzt.
Dadurch können die Algo's genutzt werden, das HP auch ggf. geändert werden, aber eben nicht unmittelbar der Quelltext der Algo's eingesehenen werden (wenn man von bösartiger Dekompilierung o.ä. absieht). Dann ist eh alles Sch*****

Da auch das Hauptprogramm vor "unberechtigter Benutzung geschützt" ist, macht es wenig Sinn, eine
ungeschützte DLL beizufügen, deren Algo's jeder ja in einem eigenen Programm nutzen kann.

Daher soll die DLL auch der Einfachheit halber an die Exe gebunden werden.

Ich denke, Ich mache das mit eine Klasse, die eine interne Shared-Eigenschaft hat, sodass diese nur einmal gesetzt wird und nicht jedes mal abgefragt werden muss. Dies gilt dann offenbar für alle Instanzen der DLL für das Hauptprogramm.

Das werde ich zunächst mal testen...

Danke Schü
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Manfred X
Datum: 25.09.14 16:49

Wenn Du Deine Algorithmen halbwegs sichern willst,
mußt Du auf Plattform-Unabhängigkeit verzichten und
in die Bibliothek in Maschinensprache kompilieren -
vielleicht das Ngen-Tool mal näher anschauen.

Ansonsten machen Sicherungs-Maßnahmen nahezu keinen Sinn.
Der Code der Algorithmen kann meist - mit einem Mausclick -
aus der Zwischensprache gewonnen und in andere Anwendungen
kopiert werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Schü
Datum: 26.09.14 07:44

Danke für den Hinweis.

Ich hatte schon mal Ngen.exe angeschaut (siehe deinem Link).
Nur fehlt mir dazu die Info, was mit der Übersetzung in Maschinensprache für
Konsequenzen entstehen. wie viele unterschiedliche Versionen der DLL müsste man erstellen und
wann laufen diese denn nicht?
Was bestimmt denn die Lauffähigkeit einer solchen DLL, wenn wir bei Windows XP bis Windows 8.1 sprechen?

Hat damit jemand Erfahrung und wie wird so eine DLL verteilt?

Schü
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Manfred X
Datum: 26.09.14 12:22

NGen habe ich bisher nicht verwendet.

Grundsätzlich muß man wohl unterscheiden,
ob Code gegen Kopieren/Analysieren gesichert werden soll oder
ob auch die Nutzung von Klassen/Methoden behindert werden soll.

Im ersten Fall erstelle ich "native" C++-Bibliotheken, deren Methoden
in VB.Net geeignet importiert werden müssen.
Im zweiten Fall erstelle ich in der nativen DLL Methodenaufrufe,
deren erforderliche Parameterbelegung nach außen nicht direkt erkennbar ist.
Entspricht ein Aufruf nicht exakt den Erfordernissen, stürzt diese Bibliothek
einfach ab.











Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Schü
Datum: 26.09.14 12:24

OK.

und alles in C/C++?
Keine Chance das irgendwie von VB.net zu übernehmen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Manfred X
Datum: 26.09.14 12:32

VB6 prof. kann Bibliotheken in Maschinensprache übersetzen.
So weit ich erinnere, wird dafür ein modifizierter C-Compiler verwendet.
Aber das ist dann eine ActiveX-DLL, die also im Ziel-System registriert
werden muß. Das anwendende Projekt benötigt einen COM-Verweis darauf.





Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Manfred X
Datum: 26.09.14 12:39

So weit ich verstanden habe, geht es Dir doch nur um
bestimmte sensible Algorithmen, die Du speziell entwickelt
hast. Diesen Code könntest Du auslagern.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Schü
Datum: 26.09.14 12:42

ja. aber nicht in C++ oder VB6.0, dann müsste ich alles neu machen. das sind Wochen!

sonst sind die schon in einer DLL (VB.NET) ausgelagert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Manfred X
Datum: 26.09.14 12:46

Das spricht aber nicht dafür, daß Dein Programm gut strukturiert ist .....
Bestimmte sensible Klassen auszulagern, sollte kein allzu großes Problem sein.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DLL an spezielle exe binden 
Autor: Schü
Datum: 26.09.14 12:48

Ja. Du hast natürlich Recht. Die Struktur ist sicherlich verbesserungswürdig.
Aber der Aufwand wäre einfach zu groß für mich.
Ich habe keinerlei Ahnung von C++ oder C.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel