Жарамды прокси мекенжайы қолмен жазылған SOCKS хабарламасын жарамды етпейді. C немесе C++ құрылымын жіберу протокол ешқашан сұрамаған толтыруды немесе хост ретімен бүтін сандарды жіберуі мүмкін.

SOCKS5 домен атауы бар CONNECT сұранысы үшін әдіс келіссөзінен және таңдалған кез келген аутентификациядан кейін осы ретті анық сериализациялаңыз:

  1. Нұсқа, команда, қорғалған байт және мекенжай түрі
  2. Домен ұзындығы және домен байттары
  3. Желілік байт ретіндегі екі байттық межелі порт

Мекенжай ұзындықтары SOCKS нұсқасына және мекенжай түріне байланысты. Тұрақты ені бар сандық өрістер өздерінің белгіленген көрінісін қажет етеді; домен жолдарының өз ұзындық кодтауы бар. C жолының аяқтаушысы сым хабарламасына нөл қосудың жалпы нұсқауы емес.

Іске асырудағы қысқа жолТексерілетін мәселе
32-биттік мәнді 8-биттік көрсеткіш арқылы меншіктеуОл төрт байттың бәрін шығармайды
Буферді үлкенірек бүтін сан көрсеткішіне түрлендіруТуралау мен байт ретін әлі де өңдеу керек
Бір оқу немесе жазу бір хабарлама деп болжауTCP протокол тізбегінің тек бір бөлігін жеткізе алады

Әр өрісті көзделген межеге салыстырыңыз және ішінара I/O-ны өңдеңіз. Екі байтты алу жауаптың толық келгенін дәлелдемейді. Осы шекараларды тексеру бүлінген сұранысты дұрыс сипатталған қосылымнан бас тартатын серверден ажыратуы мүмкін.

Қатысты мақалалар