Simpler aber kraftvoller TCP Server zur Integration in andere Projekte

Du hast eine Idee für ein Projekt?
Antworten
tomba
User
Beiträge: 21
Registriert: Montag 14. Dezember 2015, 15:53

Hallo.

Ich habe ein kleines Nebenprojekt bei einem größeren Projekt von mir (Ein RAT in Python [ein rein zur legalen Nutzung konzipiertes so wie TeamViewer als Shell und ein bisschen Tkinter GUI]).

Dieses Projekt ist ein relativ unkomplizierter und leicht verwendbarer / einbaubarer TCP Server. (So "out of the box" mäßig)

Meint Ihr, dass so ein Projekt einen Sinn ergäbe und andere Programmierer weiterbringen würde?

Achja, zur besseren Bildung einer Meinung ein paar specs des Servers:

- Jeder Client bekommt eine ID (9 chars) zugewiesen, welche SHA512 gehasht wird. Von dieser Hashsum werden die ersten 16 Zeichen als Schlüssel für seine Datenpakete genutzt. [Diese sind btw. AES256 verschlüsselt]

- Bei einer Verbindung wird diese ID in ein Dictionary gelegt. Nach Kontrolle des Clients wird dieser zu einer Klasse welche Funktionen enthält,
welche einen einfachen Umgang mit dem Client ermöglichen (z.B. sendfile,recvfile,send,recv,suicide) und als seine ID im dict "clients" saved.

- Infos zum Client (IP,Zeit der Verbindung) werden in einem anderen dict unter dessen ID gespeichert

- Im 5 Sekunden-Takt wird erkannt, ob ein Client disconnected ist. Dieser wird dann aus den "Datenbanken" entfernt.

- Einfacher Start oder einfache Integration in eure Projekte:

x = adv_tcp_server(127.0.0.1,443,256 [256 ist das Userlimit],False [Userlimit],False [GUI-Mode])
x.standalone = True # Als nicht integrierter Server (nützlich für Dateitransfer etc.)
x.host() # Erstellt Socket
x.handle() # Nimmt ab Aufruf Clients an

x = adv_tcp_server(127.0.0.1,443,256 [256 ist das Userlimit], gui=False)
x.host()
x.handle()



SO: Wie findet ihr das Konzept? Verbesserungsvorschläge? Oder ganz lassen?
Science makes you fly to the moon, religion makes you fly into buildings.
BlackJack

@tomba: Was bedeutet denn „krafvoll“ im Kontext eines TCP-Servers? :-)

Warum eine 9-Zeichen-ID hashen und dann 75% des Ergebnisses wegwerfen? Wenn man 128 Bits zum identifizieren braucht, warum dann nicht einfach eine UUID erzeugen?

Warum selber verschlüsseln statt ein SSL-Socket zu erstellen?
tomba
User
Beiträge: 21
Registriert: Montag 14. Dezember 2015, 15:53

Danke für die Antwort erstmal. Mit kraftvoll ist gemeint, dass er recht viele Clients ziemlich effektiv handlen und viele Funktionen bieten kann (mein Gott, ich wollte "powerful" übersetzen xD) .

(Obige zeile: truth = line0.replace("kann","koennen soll"))

Warum nicht einfach SSL: Will mir offen halten, die Verschlüsselung bspw. für große Dateien abschaltbar zu integrieren.


//edit Noch zu der anderen Frage: weil ich mit dem ID System schon recht lange so arbeite und das gut funktioniert. Ich meine, ob ich jetzt 9 Zeichen vom ID hash nehme, oder direkt die ID ist eigentlich egal.
Zuletzt geändert von tomba am Donnerstag 17. Dezember 2015, 19:14, insgesamt 1-mal geändert.
Science makes you fly to the moon, religion makes you fly into buildings.
Benutzeravatar
snafu
User
Beiträge: 6736
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

tomba hat geschrieben:Mit kraftvoll ist gemeint, dass er recht viele Clients ziemlich effektiv handlen und viele Funktionen bieten kann (mein Gott, ich wollte "powerful" übersetzen xD) .
Wie wär's mit "leistungsstark" / "leistungsfähig"? ;)
tomba
User
Beiträge: 21
Registriert: Montag 14. Dezember 2015, 15:53

snafu hat geschrieben:
tomba hat geschrieben:Mit kraftvoll ist gemeint, dass er recht viele Clients ziemlich effektiv handlen und viele Funktionen bieten kann (mein Gott, ich wollte "powerful" übersetzen xD) .
Wie wär's mit "leistungsstark" / "leistungsfähig"? ;)
Ja, das wäre wohl eine bessere/angebrachtere Übersetzung gewesen :D ^ Da oben ist eine richtige Quote-Ception :o
Science makes you fly to the moon, religion makes you fly into buildings.
Antworten