Schaltzentrale / Hauptprogramme mit Zentralprogramm steuern / sperren

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    Schaltzentrale / Hauptprogramme mit Zentralprogramm steuern / sperren

    Hallo zusammen (=

    ich bin seit heute registriert, finde dieses Forum sehr klasse, und dachte mir, probier ich es mal aus (=.

    Meine frage ist, ist es überhaupt Möglich andere Programme zu Sperren?

    Beispiel: Der 3D Chat clubcooee kann vom Hauptprogramm den Benutzer via seine ID eine sperre verpassen.

    Nun ich habe ein Programm geschrieben, indem ich alle Benutzer, die das Hauptprogramm verwenden, steuern kann,
    z.b.: Ein Chat, wenn jemand mist baut, dass ich Ihm sperren kann / könnte.

    Nicht wie Team Viewer, nur den Zugriff verweigern.
    Habe das Hauptprogramm und die Schaltzentrale geschrieben, und allerlei dinge probiert.
    Bin nun Ratlos
    Ist das mit Visual Basic eigentlich möglich?

    Wäre für jeden kleinsten Tipp sehr Dankbar!

    Liebe Grüße
    Mimi :love:
    hi, du könntest den auslesen, welcher prozess hinter dem entsprechenden programm steckt und diesen dann schließen lassen. wenn er wieder gestartet wird - machst du ihn wieder platt^^ (ist ja quasie wie gesperrt nur noch ein bisschen härter)
    Hier wäre eine Datenbank sinnvoll, indem sich alle Benutzer registrieren müssen, um deine Programme nutzen zu können. In dein Programm kommt dann ein Loginformular, indem du auch den Status des Benutzers abfragst. Ist er gesperrt, wenn ja, zeige ihm einen Grund an, wann die Sperre endet, et cetera.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    ich glaube das ganze ist so gemeint:
    zentralprogramm steuer die hauptprogramme (die jeder client installiert hat)
    gibt das zentralprogramm einen befehl an das hauptprogramm von client xy so soll das entsprechende hauptprogramm ein externes programm (chatprogramm, etc) "sperren". da das extere programm keine eigenentwicklung ist, muss iwie von außen darauf zugegriffen werden - da ich keinen weg kenne eine sperre zu realisieren würde ich einfach den prozess killen^^
    Besser wäre es aber wohl CreateProcess zu hooken und dabei überprüfen was gestartet werden soll, das ist wesentlich sicherer und vorallem auch performanter ;)

    Nun aber eher die Frage, was willst du überhaupt, das wird mir hier noch nicht ganz klar.
    Du willst das starten eines Programms verhindern?!
    Aber warum nicht(wie bei TeamViewer) den Zugriff verweigern? Ist wesentlich sicherer und meiner Meinung nach auch einfacher...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    recht einfach wäre es, den Prozess zu beenden und danach die .exe des Programms zu verschlüsseln, dann kann man diese auch nicht wieder starten. beim zugriff erlauben halt wieder entschlüsseln.

    Vorher auf jeden Fall nen Countdown einbringen, damit man zB seine Arbeit speichern kann, bzw überprüfen, ob überhaupt jmd am Rechner sitzt.
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
    Hey,
    ouh erstmal recht vielen Dank für die Antworten, total klasse eure Vorschläge,leider bin ich das schon alles durch gegangen :whistling:

    Ich möchte ja nicht sein Prozess immer und immer wieder schließen lassen, ich mach es auch nicht via Hidden Webbrowser wie mir es per PN geboten wurde ( if Webbrowser.documentText.contains(MyId) = True then My.settings.Locked = True )
    Und beim Starten des Programm settings abfragen und sperren lassen....Hallüüüü? Naja


    Ich hatte da so eher an ein CPU Bann gedacht,da ja jeder CPU eine ID besitzt.
    Die beim ersten mal mein Server gesendet wird ( PHP etc. kein FTP ).

    Nunja ich könnte jeden einzelnen Killen ^.^, das Hauptprogramm, dass die Benutzer verwenden, kann ich einzeln steuern, wie Team Viewer, könnte ja bei allen 900 Benutzern auf das kleine rote Kreuz klicken :D
    Und das will ich alles Automatisiert haben, sein verlauf wird stündlich hochgeladen und kontrolliert von einen PHP Bot. ( Forum Anti-Pöse-Wörter ) ^^

    irgendwie komme ich nicht weiter, hmm
    Dennoch, bin weiterhin offen für Vorschläge
    Danke euch sehr Ihr Lieben

    LG
    Mimi

    Jannik S. schrieb:

    Also, den Prozess killen, kannst du folgendermaßen:

    VB.NET-Quellcode

    1. for each prozess as process in process.getprocessesbyname ("Name des Prozesses ohne .exe")
    2. prozess.kill()
    3. next
    Danke, aber ich kenne mich bestens mit VB aus :) :*
    Nur möchte wissen, wie weit man mit VB gehen kann, naja steuern geht jedenfalls schonmal, möchte nur noch per Benutzer ID sperren.
    Aber danke dir (=


    Edit:
    @jvbsl
    Ich habe zwei Programme geschrieben, ein Fernsteuerungsprogramm
    und das andere ist ein Community Programm, Shop,Chat, beispiel wie Steam.
    So und bei der Community bekommt jeder eine ID generiert, die bei mir hochgeladen wird.
    Jede kleinste Aktivität wird in die Schaltzentrale hochgeladen.
    Ich möchte ganz schlicht und einfach den Benutzer durch seine generierte ID sperren.
    Verbindung vom Schaltprogramm zum Benutzer Programm aufbauen, also an pingen, ein Signal senden, damit das Programm vom benutzer weiß, AHA Pöser Bube, der muss gesperrt werden.
    Grund Anzeige, steuern funktioniert ja alles, aber mit dem Sperren noch nicht.
    Also ich würde sowas ja viel lieber mit TCP/IP aufbauen...xD

    Also zum Problem:
    Wenn beim verbinden eine ID geschickt wird, dann überprüf doch in PHP(Serverseitig also) ob der Benutzer gesperrt wurde, ob er gesperrt wurde speicherst du ganz einfach in einer Datenbank ab. Wenn er gesperrt wurde einfach "die('Du Pöser Bube')" :P
    (Natürlich entsprechend deinem Protokoll angepasst)
    Sodass der Benutzer der gesperrt wurde noch eine entsprechende Benachrichtigung erhält.

    Oder hab ich mal wieder was falsch verstanden?!
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    jvbsl schrieb:

    Also ich würde sowas ja viel lieber mit TCP/IP aufbauen...xD

    Also zum Problem:
    Wenn beim verbinden eine ID geschickt wird, dann überprüf doch in PHP(Serverseitig also) ob der Benutzer gesperrt wurde, ob er gesperrt wurde speicherst du ganz einfach in einer Datenbank ab. Wenn er gesperrt wurde einfach "die('Du Pöser Bube')" :P
    (Natürlich entsprechend deinem Protokoll angepasst)
    Sodass der Benutzer der gesperrt wurde noch eine entsprechende Benachrichtigung erhält.

    Oder hab ich mal wieder was falsch verstanden?!
    hehe sweety,
    also ich habe alles erledigt mit der Datenbank, alles wird Protokolliert was der Benutzer am Client macht.
    So nur das Problem ist, ich kann alle Clients via seiner ID steuern wie Team Viewer, nur weiß ich nicht wie ich Ihm auf einer vernünftigen Art und Weise sperren lassen kann, nicht mit String etc. in einer Base, die sind schnell Manipulierbar.
    Derjenige bekommt auch eine Nachricht angezeigt, dass er gesperrt worden ist, ( Getestet ), ABER ich weiß nicht wie ich es umsetzen soll.
    Daber danke für deine Antwort :)

    Liebe Grüße
    Mimi
    Also wenn ein Client gesperrt wird, was genau soll er dann nicht mehr machen können?
    Ich denke da war/ist mein Verständnis Problem ;)

    Wenn es darum geht, dass ein String im Speicher manipuliert werden kann, dann würde ich dazu einfach noch einen Hash-Wert speichern(evtl. mit Salt), sobald du den String ausliest überprüfst du ob der gespeicherte Hash-Wert noch mit dem neuen Hash des Strings übereinstimmt, ist dies der Fall, so ist der String gültig, andernfalls würde ich den User generell sperren, wenn er schon den Speicher manipuliert ;)
    Um das zu umgehen müsste der "Cheater" den Salt Wert und die verwendete Hash Methode kennen.
    Also nur noch die Executable Obfuscaten(z.B. mit Eazfuscator .Net), damit der Code unlesbar wird.

    Sofern es irgendetwas übers Netzwerk/Internet ist(z.B. Chat), dann würde ich ihn Serverseitig sperren und da verstehe ich dann nicht, wo das Problem liegt, das müsstest du - sofern dies das entsprechende Ziel ist - konkretisieren ;)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Mannooo X( Männer halt hehe ^^

    Darf mich nicht beklagen, deine Antworten gleichen Gottes Stimme :D
    Ich weiß wie Du es meinst, aber mein Problem ist, ist Internet, ich habe für die Zeilen der Fernsteuerung ein Halbes Jahr gebraucht, jeden Abend 2 Stunden gearbeitet :)

    Ich Schreib dir Games
    3D Animation alles was Du willst kein Problem aber komm mir bitte nicht mit Internet krims Krams :D
    Ich glaube, ich widme mich Lieber rein speziell nur für Windoof. Darin bin ich gut, Optimizer wäre eine Idee hmz :D

    Schätze deine Hilfe sehr, dafür Danke ich dir, aber ich komme einfach nicht weiter
    vielen Lieben Dank für deine "Themen Treue" ^^ und deiner Hilfe :love:

    LG
    Mimi
    Mannooo X( Männer halt hehe ^^

    Ja, kenn ich, schlimm schlimm^^

    Darf mich nicht beklagen, deine Antworten gleichen Gottes Stimme :D

    Ich nehm ja mbrola, und welche Stimme hast du bei deiner Sprachausgabe(vmtl. Windows Standard :P) ausgewählt?! :P

    So nun wieder Todernst:
    Das würde heißen, dass jeder User eine ID hat(welche du ja wie bereits bemerkt hast aus der HardwareID des Prozessors usw. erstellen könntest), mit welcher er sich identifiziert, nun nimmst du diese ID und guckst in deiner Benutzertabelle(Datenbank) wo die vorhanden ist, ist dort die Spalte gesperrt auf True(1) o.ä. wird der restliche PHP Code nicht mehr ausgeführt. Ist die HardwareID gar nicht in der Benutzertabelle aufgeführt entspricht dies einem gesperrt, somit ist es nicht möglich die HardwareID zu manipulieren(höchstens neu Anmelden mit einem eigenen Clienten - komm ich gleich nochmal drauf).
    Also so ähnlich(eher PseudoCode):

    PHP-Quellcode

    1. function isAllowed($hwid)
    2. {
    3. $sqlcmd = "SELECT COUNT(*) FROM Benutzertabelle WHERE HardwareID='$hwid' AND Gesperrt='False'";
    4. $result = $datenbank->query($sqlcmd);
    5. if (!$result) {
    6. die ("jvbsl hat einen Fehler im Code, oder du hast ihn nicht richtig angepasst/nur kopiert");
    7. }
    8. $count = mysql_result($result,0);
    9. return ($count != 0);
    10. }

    Am Anfang jeder PHP Datei(die für ihn gesperrt sein kann), dann z.B. soetwas:

    PHP-Quellcode

    1. //Die HardwareID natürlich gegen SQL Injection geschützt ;)
    2. if (!isAllowed($dieHardwareID))
    3. die("Sie wurden gesperrt :P");


    Falls es aber auch gegen Nicht-Otto-Normalverbraucher geschützt sein soll, dann müsstest du deine Verbindung wohl noch verschlüsseln, dafür würde ich Diffie-Hellman-Schlüsselaustausch in Kombination mit einer AES Verschlüsselung machen(hab ich auch grad erfolgreich umgesetzt)...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---