C struct ಕೆಟ್ಟ SOCKS ವಿನಂತಿಯನ್ನು ಏಕೆ ಉತ್ಪಾದಿಸಬಹುದು
ಕಂಪೈಲರ್ ಲೇಔಟ್ ಅನ್ನು ವೈರ್ ಫಾರ್ಮ್ಯಾಟ್ ಎಂದು ಪರಿಗಣಿಸುವ ಬದಲು ಸ್ಪಷ್ಟ ಕ್ಷೇತ್ರ ಅಗಲಗಳು, ಬೈಟ್ ಕ್ರಮ ಮತ್ತು ಸ್ಟ್ರೀಮ್ I/O ಅನ್ನು ಪರಿಶೀಲಿಸಿ.
ಮಾನ್ಯ ಪ್ರಾಕ್ಸಿ ವಿಳಾಸವು ಕೈಯಿಂದ ಬರೆದ SOCKS ಸಂದೇಶವನ್ನು ಮಾನ್ಯಗೊಳಿಸುವುದಿಲ್ಲ. C ಅಥವಾ C++ struct ಕಳುಹಿಸುವುದರಿಂದ ಪ್ರೋಟೋಕಾಲ್ ಎಂದೂ ಕೇಳದ ಪ್ಯಾಡಿಂಗ್ ಅಥವಾ ಹೋಸ್ಟ್-ಕ್ರಮದ ಪೂರ್ಣಾಂಕಗಳನ್ನು ಕಳುಹಿಸಬಹುದು.
SOCKS5 ಡೊಮೇನ್-ಹೆಸರಿನ CONNECT ವಿನಂತಿಗೆ, ವಿಧಾನ ಮಾತುಕತೆ ಮತ್ತು ಆಯ್ಕೆ ಮಾಡಿದ ಯಾವುದೇ ದೃಢೀಕರಣದ ನಂತರ ಈ ಅನುಕ್ರಮವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಸೀರಿಯಲೈಸ್ ಮಾಡಿ:
- ಆವೃತ್ತಿ, ಆಜ್ಞೆ, ಕಾಯ್ದಿರಿಸಿದ ಬೈಟ್ ಮತ್ತು ವಿಳಾಸ ಪ್ರಕಾರ
- ಡೊಮೇನ್ ಉದ್ದ ಮತ್ತು ಡೊಮೇನ್ ಬೈಟ್ಗಳು
- ನೆಟ್ವರ್ಕ್ ಬೈಟ್ ಕ್ರಮದಲ್ಲಿ ಎರಡು-ಬೈಟ್ ಗಮ್ಯಸ್ಥಾನ ಪೋರ್ಟ್
ವಿಳಾಸದ ಉದ್ದಗಳು SOCKS ಆವೃತ್ತಿ ಮತ್ತು ವಿಳಾಸ ಪ್ರಕಾರವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತವೆ. ಸ್ಥಿರ ಅಗಲದ ಸಂಖ್ಯಾ ಕ್ಷೇತ್ರಗಳಿಗೆ ಅವುಗಳ ನಿರ್ದಿಷ್ಟ ನಿರೂಪಣೆ ಬೇಕು; ಡೊಮೇನ್ ಸ್ಟ್ರಿಂಗ್ಗಳಿಗೆ ಅವುಗಳದೇ ಉದ್ದ ಎನ್ಕೋಡಿಂಗ್ ಇರುತ್ತದೆ. C ಸ್ಟ್ರಿಂಗ್ ಟರ್ಮಿನೇಟರ್ ವೈರ್ ಸಂದೇಶಕ್ಕೆ ಶೂನ್ಯ ಸೇರಿಸುವ ಸಾಮಾನ್ಯ ಸೂಚನೆಯಲ್ಲ.
| ಅನುಷ್ಠಾನದ ಸಣ್ಣ ದಾರಿ | ಪರಿಶೀಲಿಸಬೇಕಾದ ಸಮಸ್ಯೆ |
|---|---|
| 8-ಬಿಟ್ ಪಾಯಿಂಟರ್ ಮೂಲಕ 32-ಬಿಟ್ ಮೌಲ್ಯ ನಿಗದಿ ಮಾಡುವುದು | ಅದು ನಾಲ್ಕೂ ಬೈಟ್ಗಳನ್ನು ಹೊರಡಿಸುವುದಿಲ್ಲ |
| ಬಫರ್ ಅನ್ನು ದೊಡ್ಡ ಪೂರ್ಣಾಂಕ ಪಾಯಿಂಟರ್ಗೆ ಕಾಸ್ಟ್ ಮಾಡುವುದು | ಜೋಡಣೆ ಮತ್ತು ಬೈಟ್ ಕ್ರಮವನ್ನು ಇನ್ನೂ ನಿರ್ವಹಿಸಬೇಕು |
| ಒಂದು ಓದು ಅಥವಾ ಬರವಣಿಗೆ ಒಂದು ಸಂದೇಶ ಎಂದು ಊಹಿಸುವುದು | TCP ಪ್ರೋಟೋಕಾಲ್ ಅನುಕ್ರಮದ ಒಂದು ಭಾಗವನ್ನು ಮಾತ್ರ ವರ್ಗಾಯಿಸಬಹುದು |
ಪ್ರತಿ ಕ್ಷೇತ್ರವನ್ನು ಉದ್ದೇಶಿತ ಗಮ್ಯಸ್ಥಾನದೊಂದಿಗೆ ಹೋಲಿಸಿ ಮತ್ತು ಭಾಗಶಃ I/O ನಿರ್ವಹಿಸಿ. ಎರಡು ಬೈಟ್ಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದು ಸಂಪೂರ್ಣ ಉತ್ತರ ಬಂದಿದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುವುದಿಲ್ಲ. ಆ ಗಡಿಗಳನ್ನು ಪರಿಶೀಲಿಸುವುದು ವಿಕೃತ ವಿನಂತಿಯನ್ನು ಸರಿಯಾಗಿ ವಿವರಿಸಿದ ಸಂಪರ್ಕವನ್ನು ನಿರಾಕರಿಸುವ ಸರ್ವರ್ನಿಂದ ಬೇರ್ಪಡಿಸಬಹುದು.