1606, 1/81 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   wolverine
   [ÀÚÀÛ] C °­ÁÂ [2] - Memory Allocation

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=2034 [º¹»ç]


À̹ø ÀåÀº ¸Þ¸ð¸® ¿µ¿ª¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

¸Þ¸ð¸® ¿µ¿ªÀº 1Àå¿¡¼­ ¼³¸íÇÑ linker command file¿¡ ÀÇÇØ¼­ ¼³Á¤µÈ´Ù.
°³¹ßÀÚ´Â
- ÇöÀç ½ÇÇà ÆÄÀÏÀÌ ±¸µ¿µÉ systemÀÇ ¹°¸®ÀûÀÎ memory´Â ¾î¶»°Ô ±¸¼ºµÇ¾î ÀÖ´ÂÁö
- BuildµÉ ÄÚµå¿Í º¯¼ö, stack°ú heapÀº ¾î¶»°Ô ½ÇÁ¦ memory¿¡ ÇÒ´çÀ» ÇÒ °ÍÀÎÁö
¸¦ linker command file¿¡ Á¤ÇØÁø ¹®¹ý¿¡ µû¶ó¼­ Á¤ÀÇÇϰí,
À̰ÍÀ» linkerÀÇ ÀÔ·ÂÀ¸·Î ´øÁ® ÁÖ°Ô µÈ´Ù.

Linker´Â Àü´Þ¹ÞÀº linker command fileÀ» ÇØµ¶ÇÏ¿©¼­,
ÇÊ¿äÇÑ address¸¦ °è»êÇϰí ÇÒ´çÇÑ´Ù.
À̰ÍÀ» Compile time(¶Ç´Â Build time) memory allocation À̶ó°í ÇÑ´Ù.

Dynamic memory allocationÀ» Á¦¿ÜÇÑ c code »óÀÇ ¸ðµç ÄÚµå¿Í º¯¼öµéÀÇ
address´Â ÀÌó·³ linker¿¡ ÀÇÇØ¼­ build time¿¡ °áÁ¤ÀÌ µÇ¸ç,
linker command fileÀº build time memory allocationÀ» À§ÇØ
ÇÊ¿äÇÑ Á¤º¸¸¦ linker¿¡ ÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù.

Note:
malloc°ú °°Àº dynamic memory allocationÀº
run time memory allocationÀ̶ó°í ºÎ¸¥´Ù.

´ëºÎºÐÀÇ Compiler Tool Chain¿¡¼­ ´ÙÀ½°ú °°Àº default ¿µ¿ªÀÌ Á¤ÀǵǾî ÀÖÀ¸¸ç,
Ưº°ÇÑ Áö½Ã°¡ ¾ø´Â °æ¿ì c code´Â ¾Æ·¡¿Í °°Àº default ¿µ¿ª¿¡ ÇÒ´çÀÌ µÈ´Ù.
(Tool Chain¸¶´Ù À̸§Àº ¾à°£¾¿ ´Ù¸¦ ¼ö ÀÖÁö¸¸, ±âº»ÀûÀÎ °³³äÀº µ¿ÀÏÇÔ)

# code(¶Ç´Â text) ¿µ¿ª
- compileµÈ instruction(machine code)°¡ ÀúÀåµÇ´Â ¿µ¿ª

# data ¿µ¿ª
- ÃʱâÈ­µÈ Àü¿ª º¯¼ö°¡ ÇÒ´çµÇ´Â ¿µ¿ª

# bss ¿µ¿ª
- ÃʱâÈ­µÇÁö ¾ÊÀº Àü¿ª º¯¼ö°¡ ÇÒ´çµÇ´Â ¿µ¿ª

# stack ¿µ¿ª
- ÇÔ¼ö call ½Ã¿¡ »ç¿ëµÇ´Â snapshot/context ÀúÀåÀ» À§ÇÑ ¿µ¿ª
  Áö¿ªº¯¼ö ¶ÇÇÑ stack¿¡ ÇÒ´çÀÌ µÊ

# heap ¿µ¿ª
- malloc¿¡ ÀÇÇÑ dynamic memory allocationÀ» À§ÇÑ ¿µ¿ª


linker command fileÀº ÀÌ·¯ÇÑ ¿µ¿ªÀ» ½ÇÁ¦ memoryÀÇ ¾î¶² ºÎºÐ¿¡
¼³Á¤À» ÇÒ °ÍÀÎÁö linker¿¡ ¾Ë·ÁÁØ´Ù.
¿¹¸¦ µé¸é,
code ¿µ¿ªÀº 0x100000 ¹øÁöºÎÅÍ 1Mbyte,
data ¿µ¿ªÀº 0x200000 ¹øÁöºÎÅÍ 2Mbyte,
bss  ¿µ¿ªÀº 0x300000 ¹øÁöºÎÅÍ 512Kbyte,
stack¿µ¿ªÀº 0x400000 ¹øÁöºÎÅÍ 512Kbyte,
heap ¿µ¿ªÀº 0x500000 ¹øÁöºÎÅÍ 2Mbyte,
¿Í °°ÀÌ °³¹ßÀÚ°¡ ¿øÇÏ´Â µ¥·Î ÁöÁ¤ÀÌ °¡´ÉÇÏ´Ù.
linker´Â ÀÌ·¯ÇÑ linker command fileÀ» ÂüÁ¶Çؼ­,
ÇØ´ç ¿µ¿ªÀ¸·Î ÄÚµå ¹× º¯¼öµéÀ» ÇÒ´çÇϰí,
Á¢±Ù(access, Áï read/write)¿¡ ÇÊ¿äÇÑ Àý´ëÀûÀÎ address¸¦
°è»êÇÏ¿© ±â°è¾î(Machine Instruction)¿¡ ÇÊ¿äÇÑ ¾îµå·¹½º¸¦
ÄÚµå»ó¿¡ ½É¾îÁÖ°Ô µÈ´Ù.


À̹ø Àå¿¡¼­´Â compiler/linker°¡ ¾î¶»°Ô memory¿¡
º¯¼ö ¹× Äڵ带 ÇÒ´çÇÏ´ÂÁö ¾Ë¾Æº¸¾Ò½À´Ï´Ù.
À̹ø °­ÀǸ¦ ÅëÇØ¼­ Å« °³³ä¸¸ Àâ°í,
³ªÁß¿¡ ±¸Ã¼ÀûÀÎ coding/debuggingÀ» Çϸ鼭,
½ÇÁ¦ º¯¼ö¿Í ÄÚµåÀÇ memory ÁÖ¼Ò¸¦ Çѹø µû¶ó°¡ º¸½Ã¸é,
Á¶±Ý ´õ ±× ½Çü¸¦ ÀÌÇØÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½ Àå¿¡¼­´Â ±¸Ã¼ÀûÀÎ ¿¹Á¦ code¸¦ ÅëÇØ¼­
½ÇÁ¦ º¯¼öµéÀÌ ¾î¶»°Ô memory¿¡ ÇÒ´çÀÌ µÇ´ÂÁö ¾Ë¾Æº¸°Ú½À´Ï´Ù.

Best Regqrds,
Wolverine

  Hit : 8361     Date : 2012/07/05 09:48



    
show1546 °­ÀÇ Á¤¸» °¨»çÇÕ´Ï´Ù. Á¦°¡ ¿äÁò ¹öÆÛ¿À¹öÇÃ·Î¿ì °øºÎ¸¦ Çϰí ÀÖ½À´Ï´Ù. ÀÌ ºÐ¾ß °øºÎ¿¡ µµ¿òÀÌ ¸¹ÀÌ µÉ°Í °°½À´Ï´Ù. ÇʱâÇÏ°í °©´Ï´Ù ¤¾¤¾ ½Ã°£ÀÌ Á» °É·È³×¿ä ÇʱâÇϸ鼭 º¸´Ùº¸´Ï! Á¤¸»°¨»çÇÕ´Ï´Ù! 2012/07/17  
     [°øÁö] °­Á¸¦ ¿Ã¸®½Ç ¶§´Â ¸»¸Ó¸®¸¦ ´Þ¾ÆÁÖ¼¼¿ä^¤Ñ^ [29] ¸Û¸Û 02/27 20251
1605   ARP ½ºÇªÇÎ - Part.1 -     ÇØÅ·ÀßÇϰí½Í´Ù
04/20 327
1604   http ½º´ÏÆÛ ±¸Çö     ÇØÅ·ÀßÇϰí½Í´Ù
04/20 275
1603   pcapÀ¸·Î ÆÐŶ ½º´ÏÆÛ ±¸ÇöÇϱ⠠   ÇØÅ·ÀßÇϰí½Í´Ù
04/20 287
1602   ÇØÄ¿½ºÄ𠸸ȭÀÇ ÀÚµ¿À¸·Î ½ºÄµÇÏ´Â ÇÁ·Î±×·¥     ÇØÅ·ÀßÇϰí½Í´Ù
02/18 727
1601   ½Ã½ºÅÛ ÄÝ ÃßÀû È®ÀåÆÇ[2]     ÇØÅ·ÀßÇϰí½Í´Ù
01/19 884
1600   °£´ÜÇÑ ½Ã½ºÅÛ ÄÝ ÃßÀû ÇÁ·Î±×·¥ ¸¸µé±â     ÇØÅ·ÀßÇϰí½Í´Ù
01/18 874
1599   [overthewire.org] - leviathan1     ÇØÅ·ÀßÇϰí½Í´Ù
01/14 1202
1598   [overthewire.org] - leviathan0     ÇØÅ·ÀßÇϰí½Í´Ù
01/14 935
1597   [Write Up] Crypto Cat's CTF 2024 - BabyFlow     ÇØÅ·ÀßÇϰí½Í´Ù
12/29 905
1596   [pwnable.kr] bof     ÇØÅ·ÀßÇϰí½Í´Ù
12/25 949
1595   [pwnable.kr] Shellshock[1]     ÇØÅ·ÀßÇϰí½Í´Ù
11/23 1034
1594   ShellshockÀÇ ±âº» ¿ä¾à     ÇØÅ·ÀßÇϰí½Í´Ù
11/23 1012
1593   [pwnable.kr] fd     ÇØÅ·ÀßÇϰí½Í´Ù
11/23 958
1592   VPNÀÌ ¿¬°áµÇ¾ú´Ù°¡ µµÁß¿¡ ²¨µµ À¥ ºê¶ó¿ìÀú»ó¿¡¼­ À¯ÁöµÇ´Â ÀÌÀ¯     ÇØÅ·ÀßÇϰí½Í´Ù
11/22 745
1591   ÇØÄ¿µéÀÌ ÇØÅ·½Ã »ç¿ëÇÏ´Â µð·ºÅ丮 °ø°£[1]     ÇØÅ·ÀßÇϰí½Í´Ù
11/22 840
1590   Keyboard Hooking -part2 - (Python3 ver)     ÇØÅ·ÀßÇϰí½Í´Ù
11/20 771
1589   [Windows API] Keyboard Hooking     ÇØÅ·ÀßÇϰí½Í´Ù
11/20 613
1588   [pwnable.kr] cmd1 °ø·«     ÇØÅ·ÀßÇϰí½Í´Ù
10/23 823
1587   netdiscover ÆÄÀ̽ãÀ¸·Î ±¸ÇöÇϱ⠠   ÇØÅ·ÀßÇϰí½Í´Ù
08/13 967
1 [2][3][4][5][6][7][8][9][10]..[81]

Copyright 1999-2025 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org