Kurioses Problem von öffnen eigener Anwendungen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von peterfido.

    Kurioses Problem von öffnen eigener Anwendungen

    Nabend,

    habe ein sehr kurioses Problem, und zwar habe ich mir für mein Programm einen Updater gebaut. Dieser lädt also die neuste Version meines Programms, danach soll er das Hauptprogramm wieder starten. Allerdings ist mir dabei aufgefallen, dass der Programmaufruf gar nicht funktioniert, unabhängig von der Funktionalität des Updaters.
    Das ganze mache ich ganz einfach über Process.Start, dann erscheint es ganz kurz im Task Manager und verschwindet dann. Ähnliches Phänomen habe ich beobachtet wenn die eine Bibliothek die ich brauche im Ordner fehlt, dies ist aber nicht der Fall.
    Habe dafür echt gar keine Erklärung, im Load der Form befindet sich auch kein Close Befehl o.Ä.

    Vielleicht hat einer Ähnliche Probleme mal gehabt, und bitte keine Fragen nach Codes dies würde nicht zur Problemlösung beitragen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ja, das tun sie, oder willst du etwa, dass deine Clients mit Viren beliefert werden?
    Außerdem wird man ohne Code doch recht wenig zum Problem sagen können.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hm, nutze doch einfach das Updatesystem.NET, da geht das alles automatisch und das ist ganz einfach zu regeln ;)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich dachte Dein Hauptprogramm soll nach Laden des Updates wieder gestartet werden?
    Und das ist eine Antwort.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich kann es auch unabhängig der Funktionen des Updaters nicht mit einem externen Programm starten! Wenn ich in der Task Leiste einen Rechts Klick auf das Hauptprogramm mache, und das Programm von da aus starte geht es auch nicht. DAS ist die Problemstellung.
    Dann brauchen wir aber den Code des Form-Load-Events. ^^
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich vermute, es hat nicht viel mit deinem Code, sondern mit Projekteinstellungen oder Resourcen zu tun. Beispielsweise kann es sein, dass du die Einstellung aktiviert hast, die nur eine Instanz deines Programmes erlaubt und die erste läuft noch, wenn du die zweite starten willst. Oder du hast eine Abhängigkeit, die Probleme macht, wenn mehrfach auf sie zugegriffen wird. Naja, poste mal Form-Load Code, dann sehen wir weiter.

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !

    Moin..
    fang doch erstmal langsam an, und schaue, ob ein anderes Programm sich mit deinem Update starten lässt.
    falls ja.. geht's weiter..
    Wie ist das mit deinem Updater?
    Startet erst das Hauptpgramm.. das dann den Updater... und das dann wieder (falls ein Update vorliegt) später wieder das hauptprogramm?
    Falls ja, ist deine "alte Version" vielleicht noch im Speicher.
    Eine andere Möglichkeit.. evtl. wird dein Programm, sobald du den Updater beendest auch wieder beendet (Warum auch immer). Schau auch mal in diese Richtung.

    Trade schrieb:

    Ja, das tun sie, oder willst du etwa, dass deine Clients mit Viren beliefert werden?

    Was'n das für 'nen Blödsinn?
    Seit Jahren laden ich meine neuesten Update per Software nach. Wie soll da bitteschön ein Virus reinkommen? (Bitte nun nicht mit dem Typ am Flughafen kommen, der heimlich Pakete austauscht!!)
    Es sei denn der wäre schon von mir dort drinnen, dann nutzt auch der MS Updater nichts.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „RoulettePilot“ ()

    Wieso? Unsignierte Binaries die irgendwo aus'm Netz herunter geladen werden und ausgeführt werden sind ein riesiges Sicherheitsleck. Deswegen macht man sich nicht die Mühe und implementiert einen eigenen Updater, sondern nutzt fertige von denen man weiß, dass sie dort sicherer handeln.
    @RoulettePilot Das ist gar kein Blödsinn, sondern eine gewaltige Sicherheitslücke. Unsignierte Binaries stellen eine Lücke dar, da jeder ARP-Spoofing betreiben kann und die Pakete manipulieren. Sieh Dir meinen Link an, da erfahrst Du mehr. Und ja, das ist auch am Flughafen mitunter eine Gefahr, aber auch wenn dein Webspace gehackt wird, was machst Du dann? Richtig, ohne Signierung sind all deine Clients aufgeschmissen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Gonger96 schrieb:

    Wieso? Unsignierte Binaries die irgendwo aus'm Netz herunter geladen werden und ausgeführt werden sind ein riesiges Sicherheitsleck. Deswegen macht man sich nicht die Mühe und implementiert einen eigenen Updater, sondern nutzt fertige von denen man weiß, dass sie dort sicherer handeln.

    Klaro.. bis zum Bekanntwerden der "riesigen Sicherheitslücke", die, wie man dann erfährt schon lange ausgenutzt wird. :P
    Soetwas nenne ich "trügerische Sicherheit" ! Man verlässt sich drauf, und das ist viel schlimmer.

    Gehe ich in ein Fremdes Wlan (Flughafen, oder wo auch immer), laufe ich immer Gefahr, das der Nachbar neben mir es aufgespannt hat und ich denke es sei das "richtige" und darein tappe.
    Da kann man mir alles unterjubeln. Selbst beim Update egal wie signiert diese ist.
    Derjenige, schummelt mir ein FehlerFenster unter in der Art "Update nicht möglich bitte neu instlallieren" (gar nicht mal sooo ungewöhnlich), Und dann lenkt er mich auf ein total fremdes Install-Paket. (welches natürlich brav signiert ist)
    Rums.. das wars...

    Da nehme ich doch lieber was eigenes, von mir aus lade ich noch eine einfache Checksumme nach (in der kürze der Zeit, wird Mr. Angreifer dies nicht nachempfinden können) und überprüfe ob die Checksumme stimmt, also ob es wirklich "mein" Update ist.

    Wenn ich dann im Beitrag von Trade lese, das da ein anderes mir FREMDES Programm angepriesen wird.. ts ts ts
    Also lieber lebe ich mit dem Flughafen, als mich auf ein externes fremdes Programm zu verlassen. Man kennt weder den Code um zu sehen was es macht, ob ob da nicht andere Potenziellen Sicherheitslücken sind.
    Selbst wenn man ihn vertraut. Eines Tages (das Problem stand in den Beiträgen) entwickelt er es nicht weiter Stichwort "nur bis net 2010 unterstützt" , und ich stehe da.)
    Lieber lebe ich mit 1x Flughaven, als bei JEDEM Update auf ein Externes Programm zu setzen.

    Wie gesagt, das Risiko ist nun mal da. Und wenn ich am Flughafen oder wo auch immer im fremden Hotspot surfe, ist die Gefahr, das mir einer beim surfen auf nachgemachte und sonstig verseuchte Seiten lenkt viel größer.
    Ich will jetzt auch keine RiesenDiskussion anzetteln. Soll jeder machen was er will. Und wenn dies einer eben in die eigene Hand nimmt, hat es seinen Grund!

    Wenn einer in die Kneipe geht und sich ein Spiegelei bestellt, sage ich auch nicht.. Nimm Lieber ne Mohrrübe... denn die Potenzielle Gefahr, das das Ei mit Salmonellen verseucht ist, ist groß.
    Nein, ich lasse ihm selbst die Entscheidung, anstatt immer wieder meine aufzudrängen (wie dies hier immer wieder geschieht), weil ich annehme das er schon weiß warum er ein Ei trotz der Risiken haben will.

    - Aus die Maus -
    Prinzipiell stimme ich dir zu. Nur hätte der Typ mit dem Spiegelei vielleicht doch lieber die Mohrrübe gewählt, wenn er gewusst hätte, dass es ein Risiko mit Salmonellen gibt (wir nehmen jetzt an, er kannte es nicht). D.h. indem ich ihn informiere, ermögliche ich ihm erst überhaupt die Wahlfreiheit. Vorher hatte er keine, weil er gar nicht wusste, warum er eine Wahl haben sollte... Trotzdem, es ist immer noch seine Entscheidung, ob er das Spiegelei trotz des ihm JETZT bekannten Risikos nimmt.
    Wenn du keine Ahnung hast, sei Ruhig und stifte nicht Verwirrung. Bewerte System (die übrigens OpenSource sind) verwalten soetwas gut. Lies dir einfach mal dir Seite durch die @Trade verlinkt hat. Danach kannst du versuchen mir ein Argument zu nennen, dass für deine Meinung spricht.
    Kurz gesagt: Alles, was gegen Sicherheit und signierte Binaries spricht ist eine Herunterspielung einer großen Gefahr. Vor ner Zeit wurde Avira bspw. gekapert, ja supa, was machste dann?

    @RoulettePilot Deine Aussage, dass selbst sigierte Binaries nicht sicher sind, zeigt davon, dass Du hiervon keine Ahnung hast.
    Das ist nicht möglich (außer der Entwickler war nicht schlau genug das richtig zu implementieren).
    Wenn Du mir sagst, wie man das Fenster bei signierten Binaries einbauen soll, bekommst Du nen Keks. Ganz recht, die Daten ändern sich, sobald was ausgetauscht wird, sodass das Paket gar nicht erst zur Ausführung kommt, denn jedes gescheite Updatesystem unterbindet dies dann.
    Deine schöne Integritätsprüfung mit Checksumme kannste vergessen, einmal austauschen, fertig.
    Hat man ne Signatur ist das sowieso schon mit dabei.

    Wenn DU Dir unsigniert Zeugs aus dem Internet ziehst, ist das Dein Problem, aber Du kannst nicht deinen Clients zumuten, dass diese eventuell Opfer von Attacken werden und sich Viren einhandeln.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wenn ihr das ausdiskutieren wollte macht das bitte woanders!
    Nochmal zu meinem Problem: Es hat nix mit der Funktion des Updaters zutun, ich kann das Hauptprogramm nicht einmal mit der cmd.exe öffnen. Vom Explorer aus funktioniert es durchgehend ohne Probleme!

    edit: So, da mir anscheinend keiner helfen will habe ich mir jetzt die Zeit genommen und die Lösung gefunden. Und zwar muss anscheinend die .exe die die andere Anwendung (das Hauptprogramm) aufrufen will im selben Ordner sein. Warum ist das nur bei mir so? Wahrscheinlich aufgrund der ftpclient.dll die ich für mein Programm benötige.

    edit2: Es lag anscheinend genau an der einen dll Datei, alternativ Bibliotheken funktionieren ohne Probleme mit externen Aufruf. Weiß nicht mehr woher ich die hatte, die hieß aber ftpclient.dll am besten also nicht benutzen. Im Forum hier gibt es ja eine wunderbare Alternative: ftplib.

    Thema hat sich somit erledigt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DasDing“ ()