Simpler aber kraftvoller TCP Server zur Integration in andere Projekte
Verfasst: Donnerstag 17. Dezember 2015, 17:49
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?
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?