{"id":20,"date":"2010-04-17T17:22:16","date_gmt":"2010-04-18T02:22:16","guid":{"rendered":"\/blog\/?p=20"},"modified":"2023-09-21T09:41:25","modified_gmt":"2023-09-21T00:41:25","slug":"openbsd-%ea%b0%9c%eb%b0%9c%ec%9e%90%ec%99%80-%ec%9d%b8%ed%84%b0%eb%b7%b0","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=20","title":{"rendered":"OpenBSD \uac1c\ubc1c\uc790\uc640 \uc778\ud130\ubdf0"},"content":{"rendered":"\n<P>OpenBSD \uac1c\ubc1c\uc790\uc778 Marc Espie\uc640\uc758 \uc778\ud130\ubdf0\uac00 O'Reilly Network\uc5d0<\/P>\n<P>\uc62c\ub77c\uc654\ub2e4.<\/P>\n<P><a class=\"con_link\" href=\"http:\/\/www.onlamp.com\/pub\/a\/bsd\/2004\/03\/18\/marc_espie.html\" target=\"_blank\" rel=\"noopener\">http:\/\/www.onlamp.com\/pub\/a\/bsd\/2004\/03\/18\/marc_espie.html<\/A><\/P>\n<P>&nbsp;<\/P>\n<P>----------<\/P>\n<P>&nbsp;<\/P>\n<P>\uc18c\uc2a4\ucf54\ub4dc \uac80\uc0ac\ub294 \ub05d\uc774 \uc5c6\ub294 \uacfc\uc815\uc774\ub2e4.<\/P>\n<P>* \uc5b4\ub5a4\uc774\uac00 \uc18c\ud504\ud2b8\uc6e8\uc5b4\uc5d0\uc11c \ubb38\uc81c\ub97c \ubc1c\uacac\ud55c\ub2e4.<\/P>\n<P>* \uc5b4\ub5a4\uc774\uac00 \ub098\uc058\uac8c \uc774\uc6a9\ud560 \uc218 \uc788\ub294\uc9c0 \uc5ec\ubd80\uc640 \uad00\uacc4\uc5c6\uc774 \ubc84\uadf8\ub97c \uc218\uc815\ud55c\ub2e4.<\/P>\n<P>* \uc5b4\ub5a4\uc774\uac00 \ubc84\uadf8 \uc6d0\uc778\uc744 \uc54c\ub9b0\ub2e4.&nbsp; (\ub300\ub2e4\uc218\uc758 \ubc84\uadf8\ub294 \uac1c\ubc1c\uc790\uac00 \ud2b9\uc815 API\ub97c<\/P>\n<P>&nbsp; &nbsp; \uc774\ud574\ud558\uc9c0 \ubabb\ud574\uc11c \ubc1c\uc0dd\ud55c \ubb38\uc81c\ub2e4.)<\/P>\n<P>* \uc5b4\ub5a4\uc774\uac00 \uc804\uccb4 \uc18c\uc2a4\ucf54\ub4dc\uc5d0\uc11c \ud574\ub2f9 \ubc84\uadf8\uac00 \ub610 \uc788\ub294\uc9c0 \uc0b4\ud3b4\ubcf8\ub2e4.<\/P>\n<P>* \uc5b4\ub5a4\uc774\uac00 \ubb38\uc11c\uc5d0 \uc774 \ubb38\uc81c\uc5d0 \ub300\ud55c \uacbd\uace0\ub97c \ucd94\uac00\ud560\uc9c0 \uc54c\uc544\ubcf8\ub2e4.<\/P>\n<P>* \uc5b4\ub5a4\uc774\uac00 \ucef4\ud30c\uc77c\ub7ec\uac00 \uc774 \ubb38\uc81c\ub97c \ubc1c\uacac\ud560 \uc218 \uc788\ub294\uc9c0 \uc54c\uc544\ubcf8\ub2e4.<\/P>\n<P>* \uc5b4\ub5a4\uc774\uac00 \uc18c\uc2a4\ucf54\ub4dc\ub97c \uc0c8\ub85c\uc6b4 \uac80\uc0ac\uae30\uc5d0 \uc801\uc6a9\ud558\uc5ec, \uace0\uccd0\uc57c \ud560 \ubb38\uc81c\ub97c<\/P>\n<P>&nbsp; &nbsp; \ucc3e\uace0, \uace0\uce5c\ub2e4.<\/P>\n<P>* \uc5b4\ub5a4\uc774\ub294 \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc798\ubabb \uc124\uacc4\ub418\uc5c8\ub294\uc9c0 \uc5ec\ubd80\uc640 \ubc84\uadf8\uac00 \ub35c \ubc1c\uc0dd\ud560<\/P>\n<P>&nbsp; &nbsp; \uc88b\uc740 \uc778\ud130\ud398\uc774\uc2a4\uac00 \uac00\ub2a5\ud55c\uc9c0 \uc54c\uc544\ubcf8\ub2e4.<\/P>\n<P>&nbsp;<\/P>\n<P>----------<\/P>\n<P>&nbsp;<\/P>\n<P>static bounds checker (gcc \ud655\uc7a5)<\/P>\n<P>&nbsp;<\/P>\n<P>\ud2b9\uc815 \ud568\uc218\uc758 \ud30c\ub77c\ubbf8\ud130\ub97c \uc5f0\uad00\uc2dc\ucf1c\uc11c, \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\ub97c \uac80\uc0ac\ud560 \uc218 \uc788\ub2e4.<\/P>\n<P>&nbsp;<\/P>\n<P><FONT size=1 face=verdana>char buffer[BUFSIZE];<br \/>...<br \/>read(fd, buffer, BUFSIZE * 2);<\/FONT><\/P>\n<P>&nbsp;<\/P>\n<P>\ucc38\uace0: <a class=\"con_link\" href=\"http:\/\/marc.theaimsgroup.com\/?l=openbsd-cvs&amp;m=105665219927976&amp;w=2\" target=\"_blank\" rel=\"noopener\">http:\/\/marc.theaimsgroup.com\/?l=openbsd-cvs&amp;m=105665219927976&amp;w=2<\/A><\/P>\n<P>&nbsp;<\/P>\n<P>----------<\/P>\n<P>&nbsp;<\/P>\n<P>IBM\uc758 Hiroaki Etoh\uac00 StackGuard\ub97c \uac1c\ub7c9\ud558\uc5ec ProPolice\ub77c\ub294 gcc<\/P>\n<P>\ud655\uc7a5\uc744 \ub9cc\ub4e4\uc5c8\ub2e4.&nbsp; ProPolice\ub294 stack\uc5d0 \ud560\ub2f9\ud55c buffer \uc8fc\uc704\uc5d0 \"canary\"\ub97c<\/P>\n<P>\ucd94\uac00\ud558\uace0, \uc790\uc8fc \uac12\uc774 \ubcc0\uacbd\ub418\uc5c8\ub294\uc9c0 \uac80\uc0ac\ud55c\ub2e4.&nbsp; \ubcc0\uacbd\ub418\uc5c8\ub2e4\uba74 \ud504\ub85c\uadf8\ub7a8\uc744<\/P>\n<P>\uc870\uae30\uc5d0 \uc885\ub8cc\ud55c\ub2e4.&nbsp; OpenBSD\uc5d0 ProPolice\ub97c \uc801\uc6a9\ud558\uba74\uc11c \ub9e4\uc6b0 \ub9ce\uc740 \ubc84\uadf8\ub97c<\/P>\n<P>\ubc1c\uacac\ud558\uc600\ub2e4.<\/P>\n<P>&nbsp;<\/P>\n<P>(\"canary\"\ub294 \uc608\uc804 \uad11\uc0b0\uc5d0\uc11c \uc0c8\uc7a5\uc744 \ub4e4\uace0 \ub0b4\ub824\uac00\uba74\uc11c \uc5b4\ub290\uc704\uce58\uae4c\uc9c0 \uc0c8\uac00<\/P>\n<P>\uc6b0\ub294\uc9c0\ub97c \ubcf4\uace0 \uacf5\uae30\ub97c \uac80\uc0ac\ud55c \uc810\uc5d0\uc11c \ub530\uc654\ub2e4.)<\/P>\n<P>&nbsp;<\/P>\n<P>----------<\/P>\n<P>&nbsp;<\/P>\n<P>W^X\ub294 \uba54\ubaa8\ub9ac \uc601\uc5ed\uc774 \uc4f0\uae30 \uac00\ub2a5\ud558\uba74\uc11c \ub3d9\uc2dc\uc5d0 \uc2e4\ud589\uac00\ub2a5\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud55c\ub2e4.<\/P>\n<P>* stack\uc740 \ubcf4\ud1b5 \uc2e4\ud589\uac00\ub2a5\ud558\uc9c0 \uc54a\ub2e4.<\/P>\n<P>* \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucc38\uc870\ud558\ub294 \ucf54\ub4dc \uc601\uc5ed\uc778 relocation\uc740 ld.so\ub9cc<\/P>\n<P>&nbsp; &nbsp; \uc4f0\uae30\uac00\ub2a5\ud558\uba70, \uc791\uc5c5\uc744 \ub9c8\uce5c\ud6c4 \uc2e4\ud589\uac00\ub2a5 \uc4f0\uae30\ubd88\uac00\ub85c \ubc14\ub010\ub2e4.&nbsp; \uadf8\ub798\uc11c<\/P>\n<P>&nbsp; &nbsp; \uc77c\ubc18 \ud504\ub85c\uadf8\ub7a8 \uc601\uc5ed\uacfc relocation \uc601\uc5ed\uc744 \ubd84\ub9ac\ud574\uc57c \ud55c\ub2e4 (i386\uc774<\/P>\n<P>&nbsp; &nbsp; a.out\uc5d0\uc11c ELF\ub85c \ubcc0\uacbd\ud55c \uc774\uc720).<\/P>\n<P>&nbsp;<\/P>\n<P>----------<\/P>\n<P>\n","protected":false},"excerpt":{"rendered":"<p>OpenBSD \uac1c\ubc1c\uc790\uc778 Marc Espie\uc640\uc758 \uc778\ud130\ubdf0\uac00 O&#8217;Reilly Network\uc5d0 \uc62c\ub77c\uc654\ub2e4. http:\/\/www.onlamp.com\/pub\/a\/bsd\/2004\/03\/18\/marc_espie.html &nbsp; &#8212;&#8212;&#8212;- &nbsp; \uc18c\uc2a4\ucf54\ub4dc \uac80\uc0ac\ub294 \ub05d\uc774 \uc5c6\ub294 \uacfc\uc815\uc774\ub2e4. * \uc5b4\ub5a4\uc774\uac00 \uc18c\ud504\ud2b8\uc6e8\uc5b4\uc5d0\uc11c \ubb38\uc81c\ub97c \ubc1c\uacac\ud55c\ub2e4. * \uc5b4\ub5a4\uc774\uac00 \ub098\uc058\uac8c \uc774\uc6a9\ud560 \uc218 \uc788\ub294\uc9c0 \uc5ec\ubd80\uc640 \uad00\uacc4\uc5c6\uc774 \ubc84\uadf8\ub97c \uc218\uc815\ud55c\ub2e4. * \uc5b4\ub5a4\uc774\uac00 \ubc84\uadf8 \uc6d0\uc778\uc744 \uc54c\ub9b0\ub2e4.&nbsp; (\ub300\ub2e4\uc218\uc758 \ubc84\uadf8\ub294 \uac1c\ubc1c\uc790\uac00 \ud2b9\uc815 API\ub97c &nbsp; &nbsp; \uc774\ud574\ud558\uc9c0 \ubabb\ud574\uc11c \ubc1c\uc0dd\ud55c \ubb38\uc81c\ub2e4.) * \uc5b4\ub5a4\uc774\uac00 \uc804\uccb4 \uc18c\uc2a4\ucf54\ub4dc\uc5d0\uc11c \ud574\ub2f9 \ubc84\uadf8\uac00 \ub610 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[39],"tags":[],"class_list":["post-20","post","type-post","status-publish","format-standard","hentry","category-os_linux_unix_macos"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=20"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/20\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}