myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Programme aus einer Textfile lesen, die nicht auf dem Rechner ausgeführt werden sollen.
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Programme aus einer Textfile lesen, die nicht auf dem Rechner ausgeführt werden sollen.

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Jonas40 Jonas40 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2018
Beiträge: 15


Jonas40 ist offline

Programme aus einer Textfile lesen, die nicht auf dem Rechner ausgeführt werden sollen.

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hey Leute,
Ich habe versucht ein Sicherheits Programm mit C# zu programmieren-. Ich wollte zuerst, dass wenn, das programm im Hintergrund läuft nur programme ausführt die das Programm kennt. Aber ich hab es irgendwie nicht so richtig geschaft. Bitte um Hilfe
12.11.2018 17:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.365
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Mal davon abgesehen, dass ich von Self-Made Sicherheitslösungen nichts halte, was hast du bisher gemacht?
Wie sollen wir ohne Code wissen wo das Problem lieg?

Du musst uns schon mehr Infos geben, was/wo das Problem liegt und ohne Code kannst du auch keine Lsung erwarten.
Bitte nur die fehlerhafte Stelle + Fehlermeldung, damit man dir helfen kann.

Nachtrag:
Was du da übrigens vorhast, löst UAC unter Windows bereits.
Wobei Windows auch schon einige Programme mit entsprechenden Dialog nur durch absichtliches wirken des Users auch ausführt.
Wenn ein Programm für Windows nicht vertrauenswürdig ist, dann bekommst du auch eine entsprechende Meldung.

T-Virus

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von T-Virus am 12.11.2018 17:56.

12.11.2018 17:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Jonas40 Jonas40 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2018
Beiträge: 15

Themenstarter Thema begonnen von Jonas40

Jonas40 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hier:

C#-Code:
        private void button1_Click(object sender, EventArgs e)
        {
            string pro = System.IO.File.ReadAllText("C:\\Sicherheit\\Programm\\programm.txt");
            String Programm = textBox1.Text;
            if (pro == Programm)
            {
                //Fehler
            }
            else
            {
                   //Programm wird ausgeführt
            }
        }

Ich möchte halt das in dem Text Document nicht alle alle Programme gespeichert werden die nicht ausgeführt werden dürfen, sondern das erstmal alle Programme die auf den PC gibt erstmal in das Textdocument packen. Danach kann der Benutzer entscheiden ob das Programm von der Liste (Textdocument) entfernt wird damit es ausgefürht werden kann.
12.11.2018 18:03 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.365
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Kann auch nicht funktionieren.
In der Textdatei stehen vermutlich die Pfade zu all deinen Programmen.
In der Textbox gibt es dann aber nur eine Zeile und die vergleichst du dann gegen die Liste.

Was du machen müsstest,wäre per File.ReadAllLines dir ein String[] zu holen was die Pfade aus der Datei enhält.
Dann musst du nur schauen ob dein Program, hoffentlich auch mit ganzen Pfad, in dem String[] steht.

Aber wie gesagt, willst du hier ein Problem lösen, was an mit UAC und entsprechenden Rechten sowie einem AD lösen kann.
Solange diese lösung nur für dich privat ist, kannst du die gerne fahren.
Aber in einem Unternehmen wäre es fahrlässig solche Bastellösungen laufen zu lassen.

T-Virus
12.11.2018 18:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Jonas40 Jonas40 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2018
Beiträge: 15

Themenstarter Thema begonnen von Jonas40

Jonas40 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Okay,
Und wie finde ich den eigendlich alle Programm Pfade heraus?
12.11.2018 18:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
markl markl ist männlich
myCSharp.de-Mitglied

avatar-4095.gif


Dabei seit: 29.09.2016
Beiträge: 77
Entwicklungsumgebung: VS2017 and VSC


markl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Mit "Sicherheits-Programm" hat das nicht viel zu tun, wenn man versucht UAC nachzubauen.

Außerdem gibt es kommerzielle Lösungen um den User mit sowas zu "nerven" (z.B. The Palo Alto Networks Traps  https://www.paloaltonetworks.com/documentation/traps).

Ich hoffe, dass dies nur ein Experiment von dir ist um C#/.net zu lernen.

Daher hier zwei Anhaltspunkte:

C#-Code:
        string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
            using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
            {
                foreach (string subkey_name in key.GetSubKeyNames())
                {
                    using (RegistryKey subkey = key.OpenSubKey(subkey_name))
                    {
                        Console.WriteLine(subkey.GetValue("InstallSource"));
                        Console.WriteLine(subkey.GetValue("DisplayName"));
                    }
                }
            }

Siehe dazu:
 https://stackoverflow.com/questions/908850/get-installed-applications-in-a-system

Oder aber mit:

How to detect lunch or closing process?

 https://social.msdn.microsoft.com/Forums/vstudio/en-US/46f52ad5-2f97-4ad8-b95c-9e06705428bd/how-to-detect-lunch-or-closing-process-?forum=netfxbcl

Aber ich rate dir DRINGEND davon ab, sowas tatsächlich als ein Sicherheits-Programm in betracht zu ziehen.
12.11.2018 19:10 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.365
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

@Jonas40
In dem du dir über die Process Klasse die laufenden Anwendungen holst?
Wenn dort ein Programm gestartet wird, und das kannst du eben mit deiner Lösung nicht verhinden, dann musst du den Pozess absägen.

Oder wie genau stellst du dir deine Lösung vor?
Wenn jemand einen Prozess starten willst, kannst du dies ja nicht einfach verhindern.
Diese Abläufe sind Teil des Systems und da kannst du dich mit C# nicht als Sicherheitsinstanz ohne weiteres einklinken.

Dazu müsste dein Programm auch über Systemrechte verfügen, damit es auch alle Prozesse abwürgen kann.
Ansonsten kannst du nur deine Prozesse killen.
Dies hätte aber zur Folge, dass dein Prozess dann selbst zum Ziel für Angreifer wird.

T-Virus
12.11.2018 19:25 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Jonas40 Jonas40 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2018
Beiträge: 15

Themenstarter Thema begonnen von Jonas40

Jonas40 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Okay,
erstaml danke an alle die mir geantwortet haben großes Grinsen . Ich habe nur noch eine frage nämlich wie packt man die Wörter aus der Textdatei(eine Zeile pro wort) in ein String[];
13.11.2018 18:42 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.261
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Jonas40, Grundlagen schön und gut - aber das Forum ist nicht der Ersatz für Eigeninitiative.
 Google-Suche nach c# file read lines to string array
13.11.2018 19:01 Beiträge des Benutzers | zu Buddylist hinzufügen
Jonas40 Jonas40 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2018
Beiträge: 15

Themenstarter Thema begonnen von Jonas40

Jonas40 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Aufjeden fall ist hier die Lösung:

C#-Code:
              if (File.Exists("C:\\Security\\security.dll")) {

                    IEnumerable<string> check = File.ReadAllLines("C:\\Security\\security.dll");

                foreach (string check__ in check)
                {
                    Process[] pp = Process.GetProcessesByName(check__);
                    foreach (Process p in pp)
                    {
                        p.Kill();
                        MessageBox.Show("Dieses Programm ist gefährlich", "Security Assistent", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    }
                }
                }
14.11.2018 05:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
markl markl ist männlich
myCSharp.de-Mitglied

avatar-4095.gif


Dabei seit: 29.09.2016
Beiträge: 77
Entwicklungsumgebung: VS2017 and VSC


markl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Die liest eine DLL mit File.ReadAllLines ein?
Das ist Unsinn was da steht.

 https://docs.microsoft.com/de-de/dotnet/api/system.io.file.readalllines?view=netframework-4.7.2
14.11.2018 08:11 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Stefan.Haegele Stefan.Haegele ist männlich
myCSharp.de-Mitglied

avatar-3068.jpg


Dabei seit: 13.03.2009
Beiträge: 358
Entwicklungsumgebung: Visual Studio 2010 Ultimat
Herkunft: Untermeitingen


Stefan.Haegele ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich verstehe denn Sinn noch nicht ganz. In der textdatei stehen die Programme, welche gesperrt werden sollen, richtig?
  1. Wie kommen neue Programme dort rein?
  2. Wie willst du verhindern, dass User die Datei einfach ändern?
  3. Was passiert, wenn die Datei überhaupt nicht vorhanden ist?
  4. Was passiert, wenn dein Programm selbst in der Liste steht?
14.11.2018 08:13 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Stefan.Haegele Stefan.Haegele ist männlich
myCSharp.de-Mitglied

avatar-3068.jpg


Dabei seit: 13.03.2009
Beiträge: 358
Entwicklungsumgebung: Visual Studio 2010 Ultimat
Herkunft: Untermeitingen


Stefan.Haegele ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von markl:
Die liest eine DLL mit File.ReadAllLines ein?

Ich glaube, er will mit dem Namen nur vortäuschen, dass es eine DLL sei - in Wirklichkeit ist es eine Textdatei... Über den Sinn dazu möchte ich nichts sagen.
14.11.2018 08:15 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.365
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

@Stefan.Haegele
Würde ich auch mal vermuten.
Halt das übliche Security through Obscurity aus.
Damit sicherst du nichts ab, nimm .txt als Endung und fertig.

Ansonsten wären die Fragen von Stefan-Haegel auch nicht interessant zu wissen.
Aber ich halte, wie oben schon erwähnt, das gesamte Konzept für keine Lösung.
Selbst als Lernprojekt wagst du zu viel ohne Grundlagen zu kennen oder dich scheinbar darein zu arbeiten.

Auch hatte ich dir deine aktuelle Lösung oben schon vorgeschlagen, wenn auch nicht mit diesem Konstrukt, was du aber scheinbar ignoriert hattest.
Ich habe leider das Gefühl, dass unsere Ratschläge hier ins leere laufen und du deinen Kopf ohne Nachforschungen durchsetzen willst.

T-Virus
14.11.2018 08:20 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Jahr.
Der letzte Beitrag ist älter als ein Jahr.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 14.12.2019 13:47