ÇØ Å·ÀÇ ÃÖÁ¾ ¸ñÀûÀº ½Ã½ºÅÛ°ú ÇÁ·Î±×·¥À» º¯°æÇؼ ÇØÄ¿°¡ ¿øÇÏ´Â Á¤º¸¿Í °á°ú¹°À» ¾ò´Â °ÍÀÌ´Ù. ¿©±â¿¡ Á÷Á¢ÀûÀ¸·Î ÀÌ¿ëµÇ´Â ¸®¹ö½º ¿£Áö´Ï¾î¸µÀº ÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ ÀüºÎ ¹Ù²ã ÀǵµÇÏÁö ¾ÊÀº ¹æ½ÄÀ¸·Î µ¿ÀÛÇÏ°Ô ÇÒ ¼ö ÀÖ´Â °·ÂÇÑ ±â¼úÀÌ´Ù. ÇÏÁö¸¸ ´ëºÎºÐÀÇ »ç¶÷µéÀÌ ÈçÇÏ°Ô Á¢ÇÏÁö ¸øÇÏ´Â ºÐ¾ßÀÌ°í º¸¾È°ú °ü·ÃµÈ °³¹ßÀڵ鵵 ¾î·Æ´Ù´Â ÀÌÀ¯·Î ³ª¿Í´Â »ó°ü¾ø´Â ºÐ¾ß·Î Ä¡ºÎÇÏ·Á´Â °æÇâÀÌ ÀÖ´Ù. ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ̶ó´Â ºÐ¾ß°¡ À§Ç輺°ú ´õºÒ¾î °·ÂÇÑ Æı«·ÂÀ» °¡Áö°í ÀÖ´Â ºÐ¾ßÀÌÁö¸¸ ¹Ý´ë·Î º¸¾ÈÀ» À¯ÁöÇÒ ¼ö ÀÖ´Â °·ÂÇÑ µµ±¸·Î »ç¿ëµÉ ¼ö µµ ÀÖ´Ù. ÀÚ½ÅÀÇ ÇÁ·Î±×·¥°ú ½Ã½ºÅÛÀ» ÁöÅ°±â À§Çؼ ÀÌ ºÐ¾ß¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÏÁö ¾ÊÀ»±î? ÇÏÁö¸¸ ¸·»ó º¸¾ÈÀ̳ª ÇØÅ·¿¡ ´ëÇÑ °øºÎ¸¦ ½ÃÀÛÇÏ·Á Çصµ ¾îµð¼ºÎÅÍ ¼ÕÀ» ´ë¾ß ÇÏ´ÂÁö ¸ð¸£´Â »óȲ¿¡ ³õÀÌ°Ô ..
ÇØ Å·ÀÇ ÃÖÁ¾ ¸ñÀûÀº ½Ã½ºÅÛ°ú ÇÁ·Î±×·¥À» º¯°æÇؼ ÇØÄ¿°¡ ¿øÇÏ´Â Á¤º¸¿Í °á°ú¹°À» ¾ò´Â °ÍÀÌ´Ù. ¿©±â¿¡ Á÷Á¢ÀûÀ¸·Î ÀÌ¿ëµÇ´Â ¸®¹ö½º ¿£Áö´Ï¾î¸µÀº ÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ ÀüºÎ ¹Ù²ã ÀǵµÇÏÁö ¾ÊÀº ¹æ½ÄÀ¸·Î µ¿ÀÛÇÏ°Ô ÇÒ ¼ö ÀÖ´Â °·ÂÇÑ ±â¼úÀÌ´Ù. ÇÏÁö¸¸ ´ëºÎºÐÀÇ »ç¶÷µéÀÌ ÈçÇÏ°Ô Á¢ÇÏÁö ¸øÇÏ´Â ºÐ¾ßÀÌ°í º¸¾È°ú °ü·ÃµÈ °³¹ßÀڵ鵵 ¾î·Æ´Ù´Â ÀÌÀ¯·Î ³ª¿Í´Â »ó°ü¾ø´Â ºÐ¾ß·Î Ä¡ºÎÇÏ·Á´Â °æÇâÀÌ ÀÖ´Ù. ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ̶ó´Â ºÐ¾ß°¡ À§Ç輺°ú ´õºÒ¾î °·ÂÇÑ Æı«·ÂÀ» °¡Áö°í ÀÖ´Â ºÐ¾ßÀÌÁö¸¸ ¹Ý´ë·Î º¸¾ÈÀ» À¯ÁöÇÒ ¼ö ÀÖ´Â °·ÂÇÑ µµ±¸·Î »ç¿ëµÉ ¼ö µµ ÀÖ´Ù. ÀÚ½ÅÀÇ ÇÁ·Î±×·¥°ú ½Ã½ºÅÛÀ» ÁöÅ°±â À§Çؼ ÀÌ ºÐ¾ß¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÏÁö ¾ÊÀ»±î? ÇÏÁö¸¸ ¸·»ó º¸¾ÈÀ̳ª ÇØÅ·¿¡ ´ëÇÑ °øºÎ¸¦ ½ÃÀÛÇÏ·Á Çصµ ¾îµð¼ºÎÅÍ ¼ÕÀ» ´ë¾ß ÇÏ´ÂÁö ¸ð¸£´Â »óȲ¿¡ ³õÀÌ°Ô µÇ´Â °ÍÀÌ Çö½ÇÀÌ´Ù. ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» ´Ù·ç´Â ¼ÀûÀº ¸¹Áö ¾ÊÀ¸¸ç, ±×³ª¸¶ Á¸ÀçÇÏ´Â ÇØÅ· ¼Àûµéµµ ´ëºÎºÐ À¥À̳ª ³×Æ®¿öÅ© ȯ°æ¸¸À» ´Ù·ç°í ÀÖ´Ù. ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ̶ó´Â ºÐ¾ß°¡ °ü½ÉÀ» °¡Áö°í ÀÖ´Â ¼Ò¼öÀÇ ¸¶´Ï¾Æ³ª ÇØÄ¿µé¿¡ ÀÇÇؼ ¹ßÀüÇÏ°í ÀÖ°í º»ÁúÀûÀÎ Æó¼â¼º ¶§¹®¿¡ ´õ¿í Á¢Çϱ⠾î·Á¿î °ÍÀÌ »ç½ÇÀÌ´Ù. ÀڷḦ ãÀ¸·Á¸é ¿Ü±¹ ¼ÀûÀ̳ª ÇØ¿Ü ÀÎÅÍ³Ý »çÀÌÆ®¸¦ Èûµé°Ô ã¾Æ¾ß¸¸ ÇÏ°í ¿©±âÀú±â Èð¾îÁ® ÀÖ´Â Á¤º¸ ¼Ó¿¡¼ Á¦´ë·Î µÈ Áö½ÄÀ» ¾ò±âµµ ½±Áö ¾Ê´Ù. ±¹³»¿Í ÇØ¿ÜÀÇ ÇØÅ· ±â¼ú °ÝÂ÷ÀÇ ÁÖ¿äÇÑ ¿øÀÎ Áß¿¡ Çϳª°¡ ÀÌ ºÐ¾ß¿¡ ´ëÇÑ Á¤º¸¿Í °øÀ¯°¡ ºÎÁ·Çϱ⠶§¹®ÀÌ¶ó º¼ ¼ö ÀÖ´Ù.
Àº ÀÌÁ¦ ¸· ÀÔ¹®ÇÏ·Á´Â °³¹ßÀÚºÎÅÍ ÇÁ·Î±×·¡¹Ö°ú ½Ã½ºÅÛ¿¡ ¾î´À Á¤µµ ±â¹Ý Áö½ÄÀ» °¡Áö°í ÀÖ´Â °í±Þ °³¹ßÀÚ¿¡ À̸£±â±îÁö ÇØÅ·°ú º¸¾ÈÀ̶ó´Â ºÐ¾ß¿¡ ½±°Ô Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºµÈ Ã¥ÀÌ´Ù. º¸¾È°ú ÇØÅ·ÀÇ °üÁ¡¿¡¼ ½Ã½ºÅÛ°ú ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¢±Ù ¹æ¹ýÀ» ¼³¸íÇÏ°í ÀÌ·¯ÇÑ Áö½ÄµéÀ» ¾î¶»°Ô È°¿ëÇÒ ¼ö Àִ°¡¸¦ ´Ù·ç°í ÀÖ´Ù. ´Ü¼øÇÑ ¹è°æ Áö½ÄÀ¸·Î¼ÀÇ ÀÌ·ÐÀÌ ¾Æ´Ï¶ó ½ÇÁ¦ ÇÁ·Î±×·¥ ±¸Á¶ÀÇ º¯°æÀ» ÅëÇؼ Àû¿ëÀÌ °¡´ÉÇÑ ÇØÅ·°ú º¸¾È ±â¼úµéÀ» ´ã¾Æ³ÂÀ¸¸ç, ½Ã½ºÅÛÀÇ ±¸Á¶ÀûÀÎ ³»¿ëÀ» ÀÌÇØÇÏ°í À̵éÀÌ ¾î¶² Ãë¾àÁ¡À» °¡Áö°Ô µÇ´ÂÁöµµ ¹è¿ï ¼ö ÀÖ´Ù.
[éÅͺ° ¿ä¾à]
1Àå | À©µµ¿ì, ¸Þ½ÃÁö(Window, Message)
À©µµ¿ì´Â »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀ» ¹Þ°í ó¸®ÇÑ °á°ú¸¦ º¸¿©ÁÖ´Â »ç¿ëÀÚ¿Í °¡Àå Á¢Á¡¿¡¼ ¼öÇàµÇ´Â À©µµ¿ìÁî ¿î¿µÃ¼Á¦ÀÇ ÇÙ½ÉÀûÀÎ GUI(Graphic User Interface) ±¸¼º ¿ä¼ÒÀÌ´Ù. ¶ÇÇÑ ¸Þ½ÃÁö´Â À©µµ¿ìÀÇ µ¿ÀÛÀ» Á¦¾îÇÏ´Â µ¥ »ç¿ëµÇ´Â À©µµ¿ìÁî ¿î¿µÃ¼Á¦ÀÇ ±âº» °³³äÀ¸·Î, À©µµ¿ìÀÇ ÇüÅÂ¿Í ¸Þ½ÃÁöÀÇ È帧À» ÀÌÇØÇؾ߸¸ À©µµ¿ìÁî ¿î¿µÃ¼Á¦ÀÇ ±¸Á¶¿Í ¿ø¸®¸¦ º¸´Ù ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Ù.
2Àå | ÇÁ·Î¼¼½º, ½º·¹µå(Process, Thread)
ÇÁ·Î¼¼½º¿Í ½º·¹µå´Â ÇÁ·Î±×·¥ ½ÇÇà¿¡ ÀÖ¾î °¡Àå ±âº»ÀûÀÎ ´ÜÀ§ÀÌ´Ù. ÇÁ·Î¼¼½º´Â ÇϳªÀÇ ÀÀ¿ë ÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â ´ÜÀ§ÀÌ¸ç ½ÇÁ¦ ÀÛ¾÷À» ¼öÇàÇÏ´Â ½º·¹µåµé·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ¿î¿µÃ¼Á¦´Â ÇÁ·Î¼¼½º¿Í ½º·¹µå·Î ±¸¼ºµÈ ÇÁ·Î±×·¥µéÀ» È¿À²ÀûÀ¸·Î ±¸µ¿Çϱâ À§ÇÏ¿© ¿©·¯ °¡Áö ±â¹ýÀ» °¡Áö°í °ü¸®ÇÏ°Ô µÈ´Ù. ÄÄÇ»Æà ȯ°æÀÌ ²ÙÁØÈ÷ ¹ßÀüÇÏ¸é¼ »ç¿ëÀÚ´Â ´õ´õ¿í ¸¹Àº ±â´ÉÀ» ¿ä±¸ÇÏ°Ô µÇ´Âµ¥, ÇÁ·Î¼¼½º¿Í ½º·¹µå´Â ½Ã½ºÅÛÀÇ ³»ºÎÀûÀÎ °ü¸®»Ó ¾Æ´Ï¶ó ÀÌ·¯ÇÑ »ç¿ëÀÚ ¿ä±¸¿¡ µû¶ó Á¦°øµÇ´Â ±â´É¿¡ À־µ Áß¿äÇÑ ¿ªÇÒÀ» ¼öÇàÇÏ°í ÀÖ´Ù.
3Àå | Ä¿³Î °´Ã¼(Kernel Object)
À©µµ¿ìÁî ¿î¿µÃ¼Á¦´Â ½Ã½ºÅÛ ³»ºÎÀÇ ÀÚ¿øµéÀ» È¿°úÀûÀ¸·Î Á¢±ÙÇÏ°í »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¿©·¯ Á¾·ùÀÇ °´Ã¼µéÀ» Á¦°øÇÑ´Ù. ¿î¿µÃ¼Á¦¸¦ ÅëÇؼ ÇÁ·Î±×·¥ÀÌ Á¦¾îÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½º, ½º·¹µå, Àâ(job), ÆÄÀÏ, µ¿±âÈ °´Ã¼ µî°ú °°ÀÌ ½Ã½ºÅÛÀ» ÅëÇؼ Á¦°øµÇ°í Á¦¾îµÇ´Â ¸ðµç °´Ã¼µéÀ» Ä¿³Î °´Ã¼¶ó°í ºÎ¸¥´Ù. ÇÁ·Î±×·¥ÀÌ ¼öÇàµÇ¸é¼ »ç¿ëÇÏ´Â ½Ã½ºÅÛÀÇ ÀÚ¿øÀÎ Ä¿³Î °´Ã¼¸¦ ÅëÇؼ ÇÁ·Î±×·¥ÀÇ µ¿ÀÛ ¹æ½Ä¿¡ Á¢±ÙÇÑ´Ù¸é ÇÁ·Î±×·¥ÀÇ ±¸Á¶¿Í ¿ø¸®¸¦ ½±°Ô ÆľÇÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
4Àå | µð¹ö±ë(Debugging)
ÇÁ·Î±×·¡¸Ó¿¡°Ô ÀÖ¾î¼ ÇÁ·Î±×·¡¹Ö¸¸Å Áß¿äÇÑ °ÍÀÌ µð¹ö±ëÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥À» °³¹ßÇϰųª ¹èÆ÷µÈ ÇÁ·Î±×·¥¿¡¼ ¹ö±×°¡ ¹ß»ýµÇ¾úÀ» °æ¿ì¿¡ ÀÌ ¹ö±×¸¦ ¼öÁ¤Çϱâ À§Çؼ µð¹ö±ëÀ» ¼öÇàÇÏ°Ô µÈ´Ù. µð¹ö±ëÀ» ¼öÇàÇϱâ À§Çؼ´Â ÇÁ·Î±×·¥ÀÇ ±¸Á¶¿Í ÇÔ²² ½Ã½ºÅÛÀÌ Á¦°øÇÏ´Â ¸¹Àº ±â´ÉµéÀ» ÀÌÇØÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. ¹ö±×¸¦ ¼öÁ¤ÇÏ´Â µð¹ö±ë °úÁ¤Àº Á¤»óÀûÀÎ ÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ ÆľÇÇÒ ¼ö ÀÖ´Â Áß¿äÇÑ ¼ö´ÜÀ̱⠶§¹®¿¡, ÇØÅ· ±â¹ý°ú ±× º¸¾È ±â¼úÀ» °³¹ßÇÏ´Â µ¥ ÀÌ¿ëµÉ ¼öµµ ÀÖ´Â °·ÂÇÑ ¹æ¹ýÀÌ´Ù.
5Àå | ¾î¼Àºí¸®(Assembly) ¾ð¾î
¿©·¯ºÐÀÌ Á÷Á¢ °³¹ßÇÏÁö ¾Ê´Â ÇÁ·Î±×·¥(Program)ÀÇ µ¿ÀÛ ¿ø¸®¸¦ ÀÌÇØÇÏ°í ½Í´Ù¸é, ¹Ýµå½Ã ¿ª¾î¼Àºí(Disassemble)µÈ Äڵ带 ÀÌÇØÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ, ¿©·¯ºÐÀÌ ¸¸µç ÇÁ·Î±×·¥ÀÌ ÄÄÇ»ÅÍ¿Í ¾î¶°ÇÑ »óÈ£ ÀÛ¿ëÀ» ÅëÇÏ¿© µ¿ÀÛÀ» ÇÏ´ÂÁö Á» ´õ ÀÚ¼¼È÷ ¾Ë°íÀÚ ÇÑ´Ù¸é ¾î¼Àºí¸®(Assembly) ¾ð¾î¸¦ ¾î´À Á¤µµ ¾Ë¾Æ¾ß ÇÑ´Ù. ¿À´Ã³¯ ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¸ÓµéÀº C, C++, µ¨ÆÄÀÌ µîÀÇ °í±Þ ¾ð¾î¿¡ Àͼ÷ÇØÁ® ÀÖ´Ù. ´õ¿íÀÌ ÃÖ±Ù¿¡´Â ÀÚ½ÅÀÌ ÇÁ·Î±×·¡¹ÖÇÑ ÄÚµå¿Í ÇÁ·Î¼¼¼(Processor)¿ÍÀÇ °ü°è¸¦ µûÁö°Å³ª ÇÁ·Î±×·¥ÀÌ ¾î¶² ¹æ½ÄÀ¸·Î ½ÇÇàµÇ´ÂÁö ÀÏÀÏÀÌ ½Å°æÀ» ¾²¸ç ÇÁ·Î±×·¡¹ÖÇÏ´Â °³¹ßÀÚ´Â °ÅÀÇ ¾ø´Ù°í Çصµ °ú¾ðÀÌ ¾Æ´Ï´Ù. ÀÌ°ÍÀº °ú°Å ¾î¼Àºí¸® ¾ð¾î·Î ÇÁ·Î±×·¥À» ÇÏ¸é¼ °í¹ÎÇß´ø ¸¹Àº ºÎºÐÀ» °í±Þ ¾ð¾îÀÇ ÄÄÆÄÀÏ·¯(Compiler)°¡ ´ë½ÅÇØ Áֱ⠶§¹®ÀÌ´Ù. °í±Þ ¾ð¾îµéÀÌ ¹ß´ÞÇÏ¸é¼ ±âÁ¸¿¡ °í¹ÎÇØ¾ß Çß´ø ºÎºÐÀ» ´Ù¸¥ °÷¿¡ ÅõÀÚÇÒ ¼ö ÀÖ°Ô µÇ¾úÀ¸¸ç, ±× ´öºÐ¿¡ º¸´Ù ¿ì¼öÇÑ ÇÁ·Î±×·¥ÀÌ ³ª¿Â °Íµµ »ç½ÇÀÌ´Ù. ÇÏÁö¸¸, ÀÌ Ã¥À» Àаí ÀÖ´Â µ¶ÀÚ¶ó¸é °í±Þ ¾ð¾îÀÇ Æ² ¼Ó¿¡¼ ÇÁ·Î±×·¥À» Çϱ⠺¸´Ù´Â, ¾î¼Àºí¸®¾î¸¦ »ç¿ëÇÏ¿© ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ ÇÁ·Î±×·¥ÀÌ ÄÄÇ»ÅÍ¿Í ¾î¶°ÇÑ °úÁ¤À» ÅëÇؼ ½ÇÇàµÇ´ÂÁö¸¦ µûÁö°í, ½Ã½ºÅÛÀÇ ³»ºÎÀûÀÎ ºÎºÐ¿¡ Á¢±ÙÇÏ¿© ÀÌÇØÇϱ⸦ ¹Ù¶õ´Ù. ÇÁ·Î±×·¥À» ºÐ¼®Çϱâ À§Çؼ´Â _ ƯÈ÷, ¾Ç¼ºÄÚµå¿Í ÇØÅ· µµ±¸¸¦ ºÐ¼®Çϱâ À§Çؼ´Â _ °¡Àå Áß¿äÇÑ °ÍÀÌ ÇÁ·Î±×·¥ÀÇ µ¿ÀÛ ¹æ½ÄÀ» ÀÌÇØÇÏ´Â °ÍÀÌ´Ù. À̸¦ À§ÇØ µð¹ö°Å³ª ±âŸ ÅøÀ» ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» ºÐ¼®ÇÏ°Ô µÇ´Âµ¥, À̶§ ¿ì¸®°¡ È®ÀÎÇÒ ¼ö ÀÖ´Â °ÍÀº ¿ª¾î¼Àºí¸µµÈ ¼Ò½º ÄÚµå¹Û¿¡ ¾ø´Ù. ÀÌ·¯ÇÑ ¼Ò½º Äڵ带 ÀÌÇØÇÏ·Á¸é ¹Ýµå½Ã ¾î¼Àºí¸® ¾ð¾î¸¦ ÀÌÇØÇÏ°í ÀÖ¾î¾ß Çϸç, À̹ø Àå¿¡¼´Â ¾î¼Àºí¸® ¾ð¾îÀÇ ±âº»ÀûÀÎ ³»¿ëÀ» ¼³¸íÇÏ°íÀÚ ÇÑ´Ù.
6Àå | ÇØÅ· ±â¹ý(Hacking Techniques)
ÇÁ·Î±×·¥À» ÇØÅ·Çϱâ À§Çؼ ´Ù¾çÇÑ ±â¹ýµéÀÌ »ç¿ëµÈ´Ù. ƯÁ¤ÇÑ ÇÁ·Î±×·¥¸¸À» ´ë»óÀ¸·Î µ¿ÀÛÇÏ´Â ÇØÅ· ±â¼úºÎÅÍ ÀÓÀÇÀÇ ¸ðµç ÇÁ·Î±×·¥µéÀ» ´ë»óÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÇØÅ· ±â¼ú±îÁö ´ë»ó¿¡ µû¶ó¼ ´Ù¾çÇÑ ÇØÅ· ¹æ¹ýÀÌ Á¸ÀçÇÑ´Ù. ÃÖ±ÙÀÇ ÇØÅ· À̽´µéÀ» º¸¸é ÇÁ·Î±×·¥ ÀÚüÀÇ ¹ö±×(Bug) ¶Ç´Â ½Ã½ºÅÛÀÇ ¹ö±×µéÀÌ ÇØÅ·ÀÇ Á÷Á¢ÀûÀÎ ¿øÀÎÀÌ µÇ´Â °æ¿ì°¡ ¸¹´Ù. ÇØÅ· ±â¹ýµµ À¯ÇàÀ» Ÿ´Â °æ¿ì°¡ ¸¹ÀÌ ÀÖ´Ù. »õ·Ó°í °·ÂÇÑ ±â¹ýÀÌ µîÀåÇÏ°Ô µÇ¸é ±× ±â¹ýÀÌ À¯Çàó·³ ÆÛÁö´Â °æÇâÀÌ ÀÖ´Ù. Áö±Ýµµ »õ·Î¿î ÇØÅ· ±â¹ýµéÀº ³ª¿À°í ÀÖÀ¸¸ç ±âÁ¸ÀÇ ÇØÅ· ±â¹ý°ú °áÇÕÇؼ °è¼Ó ¹ßÀüÇÏ°í Àֱ⠶§¹®¿¡ ¸Å¹ø »õ·Î¿î ±â¹ýµéÀ» ¸ðµÎ ½ÀµæÇÏ´Â °ÍÀº ½¬¿î ÀÏÀÌ ¾Æ´Ï´Ù. ½Ã°£ÀÌ È带¼ö·Ï ÇØÅ· ±â¹ý°ú º¸¾È ±â¼ú »çÀÌÀÇ Â÷ÀÌ´Â Á¡Á¡ ÁÙ¾îµé°í ÀÖ´Ù. ´Ù½Ã ¸»Çؼ, ÇØÅ· ±â¹ýµéÀÌ º¸¾È ±â¼ú¿¡ ±×´ë·Î È°¿ëÀÌ µÇ°í, ¹Ý´ë·Î º¸¾È ±â¼úµéÀÌ ±×´ë·Î ÇØÅ· ±â¹ý¿¡ È°¿ëµÇ°í ÀÖ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ´ëºÎºÐÀÇ ÇØÅ· ±â¹ýµéÀÌ »óȲ¿¡ µû¶ó¼ ´Ù¾çÇÏ°Ô ÀÀ¿ëµÇ°í È®ÀåµÇ±â ¶§¹®¿¡ ±× ±â´ÉÀ» ¸íÈ®ÇÏ°Ô ±¸ºÐÇÏ´Â °ÍÀº Àǹ̰¡ ¾øÀ» ¼öµµ ÀÖÁö¸¸, ¿©±â¼´Â ÇØÅ· ±â¹ýµéÀÇ È帧À» ÆľÇÇÒ ¼ö ÀÖµµ·Ï ¸î °¡Áö ±âº»ÀûÀÎ ºÎºÐÀ» ¼Ò°³ÇÏ·Á°í ÇÑ´Ù. ÀÌ·¯ÇÑ ±â¹ýµéÀº ÇÁ·Î±×·¥À» º¸È£Çϱâ À§ÇÑ º¸¾È ±â¼úÀ» ÀÍÈ÷´Â µ¥µµ ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
7Àå | DLL ÀÎÁ§¼Ç(DLL Injection)
´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ÈÄÅ·À̳ª ºÐ¼®À» ÁøÇàÇϱâ À§Çؼ´Â ÀÏ´Ü ÇØ´ç ÇÁ·Î¼¼½ºÀÇ ¸Þ¸ð¸® ¿µ¿ª¿¡ Á¢±ÙÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ Á¢±ÙÀ» À§ÇÏ¿© ´Ù¾çÇÑ ±â¹ýµéÀÌ Á¸ÀçÇÏÁö¸¸ °¡Àå ³Î¸® ¾²ÀÌ´Â ¹æ¹ý Áß Çϳª´Â ¹Ù·Î ´ë»ó ÇÁ·Î¼¼½º¿¡ DLL ÆÄÀÏÀ» »ðÀÔÇÏ´Â °ÍÀÌ´Ù. ÀÓÀÇÀÇ DLL ÆÄÀÏÀ» ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ »ðÀÔÇÏ´Â °ÍÀ» DLL ÀÎÁ§¼Ç(DLL Injection)À̶ó°í ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ÇÁ·Î¼¼½º´Â ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â DLL ÆÄÀÏÀ» ÇÊ¿ä¿¡ µû¶ó¼ ·ÎµåÇؼ »ç¿ëÇÑ´Ù. ÀÏ¹Ý ÇÁ·Î¼¼½º¿¡¼ DLL ÆÄÀÏÀ» ·ÎµåÇÏ´Â ¹æ¹ýÀ» ¾à°£ ÀÀ¿ëÇÏ¸é ´Ù¸¥ ÇÁ·Î¼¼½º¿¡µµ °°Àº ¹æ½ÄÀ¸·Î ¿øÇÏ´Â DLL ÆÄÀÏÀ» ·Îµå½Ãų ¼ö ÀÖ´Ù. ÇØ´ç ÇÁ·Î¼¼½º¿¡ DLL ÆÄÀÏÀ» ÀÎÁ§¼ÇÇÏ¿© ·ÎµåÇÏ¸é °°Àº ½ÇÇà °ø°£À̹ǷΠÇØ´ç ÇÁ·Î¼¼½ºÀÇ ¸Þ¸ð¸®¸¦ ÀÚÀ¯·Ó°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Ù.
8Àå | API ÈÄÅ·(API Hooking)
¿©·¯ºÐµéÀÌ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥µéÀº ¼ö¸¹Àº API(Application program interface)·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, °¢ APIµéÀº ÀڽŸ¸ÀÇ °íÀ¯ÇÑ ±â´ÉµéÀÌ ÀÖ´Ù. ¶ÇÇÑ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¶§¿¡´Â ƯÁ¤ »óȲ¿¡ µû¶ó APIµéÀÌ ¼·Î¸¦ È£ÃâÇÏ¸ç ¿©·¯ºÐµéÀÌ ¿øÇÏ´Â ±â´ÉÀ» ¼öÇàÇÏ°Ô µÈ´Ù. ÀÌ·± API¿¡ ¿©·¯ºÐµéÀÌ ¿øÇÏ´Â ¾î¶² ±â´ÉÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº, ±× API¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÇ °á°ú¸¦ ¿©·¯ºÐ ¸¶À½ ´ë·Î ¹Ù²Ü ¼ö µµ ÀÖÀ¸¸ç, ¹Ý´ë·Î ¾î¶² API¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¥À» º¯°æÇÏ°íÀÚ ÇÏ´Â °ÍÀ» ¸·À» ¼öµµ ÀÖ´Ù´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î ¾î¶² ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ Á¢±ÙÇÏ¿© ¸Þ¸ð¸®¸¦ º¯Á¶ÇÏ·Á¸é ÀϹÝÀûÀ¸·Î OpenProcess ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÇÁ·Î¼¼½º ÇÚµéÀ» ¾ò¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î ¸Þ¸ð¸®¿¡ Á¢±ÙÇÏ´Â °ÍÀ» ¹æ¾îÇÏ·Á¸é OpenProcess¸¦ API ÈÄÅ·ÇÏ¿© ¿ÜºÎ ÇÁ·Î¼¼½º¿¡¼ ³» ÇÁ·Î±×·¥¿¡ Á¢±ÙÇÏ´Â °ÍÀ» Â÷´ÜÇÏ´Â ±â´ÉÀ» Ãß°¡ÇÏ¸é ±âº»ÀûÀÎ ¹æ¾î´Â °¡´ÉÇÏ´Ù. ÀÌó·³ API ÈÄÅ·Àº ÇÁ·Î±×·¥À̳ª ½Ã½ºÅÛ¿¡ ¾î¶² Á¶ÀÛÀ» °¡ÇÏ¿© ¿øº» ÇÔ¼ö°¡ È£ÃâµÇ±â Àü¿¡ Á¶ÀÛÀÚ°¡ ¿øÇÏ´Â ±â´ÉÀ» ¼öÇàÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù. API ÈÄÅ·Àº ¸¹Àº ÇØÅ· µµ±¸µéÀÌ »ç¿ëÇϱ⵵ ÇÏÁö¸¸, ´ëºÎºÐÀÇ º¸¾È ÇÁ·Î±×·¥µéÀÌ »ç¿ëÇÏ°í ÀÖ´Â °¡Àå Áß¿äÇϸ鼵µ ±âº»ÀûÀÎ ±â¼úÀÌ´Ù.
9Àå | ¾ÈƼµð¹ö±ë(Anti_debugging)
ÃÖ±ÙÀÇ º¸¾È ÇÁ·Î±×·¥µéÀº ÀÚü º¸È£¸¦ À§ÇÑ ¹æ¹ýÀ¸·Î µð¹ö±ë °úÁ¤ ÀÚü¸¦ ¾î·Æ°Ô Çϰųª Â÷´ÜÇÏ´Â ¾ÈƼµð¹ö±ë(Anti_debugging) ±â¼úÀ» ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Ù. ¾ÈƼµð¹ö±ë¿¡´Â µð¹ö°ÅÀÇ µ¿ÀÛ ¹æ½Ä, Ư¡À» ÀÌ¿ëÇϰųª µð¹ö°ÅÀÇ ¹ö±×¸¦ ÀÌ¿ëÇؼ µð¹ö°Å°¡ ó¸® °¡´ÉÇÑ ÀÔ·Â ¹üÀ§ µîÀ» Á¶ÀÛÇØ µð¹ö±ëÀÌ ºÒ°¡´ÉÇϵµ·Ï ó¸®ÇÏ´Â µîÀÇ ´Ù¾çÇÑ ¹æ¹ýµéÀÌ Á¸ÀçÇÑ´Ù. ÀÌ·¯ÇÑ ±â¼úµéÀ» ¸ðµÎ ½ÀµæÇÏ´Â °ÍÀº ¾î·ÆÁö¸¸ ¸î °¡Áö ´ëÇ¥ÀûÀÎ ¾ÈƼµð¹ö±ë ±â¼úÀ» »ìÆ캸´Â °Í¸¸À¸·Îµµ ¹æ¾î ±â¹ýÀ» ÀÌÇØÇÏ´Â µ¥ ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ¹°·Ð ÇØÅ·À» Â÷´ÜÇϵµ·Ï ¼³°èµÈ ´ëºÎºÐÀÇ º¸¾È ÇÁ·Î±×·¥µéÀº ¾ÈƼµð¹ö±ë ±â¼úµéÀ» »ç¿ëÇÏ°í ÀÖ´Â °ÍÀº ¹°·ÐÀÌ°í ÀÌ¿Ü¿¡µµ ½ÇÇà ÆÄÀÏÀ» º¸È£Çϱâ À§ÇÑ ½ÇÇà ¾ÐÃà(Packing)À̳ª ÇØÅ· ÇàÀ§¸¦ ½ÇÇà Áß¿¡ ½Ç½Ã°£À¸·Î ÆÇ´ÜÇÏ´Â ´Ù¾çÇÑ ¾ÈƼ¸®¹ö½Ì ¹æ¹ýµéÀ» »óÈ£ º¸¿ÏÀûÀ¸·Î »ç¿ëÇÏ°í ÀÖ´Ù.
10Àå | ¸Þ¸ð¸®»óÀÇ µ¥ÀÌÅÍ º¯°æ
¸Þ¸ð¸®´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÇÁ¦·Î »ç¿ëÇÏ´Â µ¥ÀÌÅÍ°¡ ·ÎµåµÇ´Â °ø°£À̸ç ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÄÚµå, µ¥ÀÌÅÍ, ¸®¼Ò½º µîÀÌ ·ÎµåµÈ´Ù. ÇÏÁö¸¸ ½ÇÁ¦ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ »ç¿ëÇØ¾ß ÇÏ´Â ¸Þ¸ð¸® ¿ë·®¿¡ ºñÇØ ½ÇÁ¦ ¸Þ¸ð¸®´Â ºÎÁ·ÇÑ °æ¿ì°¡ ¸¹´Ù. µû¶ó¼ ¿î¿µÃ¼Á¦¿¡¼´Â °¡»ó ¸Þ¸ð¸® °³³äÀ» °¡Áö°í ÀÖ°í ÀÌ °¡»ó ¸Þ¸ð¸®¿Í ½ÇÁ¦ ¸Þ¸ð¸®¸¦ ¸ÅÇÎÇÏ¸é¼ »ç¿ëÇÏ°Ô µÈ´Ù. ¸Þ¸ð¸®¿¡´Â ÇÁ·Î¼¼½ºÀÇ ÄÚµå¿Í »ç¿ëÇÏ´Â µ¥ÀÌÅÍ °ª µî ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÏ´Â ¸ðµç Á¤º¸°¡ µé¾î ÀÖ´Ù. µû¶ó¼ ¸Þ¸ð¸®¿¡ ´ëÇÑ ±¸Á¶¸¦ ÀÌÇØÇÏ´Â °ÍÀº ÇÁ·Î¼¼½ºÀÇ ¸ðµç Á¤º¸¿¡ ´ëÇØ ¾òÀ» ¼ö ÀÖ´Ù´Â ¾ê±â°¡ µÈ´Ù. ¿À·¡ ÀüºÎÅÍ ¸Þ¸ð¸®´Â ÇØÄ¿µéÀÇ ÁÖ °ø°Ý ´ë»óÀÌ µÇ¾î ¿Ô´Ù. ¸Þ¸ð¸® Á¶ÀÛ¿¡ ´ëÇÑ À̽´´Â ¿À·£ ¿ª»ç¸¦ °¡Áö°í ÀÖÀ¸¸ç ÇöÀçµµ ¸Þ¸ð¸® Á¶ÀÛÀ¸·Î ÀÎÇÑ ÇØÅ·ÀÌ ¸¹ÀÌ ¹ß»ýÇÏ°í ÀÖ´Ù.
11Àå | ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥ Á¦ÀÛ
ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥Àº »ç¿ëÀÚ°¡ Å°º¸µå³ª ¸¶¿ì½º¸¦ ½ÇÁ¦·Î ÀÔ·ÂÇÏÁö ¾Ê¾Æµµ °¡»óÀ¸·Î Å°º¸µå³ª ¸¶¿ì½º ÀÔ·ÂÀ» ¹ß»ý½ÃÄѼ ½ÇÁ¦·Î Å°º¸µå³ª ¸¶¿ì½º¸¦ Á¶ÀÛÇÑ °Í°ú µ¿ÀÏÇÑ È¿°ú¸¦ ¹ß»ýÇÏ´Â ÇØÅ· µµ±¸ÀÌ´Ù. ÀÌ·¯ÇÑ ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥Àº °ÔÀÓ¿¡¼ ¸¹ÀÌ »ç¿ëµÇ¸ç, °£È¤ ¿Â¶óÀÎ ±³À° ÇÁ·Î±×·¥¿¡¼µµ »ç¿ëµÇ´Âµ¥, ¿Â¶óÀÎ °ÔÀÓ¿¡¼´Â ¿ÀÅäÇ÷¹ÀÌ, ¿ÀÅ丶¿ì½º, ¿ÀÅä¸ÅÅ©·Î¶ó°í ºÒ¸°´Ù. ƯÈ÷ MMORPG °ÔÀÓ¿¡¼ ÀÚµ¿»ç³ÉÀ̶ó°íµµ ºÒ¸®¸ç, ij¸¯ÅÍ°¡ ÀÚµ¿À¸·Î ¸÷(Mobile Character)À» »ç³ÉÇÏ°í, ¾ÆÀÌÅÛÀ» ¾ò°í, °Å·¡Çϸç, ƯÁ¤ ÀÓ¹«¸¦ ¼öÇàÇÑ´Ù. ¾ÆÀÌÅÛ °Å·¡¸¦ ÅëÇØ ±ÝÀüÀûÀÎ ÀÌÀͱîÁö ¾òÀ» ¼ö ÀÖ´Â ¿Â¶óÀÎ °ÔÀÓ¿¡¼´Â »ó´çÈ÷ ¸Å·ÂÀûÀÎ ÇØÅ· µµ±¸¶ó ÇÒ ¼ö ÀÖ°Ú´Ù. ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥Àº ÀÀ¿ë ·¹º§ ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥, Ä¿³Î ·¹º§ ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥, Çϵå¿þ¾î ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥À¸·Î ³ª´¶´Ù. ±¸Çö ¹æ¹ýÀº ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ µ¿ÀÛ ¹æ½Ä°ú »ó°ü¾øÀÌ ÁÖ±âÀûÀ¸·Î ¸¶¿ì½º³ª Å°º¸µå Á¤º¸¸¦ ÀÔ·ÂÇÏ´Â ¹æ¹ý°ú ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ µ¿ÀÛ ¹æ½ÄÀ» ºÐ¼®ÇÏ¿© ¸¶¿ì½º³ª Å°º¸µå¸¦ ÀÔ·ÂÇØ¾ß ÇÏ´Â ½ÃÁ¡¿¡¸¸ ÀÔ·ÂÇÏ´Â ¹æ½ÄÀÌ ÀÖ´Ù. ÀüÀÚ´Â ´ëºÎºÐÀÇ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹Ý¸é, ÈÄÀÚ´Â ÀÀ¿ë ÇÁ·Î±×·¥¸¶´Ù ´Ù¸£°Ô ±¸ÇöÇØ¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ÈÄÀÚÀÇ °æ¿ì°¡ ƯÁ¤ ÇÁ·Î±×·¥À» ´ë»óÀ¸·Î ÇÑ °æ¿ìÀ̱⠶§¹®¿¡, ±â¼úÀûÀ¸·Î ³À̵µ°¡ ÀÖ°í ±ÝÀüÀûÀ¸·Î °Å·¡µÇ±âµµ ÇÑ´Ù. À̹ø Àå¿¡¼´Â ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ °øÅëÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô ÀÚµ¿À¸·Î Å°º¸µå³ª ¸¶¿ì½º¸¦ ÀԷ½ÃÅ°´Â °ÍÀ» °£´ÜÇÏ°Ô ±¸ÇöÇغ¸µµ·Ï ÇÏ°Ú´Ù. À̹ø Àå¿¡¼ ¼Ò°³ÇÏ´Â ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥ÀÇ µ¿ÀÛ ¿ø¸®¸¦ ÅëÇØ, ÀÚµ¿ ÀÔ·Â ÇÁ·Î±×·¥À» ¹æ¾îÇÏ´Â ±â¼úÀ» Å͵æÇϱ⸦ ¹Ù¶õ´Ù.
12Àå | ½ºÇ® µ¥ÀÌÅÍ(Spool Data) Á¶ÀÛ
ÀÎÅͳÝÀÇ ¹ß´Þ·Î ´Ù¾çÇÑ ÇüÅÂÀÇ Áõ¸í¼ µîÀ» ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡¼ ÇÁ¸°ÅÍ(Printer)¸¦ »ç¿ëÇØ Ãâ·ÂÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ÀÌ·¯ÇÑ ¹®¼µéÀº Á߿伺¿¡ µû¶ó¼ ¿öÅ͸¶Å©(Watermark) ¶Ç´Â ¹ÙÄÚµå(Barcode) µî°ú °°Àº ´Ù¾çÇÑ º¸¾È ¹æ¹ýÀ¸·Î ¹®¼ÀÇ À§Á¶¿Í º¯Á¶¸¦ Â÷´ÜÇϰųª ÀúÀåÇÏÁö ¸øÇϵµ·Ï º¸È£µÇ°í ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ·± º¸¾È ¹æ¹ýµéÀÌ Àû¿ëµÇ¾îµµ À©µµ¿ìÁî ¿î¿µÃ¼Á¦¿¡¼ ¹®¼¸¦ Ãâ·ÂÇϱâ À§Çؼ´Â ½Ã½ºÅÛÀÌ Á¦°øÇÏ´Â Ãâ·Â ¹æ¹ýÀ» °ÅÃļ Ãâ·ÂÇÒ ¼ö¹Û¿¡ ¾ø´Ù´Â ÇÑ°è°¡ ÀÖ´Ù. ÇÁ¸°ÅÍ Ãâ·ÂÀ» À§ÇÑ Àӽà °ø°£À¸·Î »ç¿ëµÇ´Â ½ºÇ® ÆÄÀÏÀº ÇÁ·Î±×·¥ÀÌ »ý¼ºÇÑ Ãâ·Â µ¥ÀÌÅ͸¦ ÁöÁ¤µÈ ÇÁ¸°ÅÍ µå¶óÀ̹ö¿¡ ¸Â´Â Àμâ ÇüÅ·ΠÀúÀåÇÏ°í ÀÖ°Ô µÈ´Ù. ½ºÇ® ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº ÇÁ¸°ÅÍ·Î Ãâ·ÂµÇ´Â ¸ðµç Àμâ ÀÛ¾÷¿¡ ´ëÇؼ ÃÖÁ¾ÀûÀÎ Ãâ·Â ÇüŸ¦ °¡·Îä°Å³ª º¯Á¶°¡ °¡´ÉÇÏ´Ù´Â °ÍÀ» ¸»ÇÑ´Ù.
13Àå | µð¹ÙÀ̽º µå¶óÀ̹ö(Device Driver) °³¹ß
ÇØÅ· µµ±¸µéÀ» ºÐ¼®ÇÏ´Ù º¸¸é À¯Àú ¸ðµå(User mode)¿¡¼ÀÇ ±â¼ú¸¸À¸·Î´Â ¹æ¾îÇϱâ Èûµç ÇÁ·Î±×·¥µéÀÌ ÀÖ´Ù. ÀÌ·± Á¾·ùÀÇ ÇÁ·Î±×·¥µéÀº º¸Åë Ä¿³Î ¸ðµå(Kernel mode)ÀÇ ±â´ÉÀ» »ç¿ëÇØ¾ß ÇÏ°í ÀÌ ±â´ÉÀ» »ç¿ëÇϱâ À§Çؼ´Â µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¹Ý´ë·Î ¾î¶² ¹æ¾î ÇÁ·Î±×·¥À» ¿ìȸÇϰųª ¹«·ÂȽÃÅ°±â À§Çؼ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ìµµ ÀÖ´Ù. À̹ø Àå¿¡¼´Â Çϵå¿þ¾î ÀåÄ¡¸¦ Á¦¾îÇϱâ À§ÇÑ ¿ëµµ°¡ ¾Æ´Ñ Ä¿³Î ¸ðµåÀÇ ±â´ÉÀ» ¼öÇàÇϱâ À§ÇÑ ¿ëµµÀÇ µå¶óÀ̹ö¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¹è¿î´Ù.
14Àå | º¸¾ÈÀ» °í·ÁÇÑ °³¹ß
¸ðµç ¼ÒÇÁÆ®¿þ¾î´Â ¿ª°øÇÐ(Reverse Engineering)¿¡ ÀÇÇÑ ÇØÅ·¿¡ ³ëÃâµÇ¾î ÀÖ´Ù°í ÇÏ´õ¶óµµ °ú¾ðÀÌ ¾Æ´Ï´Ù. ¾î·Æ°Ô °³¹ßµÈ ¼ÒÇÁÆ®¿þ¾î°¡ ÇØÅ·À¸·Î ÀÎÇؼ °¡Ä¡¸¦ ÀÎÁ¤¹ÞÁö ¸øÇÏ´Â °æ¿ì°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ÃÖ±Ù¿¡´Â ½Ã½ºÅÛ¿¡¼ ±âº»ÀûÀ¸·Î DEP(Data Execution Prevention), ASLR(Address Space Layout Randomization), Security Cookie µîÀÇ º¸¾ÈÀ» °ÈÇÒ ¼ö ÀÖ´Â ±â´ÉµéÀ» Á¦°øÇÏ°í ÀÖÁö¸¸ °³¹ß °úÁ¤¿¡¼ºÎÅÍ ÇØÅ·¿¡ ´ëºñÇÑ ¼³°è¿Í Äڵ带 ÀÛ¼ºÇÑ´Ù¸é º°µµÀÇ º¸¾È ±â´ÉÀ̳ª º¸¾È ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÏÁö ¾Ê´õ¶óµµ ÇØÅ·¿¡ ¾î´À Á¤µµ ¾ÈÀüÇÑ ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ºÎ·Ï | ÁÖ¿ä µð¹ö°Å(Debugger) ¼Ò°³
µð¹ö°Å(Debugger)´Â ´Ü¾î ±×´ë·Î ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ¹ö±×¸¦ Á¦°ÅÇϱâ À§ÇØ ¸¸µé¾îÁø ºÐ¼® µµ±¸ÀÌ´Ù. µð¹ö°Å¸¦ ½ÇÇàÇÏ¸é µð¹ö°Å´Â ´ë»ó ÇÁ·Î±×·¥¿¡ ´ëÇؼ ±â°è¾î¸¦ ºÐ¼®ÇÏ°í ÀÌ¿¡ ´ëÇØ µð½º¾î¼Àºí¸µµÈ ³»¿ëÀ» Á¦°øÇÑ´Ù. µð¹ö°Å°¡ ÄÄÆÄÀÏµÈ Äڵ带 ºÐ¼®ÇÏ´Â ¹æ½Ä¿¡´Â ÁÖ·Î ¼±Çà Çؼ® ¹æ½Ä(Linear Sweeping Method)°ú, Àç±ÍÀû Çؼ® ¹æ½Ä(Recursive Traversal Method)ÀÌ »ç¿ëµÈ´Ù. ¼±Çü Çؼ® ¹æ½ÄÀº ÇϳªÀÇ ¸í·É¾î¸¦ Çؼ®ÇÏ°í ±× ¸í·É¾îÀÇ ±æÀ̸¸Å À̵¿ÇÑ ´ÙÀ½ ±× À§Ä¡¿¡ ÀÖ´Â ¸í·É¾î¸¦ Çؼ®ÇÏ´Â ¹æ½ÄÀÌ°í Àç±ÍÀû Çؼ® ¹æ½ÄÀº ÇϳªÀÇ ¸í·É¾î¸¦ Çؼ®ÇÏ°í ±× ¸í·É¾î°¡ °¡¸®Å°´Â ÇØ´ç À§Ä¡·Î À̵¿ÇÑ ÈÄ Çؼ®ÇÏ´Â ¹æ½ÄÀÌ´Ù. µð¹ö°Å´Â ÇÁ·Î±×·¥ ¿À·ù¸¦ ¼öÁ¤Çϰųª ƯÁ¤ »óȲÀ» ÆľÇÇϱâ À§ÇØ °·ÂÇÑ ±â´ÉµéÀ» Á¦°øÇÏ´Â µµ±¸ÀÌ´Ù. ±×¸¸Å ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¸¹Àº Á¤º¸¸¦ ¾Ë ¼ö Àֱ⠶§¹®¿¡ ¿ª°øÇÐ(Reverse Engineering)¿¡¼µµ Áß¿äÇÑ ¿ªÇÒÀ» ÇÏ°í ÀÖ´Ù. µð¹ö°Å »ç¿ë¹ý¿¡ Àͼ÷ÇØÁö´Â °ÍÀº ¾ÕÀ¸·ÎÀÇ ºÐ¼® ÀÛ¾÷¿¡ Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ¸¹Àº µð¹ö°ÅµéÀÌ Á¸ÀçÇÏÁö¸¸ ÀÌ Àå¿¡¼´Â ÇöÀç °¡Àå ³Î¸® ¾²ÀÌ°í ÀÖ´Â WinDbg, OllyDbg, IDA, SoftIceÀÇ ±âº» »çÇ×°ú °£´ÜÇÑ »ç¿ë¹ý¿¡ ´ëÇؼ »ìÆ캸±â·Î ÇÑ´Ù. SoftIce, WinDbg´Â ¼±Çà Çؼ® ¹æ½ÄÀ» »ç¿ëÇÏ´Â µð¹ö°ÅÀÌ°í OllyDbg³ª IDA´Â Àç±ÍÀû Çؼ® ¹æ½ÄÀ» »ç¿ëÇÏ´Â µð¹ö°ÅÀÌ´Ù.
|