[PRE ALPHA #2.2] MTA Server Control

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [PRE ALPHA #2.2] MTA Server Control

      Hallo die Herren/Frauen,
      ich möchte mein vorerst letztes App Projekt euch vorstellen:



      Was macht es ?
      Die App sendet Befehle an den Gameserver, der Gameserver braucht zusätzlich ServerControl Script um diese Befehle zuverarbeiten.

      Kostenlos oder Kostenpflichtig ?
      Ein Free Account ist kostenlos, hat aber weniger Funktionen wie ein Premium Acccount.
      Um eine Übersicht zu schaffen, was die Vorteile eines Premium Account beinhalten:



      Warum sollte man sowas herunterladen ?
      Ich bin auf Idee gekommen, als ein Streit auf meinem alten Server gab.
      Ich konnte lediglich den Chat verfolgen über die Konsole eines Gameserveranbieter, das hat mich extremst verärgert da ich zurzeit nicht Zuhause war und nichts machen konnte und dieser User mir alle Spieler vergrault hatte.
      Mit der App kann man alle Spieler verwalten (Mute Ban etc.), Nachrichten senden und wirklich vieles vieles vieles viels mehr.

      Werbung ? Nicht bei mir!
      Es wird bei dem Premium sowie Free Acount keine Werbung geschaltet.

      Funktionen:
      Funktionen

      Quellcode

      1. [SPIELER]
      2. Spieler bannen
      3. Spieler entbannen
      4. Spieler Stumm schalten
      5. Spieler Laut schalten
      6. Spieler Skin setzen
      7. Spieler Freeze
      8. Spieler unfreeze
      9. Spieler Kick
      10. Spieler Waffe geben
      11. Spieler Warp To player
      12. Spieler Position setzen
      13. Spieler töten
      14. Spieler Geld geben
      15. Spieler Geld nehmen
      16. Spieler Fahrzeug geben
      17. Spieler Fahrzeug explodieren lassen
      18. Spieler Fahrzeug zerstören
      19. Spieler Fahrzeug Farbe setzen
      20. Spieler Nachricht senden
      21. [Resource]
      22. Resource starten
      23. Resource stoppen
      24. Resource neustarten
      25. Resource löschen
      26. [Server]
      27. Server Passwort setzen
      28. Server Passwort entfernen
      29. Server FPS Limit setzen
      30. Server Wetter setzen
      31. Server herunterfahren
      32. Server Willkommennachricht festlegen
      Alles anzeigen
      Mehr wird noch kommen, versprochen!

      Einrichtung
      Einrichtung

      1. Lade dir das Script hier herunter: N/A.
      2. Lade dir die Android App hier herunter: N/A.
      3. Gebe dem Script Admin Rechte sonst wird es nicht funktionieren.
      4. Starte das Script mit /start ServerContro .
      5. Eine GUI öffnet sich du gibst dein Benutzername an und Passwort.
      6. Du startest die App auf deinem Android Smartphone und klickst auf "Registrieren".
      7. Jetzt scannst du den QR Code und dein Server ist erfolgreich verbunden!


      Screenshots:

      Bugs:
      Bugs

      Quellcode

      1. -- BUGS --


      Download
      Mit dem Download bist du mit folgendem Einverstanden:

      Lizenz: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
      Beachtung: Jedigliches dekompilieren, entschlüsseln verschlüsselter Daten ist verboten und wird von mir Strafrechtlich verfolgt. Ich beziehe mich hiermit auf § 202a StGB / § 202b StGB / § 202c StGB.
      Datenschutzerklärung: Datenschutz

      Entwicklung - Download noch nicht verfügbar. (Playstore cooming soon!)

      p.s Ich freue mich auf Ideen was man noch für eine oder mehrere Funktionen hinzufügen könnte!

      Mit freundlichen Grüßen,

      The0ne

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von The0ne ()

    • Hallo @Strider,
      aus Sicherheitsgründen wird das Script was für die Verbindung zuständig ist, complied sein.
      GUI ist und bleibt decomplied.

      Liebe Grüße
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast
    • Strider schrieb:

      Das hab ich mir schon gedacht, aus eigenen Sicherheitsgründen würde ich es nicht installieren , weil ich nichts weiß wer alle dann noch Zugriff drauf hat.
      Ich will hier nichts schlecht machen, an sich wirklich gut und nützlich, für mich dennoch nichts.

      Mit Freundlichen Grüßen

      Strider
      Ich finds auch richtig geil, doch muss ich mich @Strider zustimmen.
      Ohne nahzutreten wüsste ich nicht ob dir die Daten auch zugeschickt wird oder andere Zugriffe bestehen.
      [IMG:http://www.speedtest.net/result/5426322119.png]
      Die deutsche Sprache ist Freeware.
      Das heißt, du darfst sie uneingeschränkt nutzen. ABER(!) die deutsche Sprache ist NICHT Open Source.
      Das heißt, du darfst sie nicht nach deinen Vorstellungen verändern!

      Ein Problem ist halb gelöst, wenn es klar formuliert ist.
    • @Strider, @iLimix,
      Aus eigenem Interesse und sicher dem Interesse anderer Benutzer ist es nur Sinnvoll das Verbindungsscript zu complieren.
      ich denke mal du beziehst dich auf die "Backdoors".
      Da es hier einige User gibt die ein LUA-decomplierer besitzen (glaube auch @sbx320), könnten das Script decomplieren und würden
      sicher es hier melden wenn Backdoors vorhanden wären, zum Nachteil für mich.
      Zudem werden Server IP Adressen, Benutzernamen und Passwörter nachweislich verschlüsselt.

      Liebe Grüße
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von The0ne ()

    • The0ne schrieb:

      Beachtung: Jedigliches dekompilieren, entschlüsseln verschlüsselter Daten ist verboten und wird von mir Strafrechtlich verfolgt. Ich beziehe mich hiermit auf § 202a StGB / § 202b StGB / § 202c StGB.

      The0ne schrieb:

      Da es hier einige User gibt die ein decomplierer besitzen (glaube auch @sbx320), könnten das Script decomplieren und würden
      sicher es hier melden wenn Backdoors vorhanden wären, zum Nachteil für mich.
      Sollte selbsterklärend sein worauf ich mit den Zitaten hinaus will. Ich will jetzt aber auch nicht das Thema voll spammen und schlecht machen.

      Mit Freundlichen grüßen

      Strider
    • @Strider,
      Die Beachtung ist auf verschlüsselte Benutzerdaten (wie Passwörter, Benutzernamen, GameserverIP, Auth-Code) bezogen.

      Liebe Grüße
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast
    • Prinzipiell finde ich die Idee gut.

      Ein paar Fragen aber:

      The0ne schrieb:

      Aus eigenem Interesse und sicher dem Interesse anderer Benutzer ist es nur Sinnvoll das Verbindungsscript zu complieren.
      Ehrlichgesagt sehe ich keinen Grund dafür. Was ist denn dort schützenswertes drin? Wenn dort geheime Daten enthalten sind, dann sollten sie es nicht sein, denn dann sind sie durch die Möglichkeit der Dekompilierung nicht mehr geheim. Da die Ressource außerdem mit vielen ACL-Rechten ausgestattet sein muss, würde ich als Serverbesitzer schon wissen wollen, was das genau macht (wobei dir da sowieso sehr viel Vertrauen zugesprochen werden muss, weil - wie ich annehme - die finalen Steuerungsbefehle von einem Server von dir gesendet werden).

      Weiterhin hast du erwähnt, dass das Projekt unter einer Creative Commons Lizenz steht? Worauf ist das genau bezogen? Auf die Software?

      Ansonsten würde ich mir wünschen, dass das Ganze inkl. "Control-Server" Open-Source wird, damit das Verhalten zum einen nachvollziehbar wird und zum anderen die Abhängigkeit von dir in Punkto Ausfallsicherheit entfällt. Wenn man es darüber hinaus genau nimmt, ist die Vermarktung des Premium-Accounts rechtlich vermutlich auch nicht ganz undramatisch (z.B. in Bezug auf Haftbarkeit gegenüber Ausfällen).
    • Hallo @ronald drunk,
      das Verbindungsscript wurde compliert da fremde sonst Zugang auf die verschlüsselten Nutzerdaten hätten.
      Soweit ich auch weiß kann mittlerweile alles decompliert werden, daher vermeide ich es damit das jeder Zugriff auf die verschlüsselten Nutzerdaten kommt.

      Die Ressource brauch theortisch gesehen nur Rechte für "fetchRemote". Praktisch gesehen aber Adminrechte da die Ressouce sonst die Befehle (wie Spieler Kick) nicht ausführen kann.

      Die CCL ist auf die App & das MTA-Script (Server-Control) bezogen.

      Über Open-Source lässt sicher irgendwann darüber reden :)

      Liebe Grüße
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast
    • The0ne schrieb:

      das Verbindungsscript wurde compliert da fremde sonst Zugang auf die verschlüsselten Nutzerdaten hätten
      Warum gibt es einen Zugang zu "verschlüsselten Nutzerdaten"? Sollte es nicht möglich sein, die API, die du per fetchRemote ansprichst so zu gestalten, dass du keinen Zugriff auf Nutzerdaten bekommst? Die Aussage ist insofern auch missleitend, als dass sie impliziert, dass Fremde durch die Kompilierung in keinem Fall Zugang zu besagten Daten hätten. Das ist falsch und insbesondere problematisch, weil das Herauslesen der Daten kein Hexenwerk ist, nämlich z.B. indem man die Kompilierung durch Überschreiben von fetchRemote und Logging der Parameter einfach umgeht.
    • @ronald drunk
      Ich hab das 1. nicht wirklich verstanden.
      Um sich per Server einzuloggen, braucht man doch Zugang zu seinen Benutzerdaten, weil wie will man sich sonst einloggen?

      Letzteres habe ich mir auch schon ein paar Gedanken gemacht und daher eine MD5 Hash Überprüfung geschrieben.
      In kurz:
      Die Schnittstelle lässt sich solange nicht bedienen bis der MD5 Hash, von dem Server Control Script, vom Gameerver übermittelt wird und mein Server das "OK" gibt.
      Das heißt sobald das Script verändert wurde (decomplieren reicht schon da der Datei Name sich ändert und die Bytes etc), gibt es kein Zugriff mehr auf die verschlüsselten Benutzerdaten.
      Zudem bedeuted das für mich, das ich bei jedem Update die Werte auf meinem Server ändern muss, aber das ist es mir wert :)

      Sorry wenn ich das alles bisschen kompliziert geschrieben habe, es ist Nacht und bin am Handy ;)

      Liebe Grüße! :)
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von The0ne ()

    • Ich nehme an, dass du in kurzen Zeitabständen mit fetchRemote den Control-Server fragst, ob es zu verarbeitende Steuerungsbefehle (wie Spieler von Server kicken) gibt. Wichtig ist, dass bei jeder solcher Anfragen geprüft wird, ob diese gültig ist und durchgeführt werden darf. Dazu würde ich das Ganze wie folgt aufbauen:

      Du hast irgendwo eine Webseite (oder ggf. auch über die App selbst), bei der du dich einloggen kannst, um anschließend einen API Key (langer zufälliger String) zu generieren. Dieser Key wird z.B. über das Settings-System gesetzt und kann dann im Script über die get-Funktion abgerufen werden. Sollte der Key öffentlich werden, kann er über besagte Webseite zurückgezogen und neu generiert werden.

      Wenn das Script nun fetchRemote aufruft, wird bei jeder Anfrage dieser API Key mitgesendet und auf deinem Server validiert (also in der Datenbank geschaut, ob der Key existiert und zu welcher Nutzer*in er gehört).
      Gegebenenfalls kannst du noch eine Anfrage einbauen, um zu prüfen, ob der Key gültig ist (damit die Rückmeldung über die Korrektheit schon während des Starts erfolgt).
      Zusammenfassend hast du so also weder einen Login, der durch Betreten des Gameservers durchgeführt werden muss, noch geheime Daten im Script oder welche, die empfangen werden (denn auch mit den URLs der Anfragen können Fremde ohne gültigen API Key nichts anfangen).

      Das System der App könnte dann ähnlich funktionieren: In der Regel wird es bei Apps so gemacht, dass die eingebenen Anmeldedaten (Benutzername und Passwort) zum Server gesendet werden, der daraufhin einen Token (vergleichbar mit API Key) mit begrenzter Gültigkeitsdauer generiert. Dieser Token wird dann genutzt, um alle weiteren Anfragen zu authentifizieren, indem er bei jeder Anfrage z.B. über die HTTP-Header mitgesendet wird.

      Weitere Erklärung hier:


      The0ne schrieb:

      Die Schnittstelle lässt sich solange nicht bedienen bis der MD5 Hash, von dem Server Control Script, vom Gameerver übermittelt wird und mein Server das "OK" gibt.
      Problem dabei ist, dass auch ein zusätzliches Script über die meta.xml eingebunden werden kann.
    • @ronald drunk
      Danke für den Hinweis mit dem API-Key, werde ich definitv versuchen in den nächsten Tagen und Wochen umzusetzen.

      ronald drunk schrieb:

      Problem dabei ist, dass auch ein zusätzliches Script über die meta.xml eingebunden werden kann.
      Die "meta.xml" wird auch auf den md5-hash überprüft. Daher gibt es kaum möglichkeiten die Ressource zu benutzen wenn man sie verändert.

      Bis dahin :thumbup:
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von The0ne ()

    • The0ne schrieb:

      Die "meta.xml" wird auch auf den md5-hash überprüft. Daher gibt es kaum möglichkeiten die Ressource zu benutzen wenn man sie verändert.

      LUA-Quellcode

      1. function md5(input)
      2. return "der-hash-der-metaxml-ohne-änderungen"
      3. end
      Natürlich könntest du jetzt einen geheimen String an die Eingabe hängen. Das wiederum lässt sich aber aushebeln, indem du input in der überschrieben Funktion ausgibst.
      Letztendlich ist das ein Katze-Maus-Spiel und am Ende immer aushebelbar. Eine sichere Architektur statt Security by Obscurity ist stets die bessere Alternative.
    • @ronald drunk
      Danke für die zahlreichen Infos, werde das wohl so machen wie du es gesagt hast.

      Edit://
      @Strider @iLimix @ronald drunk,
      Habe jetzt eine API eingerichtet und läuft.
      Das bedeutet das alles decompliert ist &' sich keiner Sorgen machen muss, wo die Daten hinführen.
      Github wird kommen!

      Mehr in den kommenden Tagen!

      Liebe Grüße!
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von The0ne ()

    • Jetzt feier ich es. :thumbup:
      Schön das du auf @ronald drunk´s tipp eingegangen bist.
      [IMG:http://www.speedtest.net/result/5426322119.png]
      Die deutsche Sprache ist Freeware.
      Das heißt, du darfst sie uneingeschränkt nutzen. ABER(!) die deutsche Sprache ist NICHT Open Source.
      Das heißt, du darfst sie nicht nach deinen Vorstellungen verändern!

      Ein Problem ist halb gelöst, wenn es klar formuliert ist.
    • Update #1 : Registrierung so einfach wie nie zu vor!

      Wie funktioniert es ?
      Du öffnest deine MTA ServerControl-App und wählst "Registrieren" aus.
      Es öffnet sich ein Kamera Fenster in dem du den Code scannen musst.
      Der Spaß sollte so aussehen:



      Zudem habe ich jetzt ein Moneypool eröffnet in den ihr spenden könnt, wenn ihr wollt :whistling: , für den Google Devolper Account - damit ich die App in den Playstore hochladen kann :love: .
      paypal.me/pools/c/85moUgw0t1

      Liebe Grüße! :thumbup:
      "Lass mal die Leute haten und hetzen.
      Es ist so, die Schlechten beneiden die Besten."

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast