Eng gülteg Proxy-Adress mécht eng handgeschriwwen SOCKS-Noriicht net gülteg. Eng C- oder C++-Struktur ze schécke kann Padding oder Ganzzuelen an der Host-Reiefolleg schécken, déi de Protokoll ni gefrot huet.

Fir eng SOCKS5-CONNECT-Ufro mat Domainnumm, serialiséiert dës Reiefolleg explizit no der Methodeverhandlung an enger eventuell ausgewielter Authentifizéierung:

  1. Versioun, Kommando, reservéierte Byte an Adresstyp
  2. Domainlängt an Domainbytes
  3. Den zwee-Byte-Destinatiounsport an der Netzwierk-Byte-Reiefolleg

Adresstlängten hänken vun der SOCKS-Versioun an dem Adresstyp of. Numeresch Felder mat fester Breet brauchen hir spezifizéiert Duerstellung; Domain-Strings hunn hir eegen Längt-Kodéierung. En C-String-Terminator ass keng allgemeng Instruktioun, eng Null un d'Wire-Noriicht ze hänken.

Kuerzwee an der ËmsetzungProblem ze préifen
En 32-Bit-Wäert iwwer en 8-Bit-Zeiger zouweisenEt gëtt net all véier Bytes aus
E Puffer op e Zeiger op eng méi grouss Ganzzuel castenAusriichtung a Byte-Reiefolleg musse weiderhi behandelt ginn
Unhuelen, datt eng Liese- oder Schreiwen een Noriicht assTCP kann nëmmen en Deel vun der Protokollsequenz iwwerdroen

Vergläicht all Feld mat der geduechter Destinatioun a behandelt deelweis I/O. Zwee Bytes z'erhalen beweist net, datt déi ganz Äntwert ukomm ass. D'Prüfe vun dëse Grenze kann eng feelerhaft Ufro vun engem Server ënnerscheeden, deen eng korrekt beschriwwen Verbindung ofleet.

Ähnlech Artikelen