درست پراکسی ایڈریس ہاتھ سے لکھے SOCKS پیغام کو درست نہیں بناتا۔ C یا C++ اسٹرکچر بھیجنے سے ایسی پیڈنگ یا ہوسٹ ترتیب کے صحیح اعداد بھیجے جا سکتے ہیں جو پروٹوکول نے کبھی نہیں مانگے۔

SOCKS5 ڈومین نام والی CONNECT درخواست کے لیے، طریقہ کار کی گفتگو اور منتخب کردہ کسی بھی تصدیق کے بعد اس ترتیب کو واضح طور پر سیریلائز کریں:

  1. ورژن، کمانڈ، محفوظ بائٹ اور ایڈریس کی قسم
  2. ڈومین کی لمبائی اور ڈومین بائٹس
  3. نیٹ ورک بائٹ ترتیب میں دو بائٹ کا منزل پورٹ

ایڈریس کی لمبائیاں SOCKS ورژن اور ایڈریس کی قسم پر منحصر ہیں۔ مقررہ چوڑائی والے عددی فیلڈز کو ان کی متعین نمائندگی درکار ہے؛ ڈومین اسٹرنگز کی اپنی لمبائی انکوڈنگ ہے۔ C اسٹرنگ ٹرمینیٹر وائر پیغام میں صفر شامل کرنے کی عمومی ہدایت نہیں ہے۔

عمل درآمد میں شارٹ کٹجانچنے والا مسئلہ
8 بٹ پوائنٹر کے ذریعے 32 بٹ قدر تفویض کرنایہ چاروں بائٹس خارج نہیں کرتا
بفر کو بڑے صحیح عدد پوائنٹر میں کاسٹ کرناسیدھ اور بائٹ ترتیب اب بھی سنبھالنی ہوگی
یہ فرض کرنا کہ ایک پڑھنا یا لکھنا ایک پیغام ہےTCP پروٹوکول ترتیب کا صرف ایک حصہ منتقل کر سکتا ہے

ہر فیلڈ کا موازنہ مطلوبہ منزل سے کریں اور جزوی I/O سنبھالیں۔ دو بائٹس ملنا یہ ثابت نہیں کرتا کہ پورا جواب آ گیا۔ ان حدود کی جانچ بگڑی ہوئی درخواست کو درست طور پر بیان کردہ کنکشن مسترد کرنے والے سرور سے الگ کر سکتی ہے۔

متعلقہ مضامین