Intel์ ๋๋์ ๊ธฐ์กด ์ฝ๋์ ๋ํด ํ๋ จ๋ ๊ธฐ๊ณ ํ์ต ์์คํ ์ ์ฌ์ฉํ์ฌ ์์ค ์ฝ๋์ ์ค๋ฅ์ ์ด์์ ์๋ณํ ์ ์๋ ControlFlag 1.0 ๋๊ตฌ์ ์ฒซ ๋ฒ์งธ ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐํํ์ต๋๋ค. ๊ธฐ์กด ์ ์ ๋ถ์๊ธฐ์ ๋ฌ๋ฆฌ ControlFlag๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ต์ ์ ์ ๊ณตํ๊ธฐ ์ด๋ ค์ด ๊ธฐ์ฑ ๊ท์น์ ์ ์ฉํ์ง ์์ง๋ง ์๋ง์ ๊ธฐ์กด ํ๋ก์ ํธ์์ ๋ค์ํ ์ธ์ด ๊ตฌ์ฑ ์ฌ์ฉ์ ๋ํ ํต๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ControlFlag ์ฝ๋๋ C++๋ก ์์ฑ๋์์ผ๋ฉฐ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ์คํ ์์ค๋ก ์ ๊ณต๋ฉ๋๋ค.
์ด ์์คํ ์ GitHub ๋ฐ ์ ์ฌํ ๊ณต๊ฐ ์ ์ฅ์์ ๊ฒ์๋ ์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์กด ์ฝ๋ ๋ฐฐ์ด์ ๋ํ ํต๊ณ ๋ชจ๋ธ์ ๊ตฌ์ถํ์ฌ ํ์ต๋ฉ๋๋ค. ํ๋ จ ๋จ๊ณ์์ ์์คํ ์ ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ํจํด์ ๊ฒฐ์ ํ๊ณ ํ๋ก๊ทธ๋จ์ ์ฝ๋ ์คํ ํ๋ฆ์ ๋ฐ์ํ์ฌ ์ด๋ฌํ ํจํด ๊ฐ์ ์ฐ๊ฒฐ์ ๋ํ ๊ตฌ๋ฌธ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ๋ถ์๋ ๋ชจ๋ ์์ค ์ฝ๋์ ๊ฐ๋ฐ ๊ฒฝํ์ ๊ฒฐํฉํ ์ฐธ์กฐ ์์ฌ๊ฒฐ์ ํธ๋ฆฌ๊ฐ ํ์ฑ๋ฉ๋๋ค. ๊ฒํ ์ค์ธ ์ฝ๋๋ ์ฐธ์กฐ ๊ฒฐ์ ํธ๋ฆฌ์ ๋น๊ตํ์ฌ ํ์ธ๋๋ ํจํด์ ์๋ณํ๋ ์ ์ฌํ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์นฉ๋๋ค. ์ธ์ ํ ๊ฐ์ง์์ ํฐ ๋ถ์ผ์น๋ ํ์ธ ์ค์ธ ํจํด์ ์ด์์ด ์์์ ๋ํ๋ ๋๋ค.
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" ํํ์์์ ์ด์์ ๊ฐ์งํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, "if (x = 7) y = x;" ์ฝ๋ ์กฐ๊ฐ์ ๋ถ์ํ ๋ ์์คํ
์ "if" ๋ฌธ์ด ์ผ๋ฐ์ ์ผ๋ก ์ซ์ ๊ฐ์ ๋น๊ตํ๊ธฐ ์ํด "๋ณ์ == ์ซ์" ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ค๊ณ ํ๋จํ๋ฏ๋ก "if" ํํ์์ "๋ณ์ = ์ซ์"๊ฐ ์คํ๋ก ์ธํด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ํคํธ์๋ GitHub์์ ๊ธฐ์กด C ์ธ์ด ์ ์ฅ์๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๊ตฌ์ถํ ์ ์๋ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ฆ์ ์ฝ๋ ํ์ธ์ ์์ํ ์ ์๋ ๊ธฐ์ฑ ๋ชจ๋ธ๋ ์ ๊ณต๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru