Frage zum Thema Programmieren

Eysk

Cadet 1st Year
Registriert
Aug. 2010
Beiträge
11
Hallo,

wie der Titel schon aussagt, habe ich da eine bzw. mehrere Fragen zum Thema Programmieren.

Ich weiß nicht recht, welche Sprache sich für mein Anwendungsziel am Besten eignet, daher wollte ich jetzt hier einmal nachfragen und mir von euch da ein paar Antworten holen.
Ich habe zwar auch schon einige Leute aus meinem ICQ gefragt, jedoch gab mir dort jeder 2. eine andere Antwort und die Argumente wieso jetzt ausgerechnet die eine oder andere Sprache ließen auch ziemlich zu wünschen übrig.

Und zwar geht es um folgendes:

Ich "arbeite" mit ein paar anderen Leuten an einem Projekt, welches die Führung eine Privatservers eines Spieles ist (Nein kein WoW :)).
Nun gibt es aber seit einiger Zeit einen "Packeteditor", mit dem man bestimmte Packete an unseren Server senden kann, der ihn z.B. abstürzen lässt und dergleichen.
Also der Worldserver des Spiels crasht dadurch, nicht der Root. (Sry wenn ich mich blöd ausgedrückt habe)
Es gibt auch einen Packetfilter der von jemandem entwickelt wurde, jedoch updatet dieser ihn nicht regelmäßig, sodass teilweise ziemliche Schäden in der Spielwirtschaft auftreten können.

So und genau darum geht es mir jetzt.
Ich würde gerne zwei Anwendungen schreiben.
Und zwar eine, die auf unserem Root ausgeführt wird und die eingehenden Packete filtert (Wenn ich dieses Programm selbst schreibe, kann ich es updaten, sobald ein neues schädliches Packet realeased wird) und eine andere, die zusammen mit dem Spielclient ausgeführt wird und die Prozesse überwacht und dort nach diesem Packeteditor sucht.

Bei dem Programm, das mit dem Client ausgeführt werden soll, würde ich das gerne so umsetzen, dass sich der Client schließt, sobald man meinen Anticheat über den Taskmanager beendet.
Sprich dass diese zwei Programm abhängig von einander sind (Wenn der Anticheat nicht läuft dann läuft auch der Client nicht).


So, dass jetzt zuerst einmal damit ihr wisst, wo ich das ganze Anwenden möchte.
Jetzt habe ich aber leider keine Ahnung in welcher Sprache sich das ganze am Besten umsetzen lässt.

Ich hoffe ihr könnt mir da weiter helfen, da Wikipedia und Google mir dabei leider nicht so hilfreiche Sachen ausgespuckt haben (Vielleicht hab ich auch nur falsch gesucht)

Edit:
Ich habe leider noch keinerlei Vorkenntnisse in Sachen Programmieren.

Danke schon mal für eure Antworten

MfG.
Eysk
 
Zuletzt bearbeitet:
Pakete senden, um den Server zum Absturz zu bringen? Wie wäre es, die Anwendung zu patchen, sodass sowas nicht mehr so einfach vorkommen kann?
 
Hi,

Die Packete die gesendet werden, können den Spielserver zum Absturz bringen, nicht den Root Server (Sry falls das falsch rüberkahm).
Durch den Packetfilter wurden auch die ersten Packete die releast wurden geblockt, jedoch gibt es nun wieder neue Crash-Packete, die noch nicht geblockt werden.

Damit wir nun nicht jedesmal auf den Hersteller des Packetfilters warten müssen, habe ich mir überlegt das ganze selbst zu lernen und somit etwas mehr Sicherheit zu haben.

Der Server ist auf dem neusten Stand der Windowsupdates, Ports sind nach außen hin zu (Bis auf die, die eben benötigt werden) und Firewall ist auch richtig eingestellt, also am Root Server kann sich keiner zu Werke machen.
Das Problem ist wie genannt nur dass durch diese Packets irgendwelche Leecher Kinder den Spielemulator zum Absturz bringen und somit den anderen Spielern den Spaß nehmen.

MfG.
 
naja, dann muss die Anwendung gepatcht werden, wenn nur die davon betroffen ist. Und zwar muss sie selbst eingehende Pakete auf Gültigkeit überprüfen.

Ansonsten wird es ein ewiges Wettrüsten sein.
 
Hi,

die Anwendung selbst können wir nicht patchen, da sie schon auf dem neuesten Stand ist.

Das mit dem ewigen Wettrüsten ist mir bewusst, aber an erster Stelle geht es uns vorallem darum, dass die Packete die in irgendwelchen Foren verbreitet werden so schnell wie Möglich unschädlich gemacht werden können.

Und um ein senden der Packete vorzubeugen, möchte ich ja auch eine zweite Anwendung schreiben, die zusammen mit dem Spieleclient gestartet werden soll.

Diese soll überprüfen ob Programme wie WPE u.Ä. laufen und falls ja, den Client beenden.

Das Problem das wir in erster Linie haben, sind die Leecher die nur ein einziges Programm herunterladen, dort etwas, das sie aus einem Forum kopiert haben, eintragen und dann auf "Start sending Packet" klicken.

Diese Zielgruppe möchten wir dadruch aufhalten, dass sie eben dieses Programm nicht mehr mit unserem Spielclient zusammen benutzen können.

MfG.
 
Mit Spieleclient meinst du den Client, von dem aus auf euren Server zugegriffen werden kann? Das wird nichts bringen, da ihr wohl keinen Einfluß darauf haben werdet, welche Programme die Benutzer auf ihren Computern laufen haben. Abgesehen davon lassen sich solche Pakete, wenn der Server über das Internet erreichbar ist auch von belieben anderen Rechnern abschicken. Da hilft auch keine zweite Anwendung.

Wie wollt ihr denn erreichen, dass die Benutzer auch eure zweite Anwendung bei sich installieren? Das ginge nur, wenn ihr das in den Spieleclient integrieren könntet...

wenn schon filtern, dann beim Server. Dass hier zunächst Pakete auf Gültigkeit hin überprüft werden.
 
Dem User so ein Tool aufzudrängen wird genau gar nichts bringen und ihm nur auf den Sack gehen.

Außerdem würde ich dringend dazu raten, die genannte Serversoftware nicht einzusetzen. Wenn da
schon mehrere Fehler enthalten sind, die DoS erlauben und die Software nicht nur nicht sofort sondern
anscheinend ja überhaupt nicht gepatcht wird, ist es nur eine Frage der Zeit, bis einer deinen Server
(also den "root", für dessen Administration dir die Kompetenz fehlt) übernommen hat.

Da rumzuflickschustern ist sinnlos. Das muss deinstalliert werden. Einzig vernünftige Lösung.
 
Klingt nach einer Aufgabe auf genau dem Niveau von OP, der schon mit simpelsten Sicherheitsüberlegungen geistig überfordert ist.
 
Danke schon mal für eure Antworten.

Außerdem würde ich dringend dazu raten, die genannte Serversoftware nicht einzusetzen. Wenn da
schon mehrere Fehler enthalten sind, die DoS erlauben und die Software nicht nur nicht sofort sondern
anscheinend ja überhaupt nicht gepatcht wird, ist es nur eine Frage der Zeit, bis einer deinen Server
(also den "root", für dessen Administration dir die Kompetenz fehlt) übernommen hat.

Anscheinend habt ihr mich immer noch nicht richtig verstanden.
Die Software kann nicht aktualisiert werden, da sie bereits auf dem aktuellsten Stand der Serverfiles ist, die auch die offiziellen Server verwenden. Nur haben die eben die Zeit und auch die Erfahrung dass sie mit diesen Files schon eine Zeit lang arbeiten und das nicht nur Hobbymäßig machen.
Den Root kann man nicht übernehmen, das einzigste was diese Leute machen ist die Serveremulation zum absturz zu bringen.
Das hat jedoch nichts mit dem Root zu tun.
Die anderen Programme darauf, wie Forum, Mailserver, TS3 etc. laufen weiter, lediglich der Emulator hängt sich eben auf.

Ich denke nicht dass mir die Kompetenz für die Administration fehlt, Fehler sind da um daraus zu lernen und genau das will ich schließlich.
Ist ja noch keiner vom Himmel gefallen, der sofort wusste wie er seinen Server gegen alles komplett absichern kann.
Außerdem denke ich dass unser Server schon recht gut gesichert ist (Nur die nötigsten Ports sind nach außen hin Offen, MySQL und MSSQL nur local erreichbar, generierte PW's, etc.).

Mit Spieleclient meinst du den Client, von dem aus auf euren Server zugegriffen werden kann? Das wird nichts bringen, da ihr wohl keinen Einfluß darauf haben werdet, welche Programme die Benutzer auf ihren Computern laufen haben. Abgesehen davon lassen sich solche Pakete, wenn der Server über das Internet erreichbar ist auch von belieben anderen Rechnern abschicken. Da hilft auch keine zweite Anwendung.

Wie wollt ihr denn erreichen, dass die Benutzer auch eure zweite Anwendung bei sich installieren? Das ginge nur, wenn ihr das in den Spieleclient integrieren könntet...

wenn schon filtern, dann beim Server. Dass hier zunächst Pakete auf Gültigkeit hin überprüft werden.

Genau, mit Spieleclient meine ich den Clienten, mit dem die User auf unsere Server zugreifen können.
Dieser Anticheat würde dann in den Clienten integriert werden und mit ihm Installiert / gestartet und beendet werden.

Die offiziellen Server haben den Gameguard eingebaut, da wir den wohl eher nicht bekommen werden, aber trotzdem relativ sicher sein wollen, habe ich mir eben überlegt mich mal an das Programmieren zu wagen (Hat natürlich auch noch weitere Vorteile für mich) und uns so etwas ähnliches (Natürlich nicht so ausgeprägt) zu machen.

Wir haben nun etwas, was uns Serverside schützt, sprich die Packete filtert und bösartige blockiert, jedoch wäre es nun eben auch noch schön etwas zu haben was Cheat Engine u.Ä. blockiert.
Sprich dass sie eben nicht zusammen mit unserem Client ausgeführt werden können.

Danke schonmal für eure Hilfe

MfG.
 
Anhand deiner Antwort kann ich ablesen, wie wenig du von dem verstanden hast, was ich gesagt habe.
Bisher werden Sicherheitsmängel ausgelöst, die -- wie du sagst -- den "Serveremulator" zum Absturz
bringen. Da der "Serveremulator" offensichtlich sehr schlampig programmiert ist, ist davon auszugehen,
dass es weitere Sicherheitsmängel gibt (die noch nicht bekannt sind), mit denen man deinen "root"
komplett kompromittieren kann.

Sicher ist niemand als Superadmin geboren, aber normalerweise übt man das nicht an einem öffentlich
zugänglichen Server. Das macht man lieber zu hause, wo man keinen Schaden anrichten kann.

Und als Randbemerkung noch: Ob ein Port offen oder geschlossen ist, macht für die Sicherheit keinen
Unterschied. Wer das denkt, ist auf ZoneAlarm und sonstige Sicherheitsvortäuschunggsoftware herein
gefallen.
 
Hi,

der Hauptserver, ist seit diese Packete releast wurden Offline und nicht mehr öffentlich zugänglich.
Unsere Tests laufen derzeit auf einem anderen Root, von dem keinem außer dem Team die IP bekannt ist.
Wenn wir keine Probleme mehr damit haben, dann wird der Server mit dem Fix wieder online gesetzt, sodass die normalen User wieder spielen können.

Inzwischen haben wir es auch geschafft das ganze zu Fixxen und die Packete zu blockieren, also kann der Server schonmal nicht mehr dadurch gecrasht werden.

Alles was ich jetzt noch gerne hätte, ist ein Clientseitiger Anticheat, der Sachen wie Cheat Enginge und so Sachen eben blockt.

Danke, dass du es für mich nochmals ausführlicher geschildert hast, habe jetzt auch verstanden was du mir mit dem Sicherheitsaspekt sagen wolltest.

Falls ich irgendetwas immer noch nicht begriffen habe, was du mir sagen wolltest, dann nur raus damit, bin nach 8 Stunden Arbeit nicht immer gleich ganz da.

MfG.
 
Ein Clientseitiges Zusatzprogramm, dass Cheaten verhindern soll ist zum Scheitern verurteilt, wenn es nicht
direkt in den Client eingebaut ist. Und wie will ein Prozess, der zwangsweise abgewürgt wurde, noch irgend
etwas machen (wie einen anderen Prozess mitreißen)? Was du da willst, geht halt nicht. Zumindest nicht so,
dass es selbst mittelgradig verständige Leute mit Minimalaufwand umgehen können.
 
Hi,

wir haben den Sourcecode des Clients, jedoch noch ein paar Probleme damit ihn zu 100% zum laufen zu bringen.
Theoretisch wäre es also Möglich das ganze direkt in den Clienten einzubauen.
Wir müssen uns halt nur noch etwas mehr in die Materie einarbeiten.

Habe es vor einiger Zeit mal gesehen, dass sobald der Anticheat geschlossen wurde, sich der gesamte Client verabschiedet hat.
Durch den Gameguard wird es schließlich genauso gehandhabt.
Ist zwar bescheuert sich gleich an so etwas zu Messen, wenn man noch nichteinmal die Sprache weiß in der man soetwas am Besten coden sollte, aber irgendwelche Ziele muss man sich ja setzen...

Desweiteren geht es uns wie ich oben geschrieben habe auch zum größten Teil nur darum ein einziges Programm unschädlich zu machen.
Eventuell auch zwei Programme.

Mehr wird in dieser "Szene" von den Cheatern nicht benutzt.
Die meisten Leute laden sich dieses Programm runter, Copy & Paste und drücken dann auf den "Send Packet" Button.

MfG.
 
Wenn ihr den Sourcecode habt, haben Andere ihn auch. Sie bauen sich ihren eigenen Client ohne euer tolles
funktionsunfähiges Programm, das nur nervt und nur diejenigen, die keinen Ärger machen, müssen sich damit
herumschlagen.

Rate weiterhin ab.
 
Hi,

okay, wie wäre es wenn wir die Packete verschlüsseln würden?
Dann müsste man doch theoretisch zuerst einmal die Verschlüsselung knacken, bevor man uns irgendwelche Packete senden kann oder?

Und falls das so klappen würde, wie genau könnte ich die Packete dann verschlüsseln?
Weil der Server müsste die empfangenen Packete ja erst wieder entschlüsseln -> Umsetzen -> neue Packete verschlüsseln -> zum Client zurück schicken -> Client entschlüsselt die Packete und gibt sie dementsprechend aus

Würde soetwas nicht in ziemlichen Lags enden?

MfG.
 
Die Verarbeitungszeit beim Verschlüsseln müsste dann geringer als die Round-Trip-Time sein (was kein Problem sein dürfte, es sei denn, man programmiert Grütze).
 
Zurück
Oben