±¹³»µµ¼
Àü°øµµ¼/´ëÇб³Àç
°øÇаè¿
ÄÄÇ»ÅÍ°øÇÐ
Á¤°¡ |
30,000¿ø |
---|
27,000¿ø (10%ÇÒÀÎ)
1,500P (5%Àû¸³)
ÇÒÀÎÇýÅÃ | |
---|---|
Àû¸³ÇýÅà |
|
|
|
Ãß°¡ÇýÅÃ |
|
À̺¥Æ®/±âȹÀü
¿¬°üµµ¼(207)
»óÇ°±Ç
ÀÌ»óÇ°ÀÇ ºÐ·ù
Ã¥¼Ò°³
[¸®´ª½º ¹ÙÀ̳ʸ® ºÐ¼®]Àº ¸®´ª½º ¹ÙÀ̳ʸ® ºÐ¼®¿¡ ²À ÇÊ¿äÇÑ Áö½ÄÀ» ¿¹Á¦¸¦ ÅëÇØ ½±°Ô ¼³¸íÇÑ´Ù. ¸®´ª½º ȯ°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ±âº» µµ±¸¿Í ȯ°æ, ELF ¹ÙÀ̳ʸ® Æ÷¸ËºÎÅÍ ¸®´ª½º ÇÁ·Î¼¼½º ÃßÀû¿¡ ÇÊ¿äÇÑ ±â¼ú±îÁö ¸®´ª½º ¹ÙÀ̳ʸ® ºÐ¼®À» óÀ½ Á¢ÇÏ´Â µ¶ÀÚµéÀÌ ½±°Ô ¹è¿ï ¼ö ÀÖµµ·Ï ±¸¼ºµÅ ÀÖ´Ù. ¸®´ª½º ¹ÙÀ̳ʸ® º¸È£¿Í ¸Þ¸ð¸® Æ÷·»½Ä, Ä¿³Î ÇØÅ· ±â¼ú°ú °°ÀÌ ³À̵µ°¡ ³ôÀº ³»¿ëµµ ´Ù·ç°í ÀÖ¾î Çö¾÷¿¡¼ ºÐ¼® ¾÷¹«¸¦ ¼öÇàÇÏ´Â º¸¾È Àü¹®°¡µé¿¡°Ôµµ Å« µµ¿òÀÌ µÉ ¸¸ÇÑ Áöħ¼´Ù.
ÃâÆÇ»ç ¼Æò
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ELF ¹ÙÀ̳ʸ® Æ÷¸Ë ¿ø¸®
¡á À¯´Ð½º ¹ÙÀÌ·¯½º °¨¿°°ú ºÐ¼® ¹æ¹ý
¡á ¹ÙÀ̳ʸ® °È¿Í ¼ÒÇÁÆ®¿þ¾î ¾ÈƼ ÅÆÆÛ ¹æ¹ý
¡á ½ÇÇà ÆÄÀÏ°ú ÇÁ·Î¼¼½º ¸Þ¸ð¸® ÆÐÄ¡
¡á ¾Ç¼ºÄڵ忡¼ »ç¿ëÇÏ´Â ¾ÈƼ µð¹ö±ë ¹æ¹ý ¿ìȸ
¡á ½ÇÇà ÆÄÀÏ¿¡ ´ëÇÑ °í±Þ Æ÷·»½Ä ºÐ¼®
¡á C ¾ð¾î·Î ÀÛ¼ºµÈ ELF µµ±¸ °³¹ß
¡á ptrace¸¦ »ç¿ëÇÑ ¸Þ¸ð¸® Á¶ÀÛ
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î°Å³ª ¸®¹ö½º ¿£Áö´Ï¾î¶ó¸é ¸®´ª½º ¹ÙÀ̳ʸ® ºÐ¼®À» ¹è¿ï Çʿ伺À» ´À³¥ °ÍÀÌ´Ù. ÀÌ Ã¥Àº º¸¾È, Æ÷·»½Ä, ¾ÈƼ¹ÙÀÌ·¯½º ºÐ¾ß µî¿¡ °üÇÑ ´ëºÎºÐÀÇ Á¤º¸¸¦ Á¦°øÇÑ´Ù. ±×»Ó¸¸ ¾Æ´Ï¶ó º¸¾È Àü¹®°¡¿Í ½Ã½ºÅÛ ·¹º§ ¿£Áö´Ï¾î¿¡°Ôµµ µµ¿òÀÌ µÈ´Ù. C ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ¸®´ª½º ¸í·É¾î¿¡ ´ëÇØ Á¶±ÝÀÌ¶óµµ ¾Ë°í ÀÖ´Ù¸é ÇнÀÀ» ½ÃÀÛÇϱ⿡ ÃæºÐÇÏ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, ¡®¸®´ª½º ȯ°æ°ú µµ±¸¡¯¿¡¼´Â ¸®´ª½º ȯ°æ°ú ÀÌ Ã¥¿¡¼ »ç¿ëÇÒ µµ±¸¿¡ ´ëÇØ °£·«È÷ ¼³¸íÇÑ´Ù.
2Àå, ¡®ELF ¹ÙÀ̳ʸ® Æ÷¸Ë¡¯¿¡¼´Â À¯´Ð½º¿Í ¸®´ª½º ¸ðµÎ¿¡¼ ÁÖ·Î »ç¿ëµÇ´Â ELF ¹ÙÀ̳ʸ® Æ÷¸Ë ÄÄÆ÷³ÍÆ®¿¡ ´ëÇØ ´Ù·é´Ù.
3Àå, ¡®¸®´ª½º ÇÁ·Î¼¼½º ÃßÀû¡¯¿¡¼´Â ptrace ½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇØ ÇÁ·Î¼¼½º ¸Þ¸ð¸®¸¦ Àаí, ÄÚµå ÀÎÁ§¼ÇÀ» À§ÇØ ¸Þ¸ð¸®¿¡ ¾²´Â ¹æ¹ýÀ» ´Ù·é´Ù.
4Àå, ¡®ELF ¹ÙÀÌ·¯½º ±â¼ú: ¸®´ª½º/À¯´Ð½º ¹ÙÀÌ·¯½º¡¯¿¡¼´Â ¸®´ª½º ¹ÙÀÌ·¯½ºÀÇ °ú°Å, ÇöÀç, ¹Ì·¡¿¡ ´ëÇØ ´Ù·ç¸ç, °¢°¢ÀÇ ±â¹Ý ±â¼ú¿¡ ´ëÇØ ÀÚ¼¼È÷ »ìÆ캻´Ù.
5Àå, ¡®¸®´ª½º ¹ÙÀ̳ʸ® º¸È£¡¯¿¡¼´Â ±âº»ÀûÀÎ ELF ¹ÙÀ̳ʸ® º¸È£ ±â¼úÀ» ´Ù·é´Ù.
6Àå, ¡®¸®´ª½º ELF ¹ÙÀ̳ʸ® Æ÷·»½Ä¡¯¿¡¼´Â ELF ¿ÀºêÁ§Æ®ÀÇ ¾î´À ºÎºÐÀ» ºÐ¼®ÇØ¾ß ¹ÙÀÌ·¯½º, ¹éµµ¾î, Àǽɽº·¯¿î ÄÚµå ÀÎÁ§¼ÇÀ» ãÀ» ¼ö ÀÖ´ÂÁö ¾Ë¾Æº»´Ù.
7Àå, ¡®ÇÁ·Î¼¼½º ¸Þ¸ð¸® Æ÷·»½Ä¡¯¿¡¼´Â ½ÇÇà ÁßÀÎ ÇÁ·Î¼¼½º¿¡¼ ¾Ç¼ºÄÚµå, ¹éµµ¾î, Àǽɽº·¯¿î ÄÚµå ÀÎÁ§¼ÇÀ» ã±â À§Çؼ´Â ÇÁ·Î¼¼½º ÁÖ¼Ò °ø°£À» ¾î¶»°Ô ºÐ¼®ÇØ¾ß ÇÏ´ÂÁö ¹è¿î´Ù.
8Àå, ¡®ECFS: È®ÀåµÈ ÄÚ¾î ÆÄÀÏ ½º³À¼¦ ±â¼ú¡¯¿¡¼´Â ½ÉÃþÀûÀÎ ÇÁ·Î¼¼½º ¸Þ¸ð¸® Æ÷·»½Ä ±â¼úÀÎ ECFS ¿ÀǼҽº ÇÁ·ÎÁ§Æ®¿¡ ´ëÇØ ´Ù·é´Ù.
9Àå, ¡®¸®´ª½º /proc/kcore ºÐ¼®¡¯¿¡¼´Â /proc/kcore ºÐ¼®À» ÅëÇÑ ¸®´ª½º Ä¿³Î ¾Ç¼ºÄÚµå Áø´Ü ¹æ¹ý¿¡ ´ëÇØ ´Ù·é´Ù.
¡Ú ¿Å±äÀÌÀÇ ¸» ¡Ú
´ë´Ù¼öÀÇ Çö´ëÀÎÀÌ ¸ÅÀÏ ÀÎÅͳÝÀ» »ç¿ëÇØ ¸ÞÀÏÀ» ÀÛ¼ºÇÏ°í À¥ ¼ÇÎÀ» ÇÑ´Ù. À¥ ¼¹ö, ¸ÞÀÏ ¼¹ö µî¿¡ Á¢±ÙÇϱâ À§ÇØ DNS ¼¹ö·Î Äõ¸® Àü¼ÛÀÌ ¼ö½Ã·Î ÀÌ·ïÁø´Ù. ÀÎÅͳÝÀ» »ç¿ëÇÏ¸é¼ Á¢±ÙÇÏ°Ô µÇ´Â ¼¹öÀÇ Á¡À¯À²Àº ¸®´ª½º ¼¹ö°¡ À©µµ¿ì ¼¹ö¿¡ ÀüÇô µÚÁöÁö ¾Ê´Â´Ù. ÀÌ·± ÀÌÀ¯·Î ±¹³» »ç¿ëÀÚ¿¡°Ô Ä£¼÷ÇÑ À©µµ¿ì¸¸ÅÀ̳ª ¸®´ª½º¿¡ ´ëÇÑ ÀÌÇصµ ÇʼöÀûÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù.
ÇÏÁö¸¸ ¸®´ª½º ȯ°æ ³»ºÎ¿Í ½ÇÇà ÆÄÀÏ Çü½ÄÀÎ ELF ÆÄÀÏ Æ÷¸Ë°ú ¸®´ª½º ¾Ç¼º ÄÚµå ±â¼ú¿¡ ´ëÇØ ´Ù·ç´Â Ã¥Àº ¸¹Áö ¾Ê´Ù. ÀÌ Ã¥Àº ¸®´ª½ºÀÇ ELF Æ÷¸ËºÎÅÍ °í±Þ ÇØÅ· ±â¼ú ¹× ºÐ¼® ¹æ¹ý±îÁö ¿¹Á¦¸¦ ÅëÇØ ½±°Ô ¼³¸íÇÏ°í ÀÖ´Ù. ½ÇÁ¦·Î ÀÀ¿ë °¡´ÉÇÑ Äڵ带 ÇϳªÇϳª ½Ç½ÀÇÏ¸ç µû¶ó°¥ ¼ö ÀÖ´Ù´Â Á¡¿¡¼ ÀÌ Ã¥Àº ¸®´ª½º ¹ÙÀ̳ʸ® ºÐ¼®¿¡ ´ëÇÑ ÀÔ¹®¼·Î ÈǸ¢ÇÏ´Ù.
ÀÌ Ã¥ÀÇ ¿øÁ¦¸ñÀº ¡ºLearning Linux Binary Analysis¡»·Î, ¸®´ª½º¿¡¼ ÀÚÁÖ »ç¿ëµÇ´Â ±âº» µµ±¸¿Í ¸®´ª½º ȯ°æÀÇ ±¸¼º ¿ä¼Òµé¿¡ ´ëÇØ °£·«È÷ »ìÆ캸´Â °ÍÀ¸·Î ½ÃÀÛÇØ ¸®´ª½º ¹ÙÀ̳ʸ®¸¦ ºÐ¼®À» óÀ½ ½ÃÀÛÇÏ´Â »ç¶÷µéµµ ¾î·ÆÁö ¾Ê°Ô µû¶ó°¡µµ·Ï ¹è·ÁÇß´Ù. ¸®´ª½º ¹ÙÀ̳ʸ® ºÐ¼®ÀÌ ¾î¶² ¿ø¸®·Î ÁøÇàµÇ´ÂÁö ¼³¸íÇϸç ÇÁ·Î¼¼½º ¸Þ¸ð¸® ºÐ¼®¸¦ ÀÚÀ¯ÀÚÀç·Î ´Ù·ç´Â ¹æ¹ýÀ» ¿¹Á¦¸¦ ÅëÇØ ½±°Ô ¾Ë·ÁÁØ´Ù. ¸®´ª½º/À¯´Ð½º ¹ÙÀÌ·¯½ºÀÇ °ú°Å¿Í ÇöÀç, ¹Ì·¡¿¡ ´ëÇØ ³íÇÑ µÚ, ÀúÀÚ°¡ Á÷Á¢ °³¹ßÇÑ ºÐ¼® µµ±¸¸¦ ¼Ò°³ÇÏ¸ç ¸®´ª½º ¸Þ¸ð¸® Æ÷·»½Ä ºÐ¼® ¹æ¹ý±îÁö ´Ù·é´Ù. ±× ¿Ü ¸®´ª½º ¹ÙÀÌ·¯½º °¨¿° ±â¼ú, Ä¿³Î ÇØÅ·, ¿ª°øÇÐ °³³ä, ÇÖ ÆÐĪ, ¹ÙÀ̳ʸ® ¾ÏÈ£È µî ¸®´ª½º ¹ÙÀ̳ʸ®¸¦ ºÐ¼®ÇÏ´Â µ¥ ²À ¾Ë¾Æ¾ß ÇÒ »çÇ×À» ¿ä¾àÇØ µ¶Àڵ鿡°Ô ±ÍÁßÇÑ Áö½ÄÀ» Àü¼öÇÑ´Ù.
ÀúÀÚ´Â DEFCON°ú RuxCon µî ´Ù¼öÀÇ º¸¾È ÄÁÆÛ·±½º¿¡¼ ¹ßÇ¥¿Í °ÀǸ¦ Çß°í ºÐ¼®¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸¹Àº µµ±¸¸¦ °³¹ß ¹× ¹èÆ÷Çß´Ù. ÇÁ·¢, VXHeaven µî¿¡ À¯¿ëÇÑ ³í¹®À» °³Á¦Çß´Ù. Á÷Á¢ °³¹ßÇÑ µµ±¸ÀÇ µ¿ÀÛ ¿ø¸®¿Í »ç¿ë¹ýÀ» ¼³¸íÇÏ¿© ÀÎÅͳݿ¡¼ ½±°Ô ãÀ» ¼ö ¾ø´Â ³»¿ëµé±îÁöµµ ´Ù·ç°í ÀÖ´Ù. ¸®´ª½º ¹ÙÀ̳ʸ® ºÐ¼®¿¡ ´ëÇÑ ÀúÀÚÀÇ ¶Ù¾î³ ´É·ÂÀ» Àü¼ö¹ÞÀ» ¼ö ÀÖ´Â ÁÁÀº ±âȸ´Ù.
ÀÌ Ã¥Àº ¸®´ª½º ȯ°æ¿¡¼ °³¹ßÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î, ¼¹ö¸¦ ¿î¿µÇÏ´Â ½Ã½ºÅÛ °ü¸®ÀÚ, ¾Ç¼ºÄڵ带 ºÐ¼®ÇÏ°í ´ëÀÀÇÏ´Â º¸¾È ºÐ¼®°¡, ±× ¿Ü ÄÄÇ»ÅÍ º¸¾È¿¡ °ü½ÉÀÌ ¸¹Àº Çлýµé¿¡°Ô Å« µµ¿òÀÌ µÉ °ÍÀ̶ó È®½ÅÇÑ´Ù.
¸ñÂ÷
1Àå. ¸®´ª½º ȯ°æ°ú µµ±¸
__¸®´ª½º µµ±¸
____GDB
____GNU binutilsÀÇ Objdump
____GNU binutilsÀÇ Objcopy
____Strace
____Ltrace
____±âº» ltrace ¸í·É¾î
____ftrace
____readelf
____ERESI - ELF ¸®¹ö½º ¿£Áö´Ï¾î¸µ ½Ã½ºÅÛ ÀÎÅÍÆäÀ̽º
__À¯¿ëÇÑ µð¹ÙÀ̽º¿Í ÆÄÀÏ
____/proc/
____/proc/kcore
____/boot/System.map
____/proc/kallsyms
____/proc/iomem
____ECFS
__Linker¿Í °ü·ÃµÈ ȯ°æ º¯¼ö
____LD_PRELOAD ȯ°æ º¯¼ö
____LD_SHOW_AUXV ȯ°æ º¯¼ö
____¸µÄ¿ ½ºÅ©¸³Æ®
__¿ä¾à
2Àå. ELF ¹ÙÀ̳ʸ® Æ÷¸Ë
__ELF ÆÄÀÏ Çü½Ä
__ELF ÇÁ·Î±×·¥ Çì´õ
____PT_LOAD
____PT_DYNAMIC: µ¿Àû ¼¼±×¸ÕÆ®¿¡¼ »ç¿ëÇÏ´Â Phdr
____PT_NOTE
____PT_INTERP
____PT_PHDR
__ELF ¼½¼Ç Çì´õ
____.text ¼½¼Ç
____.rodata ¼½¼Ç
____.plt ¼½¼Ç
____.data ¼½¼Ç
____.bss ¼½¼Ç
____.got.plt ¼½¼Ç
____.dynsym ¼½¼Ç
____.dynstr ¼½¼Ç
____.rel.* ¼½¼Ç
____.hash ¼½¼Ç
____.symtab ¼½¼Ç
____.strtab ¼½¼Ç
____.shstrtab ¼½¼Ç
____.ctors¿Í .dtors ¼½¼Ç
__ELF ½Éº¼
____st_name
____st_value
____st_size
____st_other
____st_shndx
____st_info
__ELF Àç¹è¿
____Àç¹è¿ °¡´É ÄÚµå ÀÎÁ§¼ÇÀ» ÀÌ¿ëÇÑ ¹ÙÀ̳ʸ® ÆÐÄ¡
__ELF µ¿Àû ¸µÅ·
____º¸Á¶ º¤ÅÍ
____PLT¿Í GOT¿¡ ´ëÇÑ ÀÌÇØ
____µ¿Àû ¼¼±×¸ÕÆ® ´Ù½Ã º¸±â
__ELF Æļ ±¸Çö
__¿ä¾à
3Àå. ¸®´ª½º ÇÁ·Î¼¼½º ÃßÀû
__ptraceÀÇ Á߿伺
__ptrace ¿äû
____ptrace ¿äû Çü½Ä
__ÇÁ·Î¼¼½º ·¹Áö½ºÅÍ »óÅÂ¿Í Ç÷¡±×
__°£´ÜÇÑ ptrace ±â¹Ý µð¹ö°Å
____Tracer ÇÁ·Î±×·¥
__ÇÁ·Î¼¼½º ¾îÅÂÄ¡ ±â´ÉÀ» °®´Â °£´ÜÇÑ ptrace µð¹ö°Å
__°í±Þ ÇÔ¼ö ÃßÀû ¼ÒÇÁÆ®¿þ¾î
__ptrace¿Í Æ÷·»½Ä ºÐ¼®
____¸Þ¸ð¸®¿¡¼ ã¾Æ¾ß ÇÒ °Í
__ÇÁ·Î¼¼½º À̹ÌÁö º¹¿ø: ¸Þ¸ð¸®¿¡ ÀÖ´Â ½ÇÇà ÆÄÀϷκÎÅÍ
____ÇÁ·Î¼¼½º ½ÇÇà ÆÄÀÏ º¹¿ø µµÀü °úÁ¦
____½ÇÇà ÆÄÀÏ º¹¿øÀÇ ¹®Á¦Á¡
____¼½¼Ç Çì´õ Å×À̺í Ãß°¡
____ÇÁ·Î¼¼½º º¹¿ø ¾Ë°í¸®Áò
____32ºñÆ® Å×½ºÆ® ȯ°æ¿¡¼ Quenya¸¦ ÀÌ¿ëÇÑ ÇÁ·Î¼¼½º º¹¿ø
__ptrace¸¦ È°¿ëÇÑ ÄÚµå ÀÎÁ§¼Ç
__Áß¿äÇÏ°Ô »ìÆìºÁ¾ß ÇÒ °£´ÜÇÑ ¿¹Á¦
__code_inject µµ±¸ È°¿ë
__ptrace ¾ÈƼ µð¹ö±ë ±â¼ú
____³» ÇÁ·Î±×·¥ÀÌ ÃßÀûµÇ°í Àִ°¡
__¿ä¾à
4Àå. ELF ¹ÙÀÌ·¯½º ±â¼ú: ¸®´ª½º/À¯´Ð½º ¹ÙÀÌ·¯½º
__ELF ¹ÙÀÌ·¯½º ±â¼ú
__ELF ¹ÙÀÌ·¯½º ±â¼úÀÇ ¿¬±¸
____°¨¿°ÄÚµå´Â µ¶¸³ÀûÀ¸·Î Á¸ÀçÇØ¾ß ÇÑ´Ù
____¹®ÀÚ¿ ÀúÀå ¹®Á¦
____°¨¿°ÄÚµå ÀúÀåÀ» À§ÇÑ °ø°£ ã±â
____°¨¿°ÄÚµå·Î ½ÇÇà È帧 º¯°æÇϱâ
__ELF ¹ÙÀÌ·¯½º °¨¿° ¹æ¹ý
____Silvio Æеù °¨¿° ¹æ¹ý
____¸®¹ö½º ÅؽºÆ® ¼¼±×¸ÕÆ® °¨¿°
____µ¥ÀÌÅÍ ¼¼±×¸ÕÆ® °¨¿°
__PT_NOTE -> PT_LOAD º¯°æ °¨¿° ¹æ¹ý
____PT_NOTE -> PT_LOAD º¯°æ °¨¿° ¾Ë°í¸®Áò
__Á¦¾î È帧 °¨¿°½ÃÅ°±â
____´ÙÀÌ·ºÆ® PLT °¨¿°
____ÇÔ¼ö Æ®·¥ÆÞ¸°
____.ctors / .dtors ÇÔ¼ö Æ÷ÀÎÅÍ ¿À¹ö¶óÀÌÆÃ
____GOT: global offset table Æ÷ÀÌÁî´×, PLT/GOT ¸®´ÙÀÌ·º¼Ç
____µ¥ÀÌÅÍ ½ºÆ®·°Ã³ °¨¿°½ÃÅ°±â
____ÇÔ¼ö Æ÷ÀÎÅÍ ¿À¹ö¶óÀÌÆÃ
__ÇÁ·Î¼¼½º ¸Þ¸ð¸® ¹ÙÀÌ·¯½º¿Í ·çƮŶ: ¸®¸ðÆ® ÄÚµå ÀÎÁ§¼Ç ±â¼ú
____°øÀ¯ ¶óÀ̺귯¸® ÀÎÁ§¼Ç: .so ÀÎÁ§¼Ç / ET_DYN ÀÎÁ§¼Ç
____LD_PRELOAD¸¦ ÀÌ¿ëÇÑ .so ÀÎÁ§¼Ç
____open() / mmap() ¼Ð Äڵ带 ÀÌ¿ëÇÑ .so ÀÎÁ§¼Ç
____dlopen() ¼Ð Äڵ带 ÀÌ¿ëÇÑ .so ÀÎÁ§¼Ç
____VDSO Á¶ÀÛÀ» ÀÌ¿ëÇÑ .so ÀÎÁ§¼Ç
____ÅؽºÆ® ¼¼±×¸ÕÆ® ÄÚµå ÀÎÁ§¼Ç
____½ÇÇà ÆÄÀÏ ÀÎÁ§¼Ç
____Àç¹è¿ ÄÚµå ÀÎÁ§¼Ç: ET_REL ÀÎÁ§¼Ç
__µð¹ö±ë°ú ÆÐÅ· ±â¼ú
____PTRACE_TRACEME 񃬣
____SIGTRAP Çڵ鷯 ±â¼ú
____/proc/self/status 񃬣
____ÄÚµå ³µ¶È ±â¼ú
____½ºÆ®¸µ Å×ÀÌºí º¯°æ ±â¼ú
__ELF ¹ÙÀÌ·¯½º ŽÁö°ú Ä¡·á
__¿ä¾à
5Àå. ¸®´ª½º ¹ÙÀ̳ʸ® º¸È£
__ELF ¹ÙÀ̳ʸ® ÆÐÄ¿
__Stub ¸ÞÄ¿´ÏÁò°ú Userland exec
____ÇÁ·ÎÅØÅÍ ¿¹Á¦
__½ºÅÓ¿¡¼ ¼öÇàÇÏ´Â ´Ù¸¥ ÀÛ¾÷µé
__±âÁ¸ ELF ¹ÙÀ̳ʸ® ÇÁ·ÎÅØÅÍ
____DacryFile(Grugq, 2001³â)
____Burneye(Scut, 2002³â)
____Shiva(Neil Mehta¿Í Shawn Clowes, 2003³â)
____Maya's Veil(Ryan O'Neill, 2014³â)
__Maya°¡ Àû¿ëµÈ ¹ÙÀ̳ʸ® ´Ù¿î·Îµå
__¹ÙÀ̳ʸ® º¸È£¸¦ À§ÇÑ ¾ÈƼ µð¹ö±ë
__¿¡¹Ä·¹ÀÌ¼Ç ¹æ¾îÇϱâ
____Syscall Å×½ºÆÃÀ» ÅëÇÑ ¿¡¹Ä·¹ÀÌ¼Ç Å½Áö
____¿¡¹Ä·¹ÀÌÅÍ CPU ºÒÀÏÄ¡¸¦ ÀÌ¿ëÇÑ Å½Áö
____¸í·É¾î Áö¿¬ üũ
__³µ¶È ¹æ¹ý
__Á¦¾î È帧 ¹«°á¼º º¸È£Çϱâ
____ptrace ±â¹Ý °ø°Ý
____Ãë¾àÁ¡ ±â¹Ý °ø°Ý
__Ãß°¡ ÀÚ·á
__¿ä¾à
6Àå. ¸®´ª½º ELF ¹ÙÀ̳ʸ® Æ÷·»½Ä
__¿£Æ®¸® Æ÷ÀÎÆ® º¯Á¶ Áø´Ü
__ÄÁÆ®·Ñ Ç÷οì ÇÏÀÌÀçÅ· Áø´Ü
____.ctors(.int_array) ¼½¼Ç ÆÐÄ¡
____PLT/GOT ÈÄÅ· ŽÁö
____ÇÔ¼ö Æ®·¥ÆÞ¸° Áø´Ü
__±â»ý ÄÚµåÀÇ Æ¯¼º
__DLL ÀÎÁ§¼Ç Æ®·¹À̽ºÀÇ µ¿Àû ¼¼±×¸ÕÆ® Áø´Ü
__¸®¹ö½º-ÅؽºÆ® Æеù °¨¿° Áø´Ü
__ÅؽºÆ® ¼¼±×¸ÕÆ® Æеù °¨¿° Áø´Ü
__º¸È£µÈ ¹ÙÀ̳ʸ® Áø´Ü
____º¸È£µÈ ¹ÙÀ̳ʸ® ºÐ¼®
__IDA Pro
__¿ä¾à
7Àå. ÇÁ·Î¼¼½º ¸Þ¸ð¸® Æ÷·»½Ä
__ÇÁ·Î¼¼½º´Â ¾î¶»°Ô ±¸¼ºµÅ Àִ°¡
____½ÇÇà °¡´ÉÇÑ ¸Þ¸ð¸® ¸ÅÇÎ
____ÇÁ·Î±×·¥ Èü
____°øÀ¯ ¶óÀ̺귯¸® ¸ÅÇÎ
____½ºÅÃ, VDSO, VSYSCALL
__ÇÁ·Î¼¼½º ¸Þ¸ð¸® °¨¿°
____ÇÁ·Î¼¼½º °¨¿° µµ±¸
____ÇÁ·Î¼¼½º °¨¿° ±â¼ú
__ET_DYN ÀÎÁ§¼Ç Áø´Ü
____Azazel »ç¿ëÀÚ °ø°£ ·çƮŶ Áø´Ü
____ÇÁ·Î¼¼½º ÁÖ¼Ò °ø°£ ¸ÅÇÎ È®ÀÎ
____½ºÅÿ¡¼ LD_PRELOAD È®ÀÎ
____PLT/GOT ÈÄÅ· Áø´Ü
____ET_DYN ÀÎÁ§¼Ç ÀÚ¼¼È÷ º¸±â
____VDSO º¯Á¶
____°øÀ¯ ¿ÀºêÁ§Æ® ·Îµù: Á¤»óÀûÀÎ ¹æ¹ý°ú ºñÁ¤»óÀûÀÎ ¹æ¹ý
____.so ÀÎÁ§¼Ç Áø´Ü ÈÞ¸®½ºÆ½
____PLT/GOT ÈÄÅ· Áø´Ü µµ±¸
__¸®´ª½º ELF ÄÚ¾î ÆÄÀÏ
____ÄÚ¾î ÆÄÀÏ ºÐ¼®: Azazel ·çƮŶ
__¿ä¾à
8Àå. ECFS: È®ÀåµÈ ÄÚ¾î ÆÄÀÏ ½º³À¼¦ ±â¼ú
__¿ª»ç
__ECFS öÇÐ
__ECFS ¼Ò°³
____ECFS¸¦ ÄÚ¾î Çڵ鷯 Ç÷¯±×ÀÎÀ¸·Î »ç¿ëÇϱâ
____ÇÁ·Î¼¼½º¸¦ Á¾·áÇÏÁö ¾Ê°í ECFS ½º³À¼¦ »ý¼º
__libecfs: ECFS ÆÄÀÏ ÆÄ½Ì ¶óÀ̺귯¸®
__readecfs
__ECFS¸¦ ÀÌ¿ëÇÑ °¨¿°µÈ ÇÁ·Î¼¼½º ºÐ¼®
____¼÷ÁÖ ÇÁ·Î¼¼½º °¨¿°
____ECFS ½º³À¼¦ »ý¼º ¹× ºÐ¼®
____readecfs¸¦ ÀÌ¿ëÇÑ ±â»ý ÄÚµå ÃßÃâ
____Azazel ·çƮŶ ºÐ¼®
__ECFS ·¹ÆÛ·±½º °¡À̵å
____ECFSÀ» ÀÌ¿ëÇÑ ½Éº¼ Å×À̺í À籸¼º
____ECFS ¼½¼Ç Çì´õ
____ECFS ÆÄÀÏÀ» ±âº» ÄÚ¾î ÆÄÀÏ·Î »ç¿ëÇϱâ
____libecfs API »ç¿ë¹ý
__ECFS¸¦ ÀÌ¿ëÇÑ ÇÁ·Î¼¼½º µÇ»ì¸®±â
__ECFS ´õ »ìÆ캸±â
__¿ä¾à
9Àå. ¸®´ª½º /proc/kcore ºÐ¼®
__¸®´ª½º Ä¿³Î Æ÷·»½Ä°ú ·çƮŶ
__Stock ¹öÀüÀÇ vmlinux´Â ½Éº¼À» °¡Áö°í ÀÖÁö ¾Ê´Ù
____kdress¸¦ ÀÌ¿ëÇÑ vmlinux ºôµå
__/proc/kcore¿Í GDB »ìÆ캸±â
____sys_call_table À§Ä¡ Á¶È¸ ¿¹Á¦
__sys_call_table Á÷Á¢ º¯Á¶
____sys_call_table º¯Á¶ Áø´Ü
____Ä¿³Î ÇÔ¼ö Æ®·¥ÆÞ¸° ±â¹ý
____ÇÔ¼ö Æ®·¥ÆÞ¸° ¿¹Á¦
____ÇÔ¼ö Æ®·¥ÆÞ¸° Áø´Ü
____ÀÎÅÍ·´Æ® Çڵ鷯 ÆÐÄ¡ Áø´Ü
__Kprobe ·çƮŶ
____Kprobe ·çƮŶ Áø´Ü
__DRR(µð¹ö±× ·¹Áö½ºÅÍ ·çƮŶ)
____DRR Áø´Ü
__VFS ·¹ÀÌ¾î ·çƮŶ
____VFS ·¹ÀÌ¾î ·çƮŶ Áø´Ü
__±× ¿ÜÀÇ Ä¿³Î °¨¿° ±â¼ú
__vmlinux¿Í .altinstructions ÆÐÄ¡
____.altinstructions¿Í .altinstr_replace
____arch/x86/include/asm/alternative.h »ìÆ캸±â
____textify¸¦ ÀÌ¿ëÇÑ ÄÚµå Á¤ÇÕ¼º °ËÁõ
____textify¸¦ ÀÌ¿ëÇÑ sys_call_table °ËÁõ ¿¹Á¦
__taskverse¸¦ ÀÌ¿ëÇÑ ÇÁ·Î¼¼½º Àº´Ð Áø´Ü
____taskverse 񃬣
__°¨¿°µÈ LKM: Ä¿³Î µå¶óÀ̹ö
____¹æ¹ý 1. ½Éº¼ ÇÏÀÌÀçÅ·
____¹æ¹ý 2. ÇÔ¼ö ÇÏÀÌÀçÅ·
____°¨¿°µÈ LKM Áø´Ü
__/dev/kmem°ú /dev/mem¿¡ ´ëÇØ
__/dev/mem
____FreeBSDÀÇ /dev/kmem
__K-ecfs: Ä¿³Î ECFS
____kernel-ecfs ÆÄÀÏ »ìÆ캸±â
__Ä¿³Î ÇØÅ·
____¸®¹ö½º ¿£Áö´Ï¾î¸µ°ú µð¹ö±ë
____°í±Þ Ä¿³Î ÇØÅ· ¹× µð¹ö±ë ÀÎÅÍÆäÀ̽º
____ÀÌ Ã¥¿¡¼ ¾ð±ÞÇÑ ³í¹®
__¿ä¾à
ÀúÀÚ¼Ò°³
»ý³â¿ùÀÏ | - |
---|
ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.
»ý³â¿ùÀÏ | - |
---|
ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.
ÁÖ°£·©Å·
´õº¸±â»óÇ°Á¤º¸Á¦°ø°í½Ã
À̺¥Æ® ±âȹÀü
ÀÌ »óÇ°ÀÇ ½Ã¸®Áî
(ÃÑ 208±Ç / ÇöÀ籸¸Å °¡´Éµµ¼ 208±Ç)
Àü°øµµ¼/´ëÇб³Àç ºÐ¾ß¿¡¼ ¸¹Àº ȸ¿øÀÌ ±¸¸ÅÇÑ Ã¥
ÆǸÅÀÚÁ¤º¸
»óÈ£ |
(ÁÖ)±³º¸¹®°í |
---|---|
´ëÇ¥ÀÚ¸í |
¾Èº´Çö |
»ç¾÷ÀÚµî·Ï¹øÈ£ |
102-81-11670 |
¿¬¶ôó |
1544-1900 |
ÀüÀÚ¿ìÆíÁÖ¼Ò |
callcenter@kyobobook.co.kr |
Åë½ÅÆǸž÷½Å°í¹øÈ£ |
01-0653 |
¿µ¾÷¼ÒÀçÁö |
¼¿ïƯº°½Ã Á¾·Î±¸ Á¾·Î 1(Á¾·Î1°¡,±³º¸ºôµù) |
±³È¯/ȯºÒ
¹ÝÇ°/±³È¯ ¹æ¹ý |
¡®¸¶ÀÌÆäÀÌÁö > Ãë¼Ò/¹ÝÇ°/±³È¯/ȯºÒ¡¯ ¿¡¼ ½Åû ¶Ç´Â 1:1 ¹®ÀÇ °Ô½ÃÆÇ ¹× °í°´¼¾ÅÍ(1577-2555)¿¡¼ ½Åû °¡´É |
---|---|
¹ÝÇ°/±³È¯°¡´É ±â°£ |
º¯½É ¹ÝÇ°ÀÇ °æ¿ì Ãâ°í¿Ï·á ÈÄ 6ÀÏ(¿µ¾÷ÀÏ ±âÁØ) À̳»±îÁö¸¸ °¡´É |
¹ÝÇ°/±³È¯ ºñ¿ë |
º¯½É ȤÀº ±¸¸ÅÂø¿À·Î ÀÎÇÑ ¹ÝÇ°/±³È¯Àº ¹Ý¼Û·á °í°´ ºÎ´ã |
¹ÝÇ°/±³È¯ ºÒ°¡ »çÀ¯ |
·¼ÒºñÀÚÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¼Õ½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì ·¼ÒºñÀÚÀÇ »ç¿ë, Æ÷Àå °³ºÀ¿¡ ÀÇÇØ »óÇ° µîÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·º¹Á¦°¡ °¡´ÉÇÑ »óÇ° µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì ·½Ã°£ÀÇ °æ°ú¿¡ ÀÇÇØ ÀçÆǸŰ¡ °ï¶õÇÑ Á¤µµ·Î °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀÇ ¼ÒºñÀÚº¸È£¿¡ °üÇÑ ¹ý·üÀÌ Á¤ÇÏ´Â ¼ÒºñÀÚ Ã»¾àöȸ Á¦ÇÑ ³»¿ë¿¡ ÇØ´çµÇ´Â °æ¿ì |
»óÇ° Ç°Àý |
°ø±Þ»ç(ÃâÆÇ»ç) Àç°í »çÁ¤¿¡ ÀÇÇØ Ç°Àý/Áö¿¬µÉ ¼ö ÀÖÀ½ |
¼ÒºñÀÚ ÇÇÇغ¸»ó |
·»óÇ°ÀÇ ºÒ·®¿¡ ÀÇÇÑ ±³È¯, A/S, ȯºÒ, Ç°Áúº¸Áõ ¹× ÇÇÇغ¸»ó µî¿¡ °üÇÑ »çÇ×Àº¼ÒºñÀÚºÐÀïÇØ°á ±âÁØ (°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ ÁØÇÏ¿© ó¸®µÊ ·´ë±Ý ȯºÒ ¹× ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó±Ý Áö±Þ Á¶°Ç, ÀýÂ÷ µîÀº ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀǼҺñÀÚ º¸È£¿¡ °üÇÑ ¹ý·ü¿¡ µû¶ó ó¸®ÇÔ |
(ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º´Â ȸ¿ø´ÔµéÀÇ ¾ÈÀü°Å·¡¸¦ À§ÇØ ±¸¸Å±Ý¾×, °áÁ¦¼ö´Ü¿¡ »ó°ü¾øÀÌ (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º¸¦ ÅëÇÑ ¸ðµç °Å·¡¿¡ ´ëÇÏ¿©
(ÁÖ)KGÀ̴Ͻýº°¡ Á¦°øÇÏ´Â ±¸¸Å¾ÈÀü¼ºñ½º¸¦ Àû¿ëÇÏ°í ÀÖ½À´Ï´Ù.
¹è¼Û¾È³»
±³º¸¹®°í »óÇ°Àº Åùè·Î ¹è¼ÛµÇ¸ç, Ãâ°í¿Ï·á 1~2Àϳ» »óÇ°À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä »óÇ°À» ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
±ººÎ´ë, ±³µµ¼Ò µî ƯÁ¤±â°üÀº ¿ìü±¹ Åù踸 ¹è¼Û°¡´ÉÇÕ´Ï´Ù.
¹è¼Ûºñ´Â ¾÷ü ¹è¼Ûºñ Á¤Ã¥¿¡ µû¸¨´Ï´Ù.