none
Updaten eines Programmes RRS feed

  • Frage

  • Hallo Leute,

    wenn man eine Anwendung erstelle (gleich welcher Sprache, nehme im Beispiel mal c# und C++),

    dann hat diese doch eine Version und Abhängigkeit zu den anderen Dateien und DLL's.

    Beim Updaten muss man diese ja austauschen.

    Meine Frage wäre nun: ist das einfach so möglich, also wenn ich z.B. eine Exe und eine DLL habe, und die DLL hat eine Verbesserung (aber nur die DLL, die EXE bleibt gleich), die Daten auszutauschen. Denn es wäre Nonsens, vor allem bei Menschen mit weniger guten Netzwerk, beide Komponenten neu herunterzuladen. Also würde man nur die neue DLL downloaden (Windows lädt ja auch nur neue DLL runter, und nicht nochmals das gesamte System) und aktuallisieren.

    Kann man dann ein einfach die alte (wenn die EXE nicht läuft) löschen und die DLL austauschen?

    Und wenn Ja, stellt das dann nicht ein Sicherheitsrisiko dar. Wie kann man dann die DLL's schützen (abgesehen davon, dass man Sie signiert, und bei jedem Start die Signatur geprüft wird.)

    Mit freundlichen Grüßen

    Thomas Roskop


    (C) Thomas Roskop, 2013

    Montag, 17. März 2014 18:04

Antworten

  • Hallo Thomas Roskop

    Ja, man kann die DLL einfach austauschen. Damit die neue DLL mit der alten EXE zusammen arbeitet müssen diese Kompatibel sein. Zur Aktualisierung ist es unter Umständen noch nicht einmal nötig die komplette DLL in einem Update bereit zu stellen. Für die Aktualisierung kann ein deutlich kleineres Aktualisierungspaket reichen, welches nur die Binärdifferenz zwischen alter und neuer DLL enthält.
    Inwiefern siehst Du hier ein erhöhtes Sicherheitsrisiko? Ein dritter der die DLL austauschen kann, der kann doch auch gleich die ganze EXE austauschen.

    Gruß


    - Florian

    Donnerstag, 20. März 2014 07:48
  • Meine Frage wäre nun: ist das einfach so möglich, also wenn ich z.B. eine Exe und eine DLL habe, und die DLL hat eine Verbesserung (aber nur die DLL, die EXE bleibt gleich), die Daten auszutauschen.
    Prinzipiell geht es, es hängt aber von der DLL ab, sprich wie die Funktionen exportiert sind. Bei Decorated/Mangled exports kann es zu Problemen kommen, wenn EXE und DLL nicht mit exakt dem gleichen Compiler / Linker gebaut wurden.
    Denn es wäre Nonsens, vor allem bei Menschen mit weniger guten Netzwerk, beide Komponenten neu herunterzuladen.
    Nun was Nonsens ist, ist immer sehr subjektiv. Ich unterstelle mal Deine DLL wird keine Hunderte Megabyte groß sein. Bei wenigen MB ist so eine DLL selbt mit einer schlechten Verbindung recht schnell geladen....
    Kann man dann ein einfach die alte (wenn die EXE nicht läuft) löschen und die DLL austauschen?
    Ja.
    Und wenn Ja, stellt das dann nicht ein Sicherheitsrisiko dar. Wie kann man dann die DLL's schützen (abgesehen davon, dass man Sie signiert, und bei jedem Start die Signatur geprüft wird.)
    Nun da ich weis nicht ob es ein Sicherheitsrisiko ist. Zu dem Thema kann der Programmierer sich halt komplett austoben...

    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    Donnerstag, 20. März 2014 11:22

Alle Antworten