2.3. ¸®´ª½º¿Í ¾î¼Àºí¸®

¿©·¯ºÐµµ ´«Ä¡ÃªÀ» Å×Áö¸¸, ÀϹÝÀûÀ¸·Î, ¸®´ª½º¿¡¼­ ÇÁ·Î±×·¡¹ÖÀ» Çϸ鼭 ¾î¼Àºí¸®¸¦ »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¸®´ª½º´Â µµ½º¿Í´Â ´Þ¶ó¼­, µå¶óÀ̹ö¿Í °°Àº °ÍµéÀ» ¾î¼Àºí¸®·Î ÀÛ¼ºÇÒ ÇÊ¿ä´Â ¾ø´Ù (À½.. ¸¸¾à ¿©·¯ºÐÀÌ ¾î¼Àºí¸®·Î ¸¸µé°Ú´Ù¸é ÇÒ ¼ö ¾øÁö¸¸ ¸»ÀÌ´Ù) ±×¸®°í, ¿À´Ã³¯ÀÇ ÁÁÀº ÄÄÆÄÀÏ·¯µéÀ» ÀÌ¿ëÇÑ´Ù¸é, ¼­·Î ´Ù¸¥ ÇÁ·Î¼¼¼­µéÀ» Ÿ°ÙÀ¸·Î °¢°¢ ¼öÇà¼ÓµµÀÇ ÃÖÀûÈ­¸¦ Çϱ⸦ ¿øÇÏ´õ¶óµµ, c ¾ð¾î¸¦ »ç¿ëÇØ¼­ ÇÁ·Î±×·¡¹ÖÇÏ´Â °ÍÀÌ ¾î¼Àºí¸®·Î ÇÏ´Â °Íº¸´Ù ´õ ½±´Ù. ±×·¯³ª... ±×·³¿¡µµ ºÒ±¸Çϰí, c ³ª c++ º¸´Ù ¾î¼Àºí¸®°¡ ´õ ÀûÀýÇÑ °æ¿ì°¡ ÀÖÀ» °ÍÀÌ´Ù.

¿©·¯ºÐÀÌ ¾î¼Àºí¸® ÇÁ·Î±×·¡¹ÖÀ» ÇÊ¿ä·Î Çϰųª, ȤÀº ¾î¼Àºí¸® ¾ð¾î¸¦ »ç¿ëÇϱ⸦ ¿øÇÒÁöµµ ¸ð¸¥´Ù. °£´ÜÈ÷ ¾ê±âÇØ¼­, ¾î¼Àºí¸®ÀÇ ¹Ì±ÃÀ¸·Î ¶Ù¾îµé¾î¾ß ÇÏ´Â °æ¿ì´Â ¸Å¿ì ÀÛÀº Äڵ尡 ÇÊ¿äÇϰųª libc ¿¡ µ¶¸³ÀûÀÎ, Áï, ¶óÀ̺귯¸®¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â ÇÁ·Î±×·¥À» ¸¸µé¾î¾ß ÇÏ´Â Á».. ºñÁ¤»óÀûÀÎ(?) °æ¿ì ¹Û¿¡´Â ¾ø´Ù. ±×¸®°í, °¡Àå ÀÚÁÖ º¸°Ô µÇ´Â ±×·¯ÇÑ °æ¿ì´Â, ½ÅÈ­½Ã´ëÀÇ(!) Àü¼³ÀûÀÎ ±¤±âÀÇ ÇØÄ¿Ã³·³ µÇ°í ½Í¾îÇÏ´Â »ç¶÷ÀÇ °æ¿ìÀÌ´Ù. ±×·± »ç¶÷Àº ÁÖ·Î ½º¹«»ì °¡·®ÀÇ, ¸ðµç°ÍÀ» ÀÚ½ÅÀÌ ´Ù ¾Ë¾Æ¾ß Çϰí, ¸ðµç°ÍÀ» ½º½º·Î ÇÏ°í ½Í¾îÇϰí, ¸ðµç°ÍÀ» ¾î¼Àºí¸®·Î ÇÏ°í ½Í¾îÇÏ´Â »ç¶÷ÀÌ ¸¹´Ù. :-) (¿ªÀÚ ÁÖ:¿ªÀÚÀÇ ÀÇ¿ªÀÌ ³Ê¹«(!) ¸¹¾Ò½À´Ï´Ù. ¾Æ·¡¿¡ - ±×·¡¿ÔµíÀÌ - ¿ø¹®À» º¸ÀÔ´Ï´Ù.

You may need to use assembly, or you may want to use assembly. In short, main practical (need) reasons of diving into the assembly realm are small code and libc independence. Impractical (want), and the most often reason is being just an old crazy hacker, who has twenty years old habit of doing everything in assembly language.

±×·¯³ª, ¿©·¯ºÐÀÌ ¸®´ª½º¸¦ ÀÓº£µðµå ½Ã½ºÅÛ¿¡ Æ÷ÆÃÇÏ·Á´Â °æ¿ì, Àüü ÇÁ·Î±×·¥ÀÇ Å©±â¿¡ »ó´çÈ÷ ¿¹¹ÎÇØ ÁúÅÙµ¥, Áï, Ä¿³Î, libc, À¯Æ¿¸®Æ¼µé(file|find|text|sh|etc.) ÀüºÎ¸¦ ´ÜÁö ¸î¹é kb ÀÇ ÀÛÀº Å©±â¿¡ ¸ÂÃß¾î ³ÖÀ»·Á°í Çϰí, 1ų·Î¹ÙÀÌÆ®°¡ ´Ã¾î³¯ ¶§¸¶´Ù ½Ã½ºÅÛ »ý»ê ºñ¿ëÀÌ ³Ê¹« ¸¹ÀÌ µé ¶§°¡ ÀÖÀ» °ÍÀÌ´Ù. ±×·² °æ¿ì¿¡´Â ½Ã½ºÅÛÀÇ ÀϺΠȤÀº ÀüºÎ¸¦ ¾î¼Àºí¸®·Î ÀçÀÛ¼ºÇÏ´Â °Íµµ ÇÑ ¹æ¹ýÀÌ µÉ ¼ö ÀÖ´Ù. ±×¸®°í, ±×·¸°Ô ÇÑ´Ù¸é, »çÀÌÁî´Â °¨µ¿ÀûÀ¸·Î(! Á¤¸»·Î) ÀÛ¾ÆÁú °ÍÀÌ´Ù. ¿¹¸¦ Çϳª µé¾îº¸ÀÚ. ¾î¼Àºí¸®·Î °£´ÜÇÑ httpd µ¥¸óÀ» ¸¸µé¸é 600¹ÙÀÌÆ® ÀÌÇÏ·Î ¸¸µé¾îÁú ¼ö ÀÖ´Ù. ±×·¯¸é, ¿©·¯ºÐÀº Ä¿³Î°ú, httpd ¸¦ žÀçÇÑ À¥¼­¹ö¸¦ 400 kb ȤÀº º¸´Ù ´õ ÀÛÀº »çÀÌÁî·Î ¸¸µé ¼ö ÀÖ°Ô µÈ´Ù.