¸µÄ¿´Â BFD ¶óÀ̺귯¸®µéÀ» »ç¿ëÇؼ ¿ÀºêÁ§Æ®¿Í ¾ÆÄ«À̺ê ÆÄÀϵéÀ»
¾ï¼¼½ºÇÑ´Ù. ÀÌ·± ¶óÀ̺귯¸®µéÀº ¸µÄ¿°¡, ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ Æ÷¸äÀÌ ¹«¾ùÀ̵ç
¿ÀºêÁ§Æ® ÆÄÀϵ鿡 ´ëÇÑ ÀÛ¾÷À» ÇÒ ¶§ µ¿ÀÏÇÑ ·çƾµéÀ» »ç¿ëÇϵµ·Ï ÇÑ´Ù.
´Ù¸¥ ¿ÀºêÁ§Æ® ÆÄÀÏ Æ÷¸äÀº »õ·Î¿î BFD ¹é¿£µå¸¦ ¸¸µé¾î
¶óÀ̺귯¸®¿¡ Ãß°¡ÇÔÀ¸·Î½á ½±°Ô Áö¿øµÉ ¼ö ÀÖ´Ù.
±×·¯³ª ½Ç½Ã°£ ¸Þ¸ð¸®¸¦ º¸È£Çϱâ
À§Çؼ ¸µÄ¿¿Í °ü·ÃµÈ ÅøµéÀº º¸Åë, »ç¿ë°¡´ÉÇÑ ¿ÀºêÁ§Æ® ÆÄÀÏ Æ÷¸äµé Áß¿¡¼
ÀϺΠºÎºÐÁýÇÕ¸¸À» Áö¿øÇϵµ·Ï ¼³Á¤µÈ´Ù. ¿©·¯ºÐÀº objdump -i
(see section `objdump' in The GNU Binary Utilities)¸¦
»ç¿ëÇؼ ¿©·¯ºÐÀÇ ¼³Á¤¿¡ ´ëÇؼ »ç¿ë°¡´ÉÇÑ ¸ðµç Æ÷¸äÀÇ ¸®½ºÆ®¸¦ º¼ ¼ö
ÀÖ´Ù.
´ëºÎºÐÀÇ ±¸Çö¿¡¼¿Í °°ÀÌ, BFD´Â ¿©·¯ »óÃæÇÏ´Â ¿ä±¸Á¶°Çµé°£ÀÇ Å¸Çù¾ÈÀÌ´Ù. BFD ¼³°è¿¡ ¿µÇâÀ» ¹ÌÄ£ ÁÖ¿ä ÀÎÀÚ´Â È¿À²¼ºÀÌ´Ù: Æ÷¸äµé°£ º¯È¯¿¡ »ç¿ëµÇ´Â ½Ã°£Àº BFD°¡ Æ÷ÇÔµÇÁö ¾ÊÀ¸¸é ¼ÒºñµÇÁö ¾ÊÀ» ½Ã°£ÀÌ´Ù. ÀÌ°ÍÀº ºÎºÐÀûÀ¸·Î Ãß»óÈ payback¿¡ ÀÇÇÑ °ÝÂ÷ÀÌ´Ù; BFD°¡ ¾îÇø®ÄÉÀ̼ǵé°ú ¹é¿£µåµéÀ» ´Ü¼øÈÇϱ⠶§¹®¿¡ Á» ´õ ¸¹Àº ½Ã°£°ú Á¶½ÉÀÌ Á» ´õ ³ôÀº ¼Óµµ¸¦ À§Çؼ ÃÖÀûÈ ¾Ë°í¸®ÁòµéÀ» ¼ÒºñÇÒ ¼ö ÀÖ´Ù.
±â¾ïÇؾ߸¸ ÇÒ BFD ¼Ö·ç¼ÇÀÇ ÇÑ°¡Áö ÀÛÀº ºÎ»ê¹°Àº Á¤º¸ ¼Õ½ÇÀÇ ÀáÀ缺ÀÌ´Ù. BFD ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇÒ ¶§ À¯¿ëÇÑ Á¤º¸°¡ ¼Õ½ÇµÉ ¼ö ÀÖ´Â À§Ä¡°¡ µÎ°³ ÀÖ´Ù: º¯È¯ÇÒ ¶§¿Í Ãâ·ÂÇÒ ¶§. See section Á¤º¸ À¯½Ç(Information Loss).
¿ÀºêÁ§Æ® ÆÄÀÏÀÌ Çϳª ¿ÀǵǸé BFD ¼ºê·çƾµéÀÌ ÀÚµ¿À¸·Î ÀÌ ÀÔ·Â ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ Æ÷¸äÀ» °áÁ¤ÇÑ´Ù. ±×¸®°í ³ª¼ ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ µ¥ÀÌÅÍ ±¸Á¶Ã¼µéÀÇ ¿ä¼ÒµéÀ» ¾ï¼¼½ºÇÏ´Â µ¥ »ç¿ëµÉ ·çƾµé¿¡ ´ëÇÑ Æ÷ÀÎÅ͵é·Î µð½ºÅ©¸³Å͸¦ ¸Þ¸ð¸®¿¡ ºôµåÇÑ´Ù.
¿ÀºêÁ§Æ® ÆÄÀϵé·ÎºÎÅÍ ´Ù¸¥ Á¤º¸°¡ ÇÊ¿äÇÒ ¶§ BFD ´Â ±× ÆÄÀÏÀÇ ´Ù¸¥ ¼½¼ÇµéÀ» ÀоîµéÀÌ°í À̵éÀ» ó¸®ÇÑ´Ù. ¿¹¸¦ µé¾î¼ ¸µÄ¿ÀÇ ¾ÆÁÖ ÀϹÝÀûÀÎ ÀÛ¾÷Àº ½É¹ú Å×À̺íµéÀ» ó¸®ÇÏ´Â °ÍÀÌ´Ù. °¢ BFD ¹é¿£µå´Â ½É¹úµé¿¡ ´ëÇÑ ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ Ç¥Çö°ú ³»ºÎ ±ÔÁØ(cannoical) Æ÷¸ä °£ º¯È¯À» À§ÇÑ ·çƾÀ» Á¦°øÇÑ´Ù. ¸µÄ¿°¡ ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ ½É¹ú Å×À̺íÀ» ¿ä±¸ÇÒ ¶§ °ü·Ã BFD ¹é¿£µå¿¡ ÀÖ´Â ·çƾ¿¡ ´ëÇÑ ¸Þ¸ð¸® Æ÷ÀÎÅ͸¦ ÅëÇؼ ¿äûÇÑ´Ù. ÀÌ ·çƾÀº Å×À̺íÀ» ÀÐ°í ±ÔÁØ ÇüÅ·Πº¯È¯ÇÏ´Â °ÍÀÌ´Ù. º¯È¯ÀÌ µÇ¸é ¸µÄ¿´Â ÀÌ ±ÔÁØ ÇüÅÂÀ§¿¡¼ ÀÛ¾÷ÇÑ´Ù. ¸µÅ©°¡ ³¡³ª°í ¸µÄ¿°¡ °á°ú ÆÄÀÏÀÇ ½É¹ú Å×À̺íÀ» ÀÛ¼ºÇÒ ¶§ ´Ù¸¥ BFD ¹é¿£µå ·çƾÀÌ »õ·Î »ý¼ºµÈ ½É¹ú Å×À̺íÀ» ÃëÇؼ ÀÌ°ÍÀ» ¼±ÅÃµÈ Ãâ·Â Æ÷¸äÀ¸·Î º¯È¯Çϱâ À§Çؼ È£ÃâµÈ´Ù.
Á¤º¸µéÀÌ Ãâ·Â½Ã À¯½ÇµÉ ¼ö ÀÖ´Ù.
BFD ¿¡ ÀÇÇؼ Áö¿øµÇ´Â Ãâ·Â Æ÷¸äµéÀº µ¿ÀÏÇÑ ±â´ÉµéÀ» Á¦°øÇÏÁö ¾ÊÀ¸¸ç
ÇÑ°¡Áö ÇüÅ·Π±â¼úµÉ ¼ö ÀÖ´Â Á¤º¸´Â ´Ù¸¥ Æ÷¸ä¿¡¼´Â °¥ µ¥°¡ ¾ø´Ù. ÀÌ·±
°ÍÀÇ ÇÑ°¡Áö ¿¹´Â b.out
ÀÇ Á¤·Ä Á¤º¸(alignment information) ÀÌ´Ù.
a.out
Æ÷¸ä ÆÄÀÏ¿¡´Â Æ÷ÇÔµÈ µ¥ÀÌÅÍ¿¡´Ù ±×·± Á¤·Ä Á¤º¸¸¦ ÀúÀåÇÒ
°÷ÀÌ ¾ø´Ù. ±×·¡¼ ¾î¶² ÆÄÀÏÀÌ b.out
·ÎºÎÅÍ ¸µÅ©µÇ¾î a.out
À̹ÌÁö°¡ »ý¼ºµÈ´Ù¸é °á°ú ÆÄÀÏ¿¡ Á¤·Ä Á¤º¸°¡ Àü´ÞµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.
(¸µÄ¿´Â ±×·¯³ª Á¤·Ä Á¤º¸¸¦ ³»ºÎÀûÀ¸·Î »ç¿ëÇÒ °ÍÀÌ´Ù. ±×·¡¼ ±× ¸µÅ©´Â
Á¤È®ÇÏ°Ô ½ÇÇàµÈ´Ù).
´Ù¸¥ ¿¹Á¦´Â COFF Æ÷¸äÀÇ ¼½¼Ç À̸§(section names)ÀÌ´Ù. COFF ÆÄÀϵéÀº
¹«Á¦ÇÑÀ¸·Î ¼½¼ÇµéÀ» °¡Áú ¼ö ÀÖ°í ÀÌµé °¢°¢Àº ÅؽºÆ® ¼½¼Ç À̸§À» °¡Áú ¼ö
ÀÖ´Ù. ¸µÅ©ÀÇ Å¸°ÙÀÌ ¼½¼ÇµéÀ» ¸¹ÀÌ °¡Áú ¼ö ¾ø´Â Æ÷¸äÀ̶ó¸é(¿¹,
a.out
) ¶Ç´Â À̸§À» °®Áö ¾Ê´Â ¼½¼ÇÀ» °¡Áö´Â Æ÷¸äÀ̶ó¸é(¿¹, Oasys
Æ÷¸ä), ¸µÅ©´Â ´Ü¼øÇÏ°Ô ¼öÇàµÉ ¼ö ¾ø´Ù. ÀÌ·± ¹®Á¦¸¦, ¿øÇÏ´Â ÀÔ·Â-to-Ãâ·Â
¼½¼Ç ¸ÊÇÎÀ» ¸µÄ¿ ¸í·É ¾ð¾î·Î ±â¼úÇÔÀ¸·Î½á µ¹¾Æ°¥ ¼ö ÀÖ´Ù.
±ÔÁØÈ(canonicalization) µµÁß¿¡ Á¤º¸°¡ À¯½ÇµÉ ¼ö ÀÖ´Ù. ¿ÜºÎ Æ÷¸ä¿¡ ´ëÇÑ BFD ³»ºÎ ±ÔÁØ ÇüÅ´ ¿ÏÀüÇÑ(exhaustive) °ÍÀÌ ¾Æ´Ï´Ù; ³»ºÎÀûÀ¸·Î Á÷Á¢ÀûÀΠǥÇö¹ýÀÌ ¾ø´Â °Í¿¡ ´ëÇÑ ±¸Á¶Ã¼µéÀÌ ÀÔ·Â Æ÷¸äµé Áß¿¡ ÀÖ´Ù. ÀÌ°ÍÀº BFD ¹é¿£µåµéÀÌ ¿ÜºÎ¿¡¼ ³»ºÎ·Î º¯È¯ÇÏ°í ´Ù½Ã °Å²Ù·Î ¿ÜºÎ Æ÷¸äÀ¸·Î º¯È¯ÇÏ´Â °ÍÀ» ÅëÇؼ ¸ðµç °¡´ÉÇÑ µ¥ÀÌÅ͸¦ À¯ÁöÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
ÀÌ·± Á¦ÇÑÀº ¾î¶² ¾îÇø®ÄÉÀ̼ÇÀÌ ÇÑ Æ÷¸äÀ» ÀÐ°í ´Ù¸¥ Æ÷¸äÀ¸·Î ¾µ ¶§¸¸
¹®Á¦ÀÌ´Ù. °¢ BFD ¹é¿£µå´Â °¡´ÉÇÑ ÇÑ ¸¹Àº µ¥ÀÌÅ͸¦ °ü¸®Çϴ åÀÓÀÌ ÀÖ°í
³»ºÎ BFD ±ÔÁØÇüÀº BFD Äھ ºÒÅõ¸íÇÑ ±¸Á¶Ã¼µéÀ» °¡Áö¸ç ¹é¿£µå¿¡¸¸
ÀͽºÆ÷Æ®µÈ´Ù. ¾î¶² ÆÄÀÏÀÌ ÇÑ Æ÷¸äÀ¸·Î ÀÐÈ÷¸é BFD ¿Í ¾îÇø®ÄÉÀ̼ÇÀ» À§ÇÑ
±ÔÁØÇüÀÌ »ý¼ºµÈ´Ù. µ¿½Ã¿¡ ¹é¿£µå´Â ±×·¸Áö ¾ÊÀ¸¸é À¯½ÇµÉ ¼ö ÀÖ´Â Á¤º¸µéÀ»
µû·Î ÀúÀåÇÑ´Ù. ±×¸®°í ³ª¼ µ¥ÀÌÅÍ°¡ ´Ù½Ã µ¿ÀÏÇÑ Æ÷¸äÀ¸·Î ¾²¿©Áö°Ô µÈ´Ù¸é
¹é¿£µå ·çƾÀº BFD Äھ ÀÇÇؼ Á¦°øµÈ ±ÔÁØÇü°ú ÀÌ°ÍÀÌ ´õ ÀÌÀü¿¡ ÁغñÇÑ
Á¤º¸¸¦ °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½ ¹é¿£µåµé°£¿¡ »ó´çÈ÷ ¸¹Àº °øÅëÁ¡µéÀÌ
Àֱ⠶§¹®¿¡ ºò-¿£µð¾È COFF ¿¡¼ ¸®Æ²-¿£µð¾È COFF À¸·Î, ¶Ç´Â
a.out
¿¡¼ b.out
À¸·Î ¸µÅ©Çϰųª º¹»çÇÒ ¶§ À¯½ÇµÇ´Â Á¤º¸°¡
¾ø´Ù. È¥ÀçµÈ Æ÷¸äµéÀÌ ¸µÅ©µÉ ¶§ ¸ñÀû¹°°ú ´Ù¸¥ Æ÷¸äÀ» °¡Áø ÆÄÀϵé·ÎºÎÅ͸¸
Á¤º¸°¡ À¯½ÇµÈ´Ù.
Á¤º¸ À¯½ÇÀÇ °¡´É¼ºÀÌ °¡Àå Å« °ÍÀº ±ÔÁØ Æ÷¸äÀ¸·Î ÀúÀåµÈ ¼Ò½º Æ÷¸äÀ¸·Î Á¦°øµÈ Á¤º¸¿Í ¸ñÀû Æ÷¸ä¿¡ ÀÇÇؼ ÇÊ¿äÇÑ Á¤º¸ °£ÀÇ µ¿ÀÏÇÑ ºÎºÐÀÌ °¡Àå ÀûÀ» ¶§ÀÌ´Ù. ±ÔÁØ Æû¿¡ ´ëÇÑ °£·«ÇÑ ¼³¸íÀº ¾î¶² Á¾·ùÀÇ µ¥ÀÌÅ͵éÀÌ º¯È¯ °úÁ¤À» °ÅÄ£ÈÄ º¸Á¸µÇ´Â °ÍÀ¸·Î ±â´ëÇÒ ¼ö Àִ°¡¸¦ ¾Ë¾Æ³¾ ¶§ µµ¿òÀ» ÁÙ ¼ö ÀÖ´Ù.
ZMAGIC
ÆÄÀÏÀº ¿ä±¸
ÆäÀÌ¡ °¡´É ºñÆ®¿Í ±â·Ï º¸È£ ÅؽºÆ® ºñÆ® ÁýÇÕ µÑ´Ù °¡Áö°Ô µÉ °ÍÀÌ´Ù.
Ÿ°ÙÀÇ ¹ÙÀÌÆ® ¼ø¼´Â ÆÄÀϺ° ±â¹ÝÀ¸·Î ÀúÀåµÇ±â ¶§¹®¿¡ ºò-¿£µð¾È°ú
¸®Æ²-¿£µð¾È ¿ÀºêÁ§Æ® ÆÄÀϵéÀº °³º°ÀûÀ¸·Î ÀúÀåµÉ ¼ö ÀÖ´Ù.
ld
´Â ¾Æ¹« ¹®Á¦ ¾øÀÌ ¾ÆÁÖ ´Ù¸¥ Æ÷¸äµéÀÇ ½É¹úµé
¸ðÀ½À§¿¡¼ ÀÛµ¿ÇÒ ¼ö ÀÖ´Ù.
ÀϹÝÀûÀÎ ±Û·Î¹ú ¹× ´Ü¼øÇÑ ·ÎÄà ½É¹úµéÀº Ãâ·ÂÇÒ ¶§ °ü¸®µÈ´Ù. ±×·¡¼ Ãâ·Â
ÆÄÀÏÀº(ÀÌ°ÍÀÇ Æ÷¸ä¿¡ »ó°ü¾øÀÌ) ÇÔ¼ö¿Í ±Û·Î¹ú, Á¤Àû, ±×¸®°í °ø¿ë º¯¼öµé¿¡
´ëÇÑ ½É¹ú Æ÷ÀÎÆÃÀ» °£Á÷ÇÒ °ÍÀÌ´Ù. ¾î¶² ½É¹ú Á¤º¸´Â °£Á÷ÇÒ ÇÊ¿ä°¡ ¾ø´Ù;
a.out
¿¡¼ ŸÀÔ Á¤º¸´Â ½É¹ú À̸§µé°ú ¸¶Âù°¡Áö·Î ½É¹ú Å×À̺í¾È¿¡
ÀúÀåµÈ´Ù. ÀÌ Á¤º¸´Â ´ëºÎºÐÀÇ COFF µð¹ö°Åµé¿¡ ´ëÇؼ Àǹ̰¡ ¾ø´Ù; ¸µÄ¿´Â
»ç¿ëÀÚµéÀÌ ÀÌ°ÍÀ» ¹ö¸®µµ·Ï ÇÏ´Â ¸í·ÉÇà ¿É¼ÇµéÀ» °®´Â´Ù.
½É¹ú¾È¿¡´Â ŸÀÔ Á¤º¸¸¦ Ç¥ÇöÇÑ ÇÑ ´Ü¾î°¡ Àֱ⠶§¹®¿¡ Æ÷¸äÀÌ ½É¹ú¾È¿¡ ÀÖ´Â
½É¹ú ŸÀÔ Á¤º¸¸¦ Áö¿øÇÑ´Ù¸é(¿¹¸¦ µé¾î¼ COFF, IEEE, Oasys) ±×¸®°í ±×
ŸÀÔÀÌ ÇÑ ´Ü¾î¾È¿¡ ³Ö¾îÁú¸¸Å ÃæºÐÈ÷ ´Ü¼øÇÏ´Ù¸é(ÁýÇÕ Ç¥ÇöÀ» Á¦¿ÜÇÑ °ÅÀÇ
¸ðµç °Í) ±× Á¤º¸´Â º¸Á¸µÉ °ÍÀÌ´Ù.
Go to the first, previous, next, last section, table of contents.