แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ ControlFlag 1.0 แžŠแŸ‚แž›แž‡แžถแžงแž”แž€แžšแžŽแŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ’แžœแŸ‚แž„แžšแž€แž€แŸ†แž แžปแžŸแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžผแžŠ C

แž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“ Intel แž”แžถแž“แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž—แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžŠแŸแž’แŸ†แžŠแŸ†แž”แžผแž„แž“แŸƒแžงแž”แž€แžšแžŽแŸ ControlFlag 1.0 แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž€แŸ†แžŽแžแŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽแž€แŸ†แž แžปแžŸแž“แžทแž„แž—แžถแž–แž˜แžทแž“แž”แŸ’แžšแž€แŸ’แžšแžแžธแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžผแžŠแž”แŸ’แžšแž—แž–แžŠแŸ„แž™แž”แŸ’แžšแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžšแŸ€แž“แž˜แŸ‰แžถแžŸแŸŠแžธแž“แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แžŽแŸ’แžแžปแŸ‡แž”แžŽแŸ’แžแžถแž›แž›แžพแž…แŸ†แž“แžฝแž“แžŠแŸแž…แŸ’แžšแžพแž“แž“แŸƒแž€แžผแžŠแžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹แŸ” แž˜แžทแž“แžŠแžผแž…แžงแž”แž€แžšแžŽแŸแžœแžทแž—แžถแž‚แž‹แžทแžแžทแžœแž“แŸ’แžแž”แŸ‚แž”แž”แŸ’แžšแž–แŸƒแžŽแžธแž‘แŸ ControlFlag แž˜แžทแž“แžขแž“แžปแžœแžแŸ’แžแž…แŸ’แž”แžถแž”แŸ‹แžŠแŸ‚แž›แžแŸ’แžšแŸ€แž˜แžšแžฝแž…แž‡แžถแžŸแŸ’แžšแŸแž…แž‘แŸ แžŠแŸ‚แž›แžœแžถแž–แžทแž”แžถแž€แž€แŸ’แž“แžปแž„แž€แžถแžšแž•แŸ’แžแž›แŸ‹แž‡แž˜แŸ’แžšแžพแžŸแžŠแŸ‚แž›แžขแžถแž…แž’แŸ’แžœแžพแž”แžถแž“แž‘แžถแŸ†แž„แžขแžŸแŸ‹ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž•แŸ’แžขแŸ‚แž€แž›แžพแžŸแŸ’แžแžทแžแžทแžŸแŸ’แžแžธแž–แžธแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŸแŸ†แžŽแž„แŸ‹แž—แžถแžŸแžถแž•แŸ’แžŸแŸแž„แŸ—แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„แžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แž’แŸ†แŸ” แž€แžผแžŠ ControlFlag แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž‡แžถ C ++ แž แžพแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแž—แž–แž”แžพแž€แž…แŸ†แž แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ MIT แŸ”

แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž”แžŽแŸ’แžแžปแŸ‡แž”แžŽแŸ’แžแžถแž›แžŠแŸ„แž™แž€แžถแžšแž€แžŸแžถแž„แž‚แŸ†แžšแžผแžŸแŸ’แžแžทแžแžทแž“แŸƒแžขแžถแžšแŸแž€แžผแžŠแžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹แž“แŸƒแž‚แž˜แŸ’แžšแŸ„แž„แž”แŸ’แžšแž—แž–แž”แžพแž€แž…แŸ†แž แžŠแŸ‚แž›แž”แžถแž“แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž–แž•แŸ’แžŸแžถแž™แž“แŸ…แž€แŸ’แž“แžปแž„ GitHub แž“แžทแž„แžƒแŸ’แž›แžถแŸ†แž„แžŸแžถแž’แžถแžšแžŽแŸˆแžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแŸ” แž“แŸ…แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž”แžŽแŸ’แžแžปแŸ‡แž”แžŽแŸ’แžแžถแž› แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แŸ†แžŽแžแŸ‹แž‚แŸ†แžšแžผแž’แž˜แŸ’แž˜แžแžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŸแžถแž„แžŸแž„แŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžผแžŠ แž“แžทแž„แž”แž„แŸ’แž€แžพแžแž˜แŸ‚แž€แž’แžถแž„แžœแžถแž€แŸ’แž™แžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž“แŸƒแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แžšแžœแžถแž„แž‚แŸ†แžšแžผแž‘แžถแŸ†แž„แž“แŸแŸ‡ แžŠแŸ‚แž›แž†แŸ’แž›แžปแŸ‡แž”แž‰แŸ’แž…แžถแŸ†แž„แž–แžธแž›แŸ†แž แžผแžšแž“แŸƒแž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžผแžŠแž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแŸ” แž‡แžถแž›แž‘แŸ’แž’แž•แž› แž˜แŸ‚แž€แž’แžถแž„แž’แŸ’แžœแžพแžŸแŸแž…แž€แŸ’แžแžธแžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž™แŸ„แž„แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„ แžŠแŸ‚แž›แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‚แŸ’แž“แžถแž“แžผแžœแž”แž‘แž–แžทแžŸแŸ„แž’แž“แŸแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž“แŸƒแž€แžผแžŠแž”แŸ’แžšแž—แž–แžŠแŸ‚แž›แž”แžถแž“แžœแžทแž—แžถแž‚แž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ” แž€แžผแžŠแžŠแŸ‚แž›แž€แŸ†แž–แžปแž„แžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž“แŸƒแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽแž‚แŸ†แžšแžผแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แž”แŸ’แžšแž†แžถแŸ†แž„แž“แžนแž„แž˜แŸ‚แž€แž’แžถแž„แž€แžถแžšแžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž™แŸ„แž„แŸ” แž—แžถแž–แžแžปแžŸแž‚แŸ’แž“แžถแž’แŸ†แž‡แžถแž˜แžฝแž™แžŸแžถแžแžถแž‡แžทแžแžแžถแž„แž”แž„แŸ’แž แžถแž‰แž–แžธแžœแžแŸ’แžแž˜แžถแž“แž“แŸƒแž—แžถแž–แž˜แžทแž“แž”แŸ’แžšแž€แŸ’แžšแžแžธแž“แŸ…แž€แŸ’แž“แžปแž„แž‚แŸ†แžšแžผแžŠแŸ‚แž›แž€แŸ†แž–แžปแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž–แžทแž“แžทแžแŸ’แž™แŸ”

แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ ControlFlag 1.0 แžŠแŸ‚แž›แž‡แžถแžงแž”แž€แžšแžŽแŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ’แžœแŸ‚แž„แžšแž€แž€แŸ†แž แžปแžŸแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžผแžŠ C

แž‡แžถแžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžŸแž˜แžแŸ’แžแž—แžถแž–แžšแž”แžŸแŸ‹ ControlFlag แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž”แžถแž“แžœแžทแž—แžถแž‚แž€แžผแžŠแž”แŸ’แžšแž—แž–แž“แŸƒแž‚แž˜แŸ’แžšแŸ„แž„ OpenSSL แž“แžทแž„ cURLแŸ–

  • แžŸแŸ†แžŽแž„แŸ‹แžขแž“แžถแž˜แžทแž€ โ€œ(s1 == NULL) โˆง (s2 == NULL)โ€ แž“แžทแž„ โ€œ(s1 == NULL) | (s2 == NULL)" แžŠแŸ‚แž›แž˜แžทแž“แžแŸ’แžšแžผแžœแž‚แŸ’แž“แžถแž“แžนแž„แž›แŸ†แž“แžถแŸ†แžŠแŸ‚แž›แž”แŸ’แžšแžพแž‡แžถแž‘แžผแž‘แŸ… "(s1 == NULL) || (s2 == NULL)" แŸ” แž€แžผแžŠแž“แŸแŸ‡แž€แŸแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽแž—แžถแž–แž˜แžทแž“แž”แŸ’แžšแž€แŸ’แžšแžแžธแž“แŸ…แž€แŸ’แž“แžปแž„แž€แž“แŸ’แžŸแŸ„แž˜ โ€œ(-2 == rv)โ€ (แžŠแž€แž‚แžบแž‡แžถแž€แžถแžšแžœแžถแž™แžขแž€แŸ’แžŸแžš) แž“แžทแž„ โ€œBIO_puts(bp, โ€œ:โ€) <= 0)โ€ (แž€แŸ’แž“แžปแž„แž”แžšแžทแž”แž‘แž“แŸƒแž€แžถแžšแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แž€แžถแžšแž”แž‰แŸ’แž…แž”แŸ‹แžŠแŸ„แž™แž‡แŸ„แž‚แž‡แŸแž™แž“แŸƒ แž˜แžปแžแž„แžถแžšแžœแžถแž‚แžฝแžšแžแŸ‚แž‡แžถ "== 0") แŸ”
  • แž“แŸ…แž€แŸ’แž“แžปแž„ cURL แž€แŸ†แž แžปแžŸแž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แžƒแžพแž‰แžŠแŸ‚แž›แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แžƒแžพแž‰แžŠแŸ„แž™แžขแŸ’แž“แž€แžœแžทแž—แžถแž‚แž‹แžทแžแžทแžœแž“แŸ’แž แž“แŸ…แž–แŸแž›แž”แŸ’แžšแžพแž’แžถแžแžปแžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ โ€œs->keeponโ€ แžŠแŸ‚แž›แž˜แžถแž“แž”แŸ’แžšแž—แŸแž‘แž›แŸแž แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แž‡แžถแž˜แžฝแž™แž“แžนแž„แžแž˜แŸ’แž›แŸƒแž”แŸŠแžผแž›แžธแž“ TRUE แŸ”

แž€แŸ’แž“แžปแž„โ€‹แž…แŸ†แžŽแŸ„แž˜โ€‹แž›แž€แŸ’แžแžŽแŸˆโ€‹แž–แžทแžŸแŸแžŸโ€‹แž“แŸƒโ€‹แž€แŸ†แžŽแŸ‚ ControlFlag 1.0 แž˜แžถแž“โ€‹แž€แžถแžšโ€‹แž‚แžถแŸ†แž‘แŸ’แžšโ€‹แž–แŸแž‰โ€‹แž›แŸแž‰โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž‚แŸ†แžšแžผโ€‹แžŸแŸ’แžแž„แŸ‹แžŠแžถแžšโ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž—แžถแžŸแžถ C แž“แžทแž„โ€‹แžŸแž˜แžแŸ’แžแž—แžถแž–โ€‹แž€แŸ’แž“แžปแž„โ€‹แž€แžถแžšโ€‹แžšแž€โ€‹แžƒแžพแž‰โ€‹แž—แžถแž–โ€‹แž˜แžทแž“โ€‹แž”แŸ’แžšแž€แŸ’แžšแžแžธโ€‹แž€แŸ’แž“แžปแž„โ€‹แž€แž“แŸ’แžŸแŸ„แž˜ "if" แžแžถแž˜โ€‹แž›แž€แŸ’แžแžแžŽแŸ’แžŒแŸ” แžงแž‘แžถแž แžšแžŽแŸแž“แŸ…แž–แŸแž›แžœแžทแž—แžถแž‚แž”แŸ†แžŽแŸ‚แž€แž€แžผแžŠ "แž”แŸ’แžšแžŸแžทแž“แž”แžพ (x = 7) y = x;" แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž“แžนแž„แž€แŸ†แžŽแžแŸ‹แžแžถ แžŸแŸแž…แž€แŸ’แžแžธแžแŸ’แž›แŸ‚แž„แž€แžถแžšแžŽแŸ "แž”แŸ’แžšแžŸแžทแž“แž”แžพ" แž‡แžถแž’แž˜แŸ’แž˜แžแžถแž”แŸ’แžšแžพแžŸแŸ†แžŽแž„แŸ‹ "แžขแžแŸแžš == แž…แŸ†แž“แžฝแž“" แžŠแžพแž˜แŸ’แž”แžธแž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แžแž˜แŸ’แž›แŸƒแž‡แžถแž›แŸแž แžŠแžผแž…แŸ’แž“แŸแŸ‡แžœแžถแž‘แŸ†แž“แž„แž‡แžถแžแŸ’แž–แžŸแŸ‹แžŠแŸ‚แž›แžแžถ "แžขแžแŸแžš = แž›แŸแž" แž“แŸ…แž€แŸ’แž“แžปแž„แž€แž“แŸ’แžŸแŸ„แž˜ "แž”แŸ’แžšแžŸแžทแž“แž”แžพ" แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžกแžพแž„แžŠแŸ„แž™แž€แžถแžšแžœแžถแž™แžขแž€แŸ’แžŸแžšแŸ” แž€แž‰แŸ’แž…แž”แŸ‹แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžŸแŸ’แž‚แŸ’แžšแžธแž”แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž‘แžถแž‰แž™แž€แžƒแŸ’แž›แžถแŸ†แž„แž—แžถแžŸแžถ C แžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹แž“แŸ…แž›แžพ GitHub แž แžพแž™แž”แŸ’แžšแžพแž–แžฝแž€แžœแžถแžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแž‚แŸ†แžšแžผแŸ” แž˜แŸ‰แžผแžŠแŸ‚แž›แžŠแŸ‚แž›แž•แž›แžทแžแžšแžฝแž…แžšแžถแž›แŸ‹แž€แŸแž˜แžถแž“แž•แž„แžŠแŸ‚แžš แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž–แžทแž“แžทแžแŸ’แž™แž›แŸแžแž€แžผแžŠแž—แŸ’แž›แžถแž˜แŸ—แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹