ืฉื—ืจื•ืจ ืฉืœ ControlFlag 1.0, ื›ืœื™ ืœื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ื‘ืงื•ื“ C

ืื™ื ื˜ืœ ืคืจืกืžื” ืืช ื”ืžื”ื“ื•ืจื” ื”ื’ื“ื•ืœื” ื”ืจืืฉื•ื ื” ืฉืœ ื”ื›ืœื™ 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 ื•ื™ื›ื•ืœืช ืœื–ื”ื•ืช ื—ืจื™ื’ื•ืช ื‘ื‘ื™ื˜ื•ื™ื™ "ืื" ืžื•ืชื ื™ื. ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืžื ืชื—ื™ื ืืช ืงื˜ืข ื”ืงื•ื“ "ืื (x = 7) y = x;" ื”ืžืขืจื›ืช ืชืงื‘ืข ืฉื”ืžืฉืคื˜ "ืื" ืžืฉืชืžืฉ ื‘ื“ืจืš ื›ืœืœ ื‘ืžื‘ื ื” "ืžืฉืชื ื” == ืžืกืคืจ" ื›ื“ื™ ืœื”ืฉื•ื•ืช ืขืจื›ื™ื ืžืกืคืจื™ื™ื, ื›ืš ืฉืกื‘ื™ืจ ืžืื•ื“ ืฉื”-"ืžืฉืชื ื” = ืžืกืคืจ" ื‘ื‘ื™ื˜ื•ื™ "ืื" ื ื’ืจื ืžืฉื’ื™ืืช ื”ืงืœื“ื”. ื”ืขืจื›ื” ื›ื•ืœืœืช ืกืงืจื™ืคื˜ ื”ืžืืคืฉืจ ืœื”ื•ืจื™ื“ ืžืื’ืจื™ ืฉืคืช C ืงื™ื™ืžื™ื ื‘- GitHub ื•ืœื”ืฉืชืžืฉ ื‘ื”ื ืœื‘ื ื™ื™ืช ื”ืžื•ื“ืœ. ื“ื’ืžื™ื ืžื•ื›ื ื™ื ื–ืžื™ื ื™ื ื’ื, ื”ืžืืคืฉืจื™ื ืœืš ืœื”ืชื—ื™ืœ ืžื™ื“ ืœื‘ื“ื•ืง ืืช ื”ืงื•ื“.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”