±×¸² 1. MessageBox() ÇÔ¼ö È£Ãâ È帧
MessageBox() ÇÔ¼öó·³ ½ÇÁ¦ Äڵ尡 ½ÇÇàÆÄÀÏ¿¡ ¾ø´Â ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§, ½ÇÇàÆÄÀÏÀº Àú ÇÔ¼ö°¡ ¾îµð¿¡ ÀÖ´Â Áö ¾î¶»°Ô ¾Ë ¼ö ÀÖÀ»±î¿ä? ¾î¶»°Ô ±× ÇÔ¼ö¸¦ ÂüÁ¶ÇÒ±î¿ä? ±×¸®°í ÇÁ·Î±×·¥ÀÌ MessageBox() ÇÔ¼ö¸¦ ¼öÇàÇÒ ¶§ ´Ù¸¥ ÇÔ¼ö°¡ ¼öÇàÇϵµ·Ï ¹Ù²Ü ¼ö ÀÖÀ»±î¿ä? À̹ø ½Ã°£¿¡ °øºÎÇÒ IAT ÈÄÅ·¿¡ ´ëÇØ¼ °øºÎ¸¦ ÇÑ´Ù¸é À§¿Í °ü·ÃµÈ ´äº¯À» ÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù.
IAT´Â Import Address Table¿¡ ¾àÀÚÀÔ´Ï´Ù. IAT ÈÄÅ·Àº ¹Ù·Î ÀÌ ºÎºÐÀ» °ø·«ÇÏ´Â ±â¹ýÀ» ¸»ÇÕ´Ï´Ù. IAT ÈÄÅ·Àº Áö±Ý±îÁö ºÁ¿Ô´ø ¼ºêŬ·¡½Ì(SubClassing)À̶óµç°¡, ÈÅ ÇÁ·Î½ÃÀú(Hook Proceduer), DLL Proxy¸¦ ÀÌ¿ëÇÑ ÈÄÅ·º¸´Ù´Â ³À̵µ°¡ ³ô½À´Ï´Ù. IAT ÈÄÅ·À» Çϱâ À§Çؼ ¾Ë¾Æ¾ß ÇÒ ¹è°æÁö½ÄÀÌ ¸î °¡Áö°¡ Àֱ⠶§¹®ÀÌÁÒ. ±×¿Í °ü·ÃµÈ ³»¿ëÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
- µ¿Àû ±×¸®°í Á¤Àû ¶óÀ̺귯¸®
- PE ±¸Á¶
- ÄÄÆÄÀÏÀ» ¼öÇàÇÒ ¶§ ÇÔ¼ö È£Ã⠺κÐÀ» ó¸® ¹æ¹ý
- ½ÇÇàÇÒ ¶§ PE Loader°¡ ÇÏ´Â ÀÏ
- °¡»ó ¸Þ¸ð¸®
- DLL Injection
- ±âŸ µîµî
IATÈÄÅ·À» ¼³¸íÇϱâ À§Çؼ Àú À§¿¡ ³»¿ëµéÀ» ´Ù ¼³¸íÇØ¾ß Çϴµ¥, ±×·¯¸é °Á°¡ ±æ¾îÁö°í Áö·çÇØÁú °ÍÀº ¡°IU°¡ ±Í¿±³Ä¡±°í ¹°¾îº¸´Â °Í°ú °°½À´Ï´Ù. ±×·¡¼ À̹ø °Á¿¡¼´Â IAT ÈÄÅ·¿¡ ´ëÇÑ ±âº»ÀûÀÎ °³³äÀ» ¾Ë¾Æº¸°í À§ ¹è°æ Áö½Ä¿¡ ´ëÇØ¼´Â À̹ø ÈÄÅ· °Á°¡ ³¡³ª°í ±âȸ°¡ µÈ´Ù¸é ¿¬ÀçÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
IAT ÈÄÅ·ÀÇ °³³äÀº ¾Æ·¡ ±×¸²°ú °°½À´Ï´Ù.
±×¸² 2. IAT ÈÄÅ· ½Ã ½ÇÇà¼ø¼
- ½ÇÇà¼ø¼´Â ÀÌ·¸°Ô µÇ´Â °ÅÁÒ.
¨ç DoStudy() ÇÔ¼ö¸¦ È£ÃâÇϸé DoPlay() ÇÔ¼ö°¡ È£ÃâµÇ¾î ¿øÇÏ´Â ÀÏÀ» ¼öÇàÇÑ ÈÄ
¨è DoPlay() ÇÔ¼ö ¸¶Áö¸· ºÎºÐ¿¡¼ ½ÇÁ¦ DoStudy() ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
¨é ±×¸®°í ³ª¼ ¿ø·¡ Àǵµ´ë·Î DoStudy() ÇÔ¼ö¸¦ ¼öÇàÇÏÁÒ.
±×·³ ¾î¶»°Ô DoStudy() ÇÔ¼ö°¡ È£ÃâµÇ¾úÀ» ¶§ DoPlay() ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ¸¸µé ¼ö ÀÖÀ»±î¿ä? ÀÌ¿Í °ü·ÃµÈ ¾ÆÀ̵ð¾î¸¦ ¾ò±â À§Çؼ IAT°¡ ¹«¾ùÀ» ÇÏ´Â ¿ëµµ·Î ¾²ÀÌ´ÂÁö ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ½ÇÇà ÆÄÀÏÀ» ½ÇÇàÇÒ ¶§ ½ÇÇà¿¡ ÇÊ¿äÇÑ Á¤Àû ¶óÀ̺귯¸®¸¦ ÇÔ²² ·ÎµåÇÕ´Ï´Ù. ±×¸®°í ¶óÀ̺귯¸®¿¡¼ »ç¿ëÇÒ ÇÔ¼ö¿¡ ´ëÇÑ Á¤º¸¸¦ IAT¿¡ ³Ö¾îµÎ´Â °ÍÀÌÁÒ. ÀÌ·¸°Ô IAT´Â È£ÃâÇÒ ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ´ã°í ÀÖ½À´Ï´Ù. ±× ÇÔ¼ö´Â ½ÇÁ¦·Î ¶óÀ̺귯¸® ¾È¿¡ ÀÖ°í¿ä. ÀÌ·± ½ÄÀ¸·Î ½ÇÇà ÆÄÀÏÀº ½ÇÇà ÆÄÀÏ¿¡ ¾È¿¡ ÀÖÁö ¾Ê´Â ÇÔ¼ö¸¦ È£Ãâ ÇÒ ¶§ IAT¸¦ ÂüÁ¶Çؼ È£ÃâÀ» ÇÕ´Ï´Ù. ¾Æ·¡ ±×¸²Ã³·³ ¸»ÀÌÁÒ.
±×¸² 3. IAT °³³ä
¨ç DoStudy() ÇÔ¼ö¸¦ È£ÃâÇϸé
¨è IAT¿¡¼ DoStudy() ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ¿É´Ï´Ù.
¨é ±×¸®°í ±× ÁÖ¼Ò¸¦ °¡Áö°í DLL¿¡¼ DoStudy() ÇÔ¼ö¸¦ ã¾Æ ¼öÇàÀ» ÇÕ´Ï´Ù.
ÀÌÁ¦ °¨ÀÌ Á¶±Ý ¿À½Ã³ª¿ä? ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§¸¶´Ù IAT¸¦ ÂüÁ¶Çϱ⠶§¹®¿¡ IAT¿¡ ÀÖ´Â °ªÀ» º¯°æÇÏ¸é ¿ì¸®°¡ ¿øÇÏ´Â ÈÄÅ·ÇÔ¼ö¸¦ ½ÇÇàÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·³ ½ÇÇà ÆÄÀÏ¿¡ ÀÖ´Â IAT´Â ¾î¶»°Ô ãÀ» ¼ö ÀÖÀ»±î¿ä? ¹ÙÀÌ·¯½º°¡ ½ÇÇà ÆÄÀϵéÀÇ IAT¸¦ ã¾Æ¼ ¹Ù²Ü ¼ö ÀÖ´Ù´Â °ÍÀº IAT¸¦ ã´Âµ¥ ÀÏÁ¤ÇÑ ÆÐÅÏÀÌ ÀÖ´Ù°í »ý°¢À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾î¶² ½ÇÇà ÆÄÀÏÀÌµç ±× ±¸Á¶°¡ Á¤ÇüÈ µÇ¾î ÀÖ¾î ¹ÙÀÌ·¯½º°¡ IAT¸¦ º¯°æÇÒ ¼ö ÀÖ´Â °ÅÁÒ. ½ÇÁ¦·Î À©µµ¿ì ¿î¿µÃ¼Á¦ÀÇ ½ÇÇà ÆÄÀÏÀº PE(Portable Excutable) ¶ó´Â ±¸Á¶¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù. ±×·¡¼ PE ±¸Á¶¿Í ·Î´õ(loader)°¡ ¾î¶»°Ô ½ÇÇà ÆÄÀÏ¿¡¼ ½ÇÇà¿¡ ÇÊ¿äÇÑ Á¤º¸¸¦ ¾ò´ÂÁö¸¦ ¾Ë ¼ö ÀÖ´Ù¸é IAT°¡ ¾îµð¿¡ ÀÖ°í, ¾î¶»°Ô ÂüÁ¶ÇÏ´ÂÁöµµ ¾Ë ¼ö ÀÖ°ÚÁÒ~. PE ±¸Á¶´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
±×¸² 4. PE ±¸Á¶
Á¶±Ý º¹ÀâÇÏÁÒ^^. PE¿¡ ´ëÇØ ÀÚ¼¼È÷ ´Ù·é´Ù¸é Ã¥ ÇÑ ±Ç ºÐ·®ÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î ½ÃÁß¿¡ PE¸¸ ¼³¸íµÇ¾î Àִ åÀÌ ÃâÆÇµÇ¾î ÀÖ½À´Ï´Ù. PE¿¡ ´ëÇÑ °Áµµ ´ÙÀ½¿¡ ±âȸ°¡ µÈ´Ù¸é ÇÙ½ÉÀûÀÎ ³»¿ë¸¸ »Ì¾Æ¼ ´ÙÀ½¿¡ ¿¬ÀçÇϱâ·Î Çϰí¿ä. IAT ÈÄÅ·ÀÌ ÀÌ·ç¾îÁö´Â ¼ø¼¸¦ »ìÆìº¸°í ¸¶¹«¸® Áþµµ·Ï ÇϰڽÀ´Ï´Ù.
±×¸² 5. IAT ÈÄÅ· °úÁ¤
¨ç ¸Þ¸ð¸® °ø°£¿¡ ¿ì¸®°¡ ¼öÇàÇϰíÀÚ ÇÏ´Â DoPlay() ÇÔ¼ö°¡ µé¾îÀÖ´Â DLL ÆÄÀÏÀ» »ðÀÔÇÕ´Ï´Ù.
¨è ÇÁ·Î±×·¥ÀÇ IAT¸¦ ¼öÁ¤ÇÕ´Ï´Ù.
¨é ÇÁ·Î±×·¥ÀÌ DoStudy() ÇÔ¼ö¸¦ ¼öÇàÇϸé DoPlay() ÇÔ¼ö°¡ ¼öÇàÇÏ°Ô µË´Ï´Ù.
±â»ç : ¹Ú·¡½Å ±âÀÚ(plsgg@hotmail.com)
ÆíÁý : ÄÄŸÀÓÁî ÆíÁý±¹(kcsjhz@gmail.com)