- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > º¸¾È/ÇØÅ· > Ghidra¸¦ È°¿ëÇÑ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÔ¹®[¿¡ÀÌÄÜÃâÆÇ]
Ghidra¸¦ È°¿ëÇÑ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÔ¹® - A. P. µ¥À̺ñµå ÁöÀ½, ÀåÁö³ª ¿Å±è
¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÔ¹®ÀÚ¸¦ À§ÇÑ Ghidra °¡À̵åºÏÀÌ´Ù. GhidraÀÇ ¿ª»ç, ±¸Á¶, ±âº»ÀûÀÎ ±â´É, È®Àå±â´É °³¹ß, ½ºÅ©¸³Æ® µî GhidraÀÇ ¸ðµç °ÍÀ» ¼Ò°³ÇÑ´Ù. Ghidra·Î ½ÇÁ¦ »ç¿ëµÆ´ø ¾Ç¼ºÄڵ带 ºÐ¼®Çϸç ÁÖ¿ä ±â´ÉÀ» ¾Ë¾Æº»´Ù.
¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÔ¹®ÀÚ¸¦ À§ÇÑ Ghidra °¡À̵åºÏÀÌ´Ù. GhidraÀÇ ¿ª»ç, ±¸Á¶, ±âº»ÀûÀÎ ±â´É, È®Àå±â´É °³¹ß, ½ºÅ©¸³Æ® µî GhidraÀÇ ¸ðµç °ÍÀ» ¼Ò°³ÇÑ´Ù. Ghidra·Î ½ÇÁ¦ »ç¿ëµÆ´ø ¾Ç¼ºÄڵ带 ºÐ¼®Çϸç ÁÖ¿ä ±â´ÉÀ» ¾Ë¾Æº»´Ù.
ÀúÀÚ: A. P. µ¥À̺ñµå ÁöÀ½, ÀåÁö³ª ¿Å±è
1ºÎ. Ghidra ¼Ò°³
1Àå. Ghidra ½ÃÀÛ
__±â¼úÀû ¿ä±¸ »çÇ×
__À§Å°¸®Å©½º Vault 7
____NSA ¸±¸®½º
__IDA ¹× ±âŸ ¸¹Àº °æÀï¾÷ü ´ëºñ Ghidra
__Ghidra °³¿ä
____Ghidra ¼³Ä¡
____GhidraÀÇ Æ¯Â¡ °³¿ä
__¿ä¾à
__Áú¹®
2Àå. Ghidra ½ºÅ©¸³Æ®¸¦ ÅëÇÑ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷ ÀÚµ¿È
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ ½ºÅ©¸³Æ® »ç¿ë°ú Àû¿ë
__½ºÅ©¸³Æ® Ŭ·¡½º
__½ºÅ©¸³Æ® °³¹ß
__¿ä¾à
__Áú¹®
3Àå. Ghidra µð¹ö±× ¸ðµå
__±â¼úÀû ¿ä±¸ »çÇ×
__Ghidra °³¹ß ȯ°æ¼³Á¤
__¼ÒÇÁÆ®¿þ¾î ¿ä±¸ »çÇ× °³¿ä
____ÀÚ¹Ù JDK ¼³Ä¡
____ÀÌŬ¸³½º IDE ¼³Ä¡
____PyDev ¼³Ä¡
____GhidraDev ¼³Ä¡
__Ghidra ÄÚµå¿Í Ghidra ½ºÅ©¸³Æ® µð¹ö±ë
____ÀÌŬ¸³½º¿¡¼ Ghidra ½ºÅ©¸³Æ® µð¹ö±ë
____ÀÌŬ¸³½º¿¡¼ Ghidra ±¸¼º ¿ä¼Ò µð¹ö±ë
__Ghidra RCE Ãë¾àÁ¡
____Ghidra RCE Ãë¾àÁ¡ ¼³¸í
____Ghidra RCE Ãë¾àÁ¡ °ø°Ý
____Ghidra RCE Ãë¾àÁ¡ ¼öÁ¤
____Ãë¾àÇÑ ÄÄÇ»ÅÍ Ã£±â
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
4Àå. Ghidra È®Àå ±â´É »ç¿ë
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ Ghidra È®Àå ±â´É ¼³Ä¡
____Sample Table Provider Ç÷¯±×ÀÎÀÇ ÄÚµå ºÐ¼®
__Ghidra È®Àå ±â´É ½ºÄÌ·¹ÅæÀÇ ÀÌÇØ
____ºÐ¼®±â
____ÆÄÀÏ ½Ã½ºÅÛ
____Ç÷¯±×ÀÎ
____ÀͽºÆ÷ÅÍ
____·Î´õ
__Ghidra È®Àå ±â´É °³¹ß
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
2ºÎ. ¸®¹ö½º ¿£Áö´Ï¾î¸µ
5Àå. Ghidra¸¦ »ç¿ëÇÑ ¾Ç¼ºÄÚµå ¸®¹ö½Ì
__±â¼úÀû ¿ä±¸ »çÇ×
__ȯ°æ¼³Á¤
__¾Ç¼ºÄÚµå ÁöÇ¥ ã±â
____¹®ÀÚ¿ ã±â
____ÀÎÅÚ¸®Àü½º Á¤º¸¿Í ¿ÜºÎ ¼Ò½º
____import ÇÔ¼ö È®ÀÎ
__Èï¹Ì·Î¿î ¾Ç¼ºÄÚµå »ùÇà ºÎºÐ ºÐ¼®
____ÁøÀÔÁ¡ ÇÔ¼ö
____0x00453340 ÇÔ¼ö ºÐ¼®
____0x00453C10 ÇÔ¼ö ºÐ¼®
____0x0046EA60 ÇÔ¼ö ºÐ¼®
____0x0046BEB0 ÇÔ¼ö ºÐ¼®
____0x0046E3A0 ÇÔ¼ö ºÐ¼®
____0x004559B0 ÇÔ¼ö ºÐ¼®
____0x004554E0 ÇÔ¼ö ºÐ¼®
____0x0046C860 ÇÔ¼ö ºÐ¼®
____0x0046A100 ÇÔ¼ö ºÐ¼®
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
6Àå. ½ºÅ©¸³Æà ¾Ç¼ºÄÚµå ºÐ¼®
__±â¼úÀû ¿ä±¸ »çÇ×
__Ghidra ½ºÅ©¸³Æà API »ç¿ë
__ÀÚ¹Ù ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇØ ½ºÅ©¸³Æ® ÀÛ¼º
__ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇØ ½ºÅ©¸³Æ® ÀÛ¼º
__½ºÅ©¸³Æ®¸¦ »ç¿ëÇÑ ¾Ç¼ºÄÚµå »ùÇÃÀÇ ³µ¶È ÇØÁ¦
____µ¨Å¸ ¿ÀÇÁ¼Â
____API Çؽø¦ ÁÖ¼Ò·Î º¯È¯
____Ghidra ½ºÅ©¸³ÆÃÀ» »ç¿ëÇØ Çؽà Å×ÀÌºí ³µ¶È ÇØÁ¦
____½ºÅ©¸³Æà °á°ú Çâ»ó
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
7Àå. Ghidra Headless Analyzer »ç¿ë
__±â¼úÀû ¿ä±¸ »çÇ×
__Headless ¸ðµå¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯
__ÇÁ·ÎÁ§Æ® »ý¼º°ú ä¿ì±â
__°¡Á®¿Â ¹ÙÀ̳ʸ®³ª ±âÁ¸ ¹ÙÀ̳ʸ®¿¡ ´ëÇÑ ºÐ¼® ¼öÇà
__ÇÁ·ÎÁ§Æ®¿¡¼ ºñGUI ½ºÅ©¸³Æ® ½ÇÇà
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
8Àå. Ghidra¸¦ ÀÌ¿ëÇÑ ¹ÙÀ̳ʸ® °¨»ç
__±â¼úÀû ¿ä±¸ »çÇ×
__¸Þ¸ð¸® ¼Õ»ó Ãë¾àÁ¡ ÀÌÇØ
____½ºÅà ÀÌÇØ
____½ºÅà ±â¹Ý ¹öÆÛ ¿À¹öÇ÷Î
____ÈüÀÇ ÀÌÇØ
____Èü ±â¹Ý ¹öÆÛ ¿À¹öÇ÷Î
____Æ÷¸Ë ½ºÆ®¸µ
__Ghidra¸¦ »ç¿ëÇÑ Ãë¾àÁ¡ ã±â
__´Ü¼ø ½ºÅà ±â¹Ý ¹öÆÛ ¿À¹öÇ÷Π°ø°Ý
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
9Àå. ½ºÅ©¸³Æà ¹ÙÀ̳ʸ® °¨»ç
__±â¼úÀû ¿ä±¸ »çÇ×
__Ãë¾àÇÑ ÇÔ¼ö ã±â
____½Éº¼ Å×ÀÌºí¿¡¼ ¾ÈÀüÇÏÁö ¾ÊÀº C/C ÇÔ¼ö °Ë»ö
____½ºÅ©¸³ÆÃÀ» »ç¿ëÇÑ ÇÁ·Î±×·¥ µðÄÄÆÄÀÏ
__sscanf ÄÝ·¯ °Ë»ö
____ÄÝ·¯ ÇÔ¼ö ¿°Å
__PCode¸¦ ÀÌ¿ëÇÑ ÄÝ·¯ ÇÔ¼ö ºÐ¼®
____PCode¿Í ¾î¼Àºí¸®¾î ºñ±³
____PCode °Ë»ö°ú ºÐ¼®
____¿©·¯ ¾ÆÅ°ÅØó¿¡¼ µ¿ÀÏÇÑ PCode ±â¹Ý ½ºÅ©¸³Æ® »ç¿ë
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
3ºÎ. Ghidra È®Àå
10Àå. Ghidra Ç÷¯±×ÀÎ °³¹ß
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ Ç÷¯±×ÀÎ °³¿ä
____Ghidra ¹èÆ÷¿¡ Æ÷ÇÔµÈ Ç÷¯±×ÀÎ
____¼µåÆÄƼ Ç÷¯±×ÀÎ
__Ghidra Ç÷¯±×ÀÎ ½ºÄÌ·¹Åæ
____Ç÷¯±×ÀÎ ¼³¸í¼
____Ç÷¯±×ÀÎ ÄÚµå ÀÛ¼º
____Ç÷¯±×Àο¡ ´ëÇÑ ÇÁ·Î¹ÙÀÌ´õ
__Ghidra Ç÷¯±×ÀÎ °³¹ß
____Ç÷¯±×ÀÎ ¹®¼È
____Ç÷¯±×ÀΠŬ·¡½º ±¸Çö
____ÇÁ·Î¹ÙÀÌ´õ ±¸Çö
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
11Àå. »õ·Î¿î ¹ÙÀ̳ʸ® Æ÷¸Ë ÅëÇÕ
__±â¼úÀû ¿ä±¸ »çÇ×
__¿ø½Ã ¹ÙÀ̳ʸ®¿Í Æ÷¸Ë Çü½Ä ¹ÙÀ̳ʸ®ÀÇ Â÷ÀÌÁ¡
____¿ø½Ã ¹ÙÀ̳ʸ® ÀÌÇØ
____Æ÷¸ËµÈ ¹ÙÀ̳ʸ® ÆÄÀÏ ÀÌÇØ
__Ghidra ·Î´õ °³¹ß
____MZ(¿À·¡µÈ ½ºÅ¸ÀÏ DOS ½ÇÇà ÆÄÀÏ) Æļ
____¿À·¡µÈ MZ(DOS ½ÇÇà ÆÄÀÏ) ·Î´õ
__ÆÄÀÏ ½Ã½ºÅÛ ·Î´õ ÀÌÇØ
____ÆÄÀÏ ½Ã½ºÅÛ ÀÚ¿ø ·ÎÄÉÀÌÅÍ
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
12Àå. ÇÁ·Î¼¼¼ ¸ðµâ ºÐ¼®
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ Ghidra ÇÁ·Î¼¼¼ ¸ðµâ ÀÌÇØ
__Ghidra ÇÁ·Î¼¼¼ ¸ðµâ ½ºÄÌ·¹Åæ °³¿ä
____ÇÁ·Î¼¼¼ ¸ðµâ °³¹ß ȯ°æ¼³Á¤
____ÇÁ·Î¼¼¼ ¸ðµâ ½ºÄÌ·¹Åæ »ý¼º
__Ghidra ÇÁ·Î¼¼¼ °³¹ß
____¹®¼È ÇÁ·Î¼¼¼
____ÆÐÅÏÀ» ÀÌ¿ëÇÑ ÇÔ¼ö¿Í ÄÚµå ½Äº°
____¾ð¾î¿Í ¾ð¾î º¯Çü ÁöÁ¤
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
13Àå. Ghidra Ä¿¹Â´ÏƼ¿¡ ±â¿©
__±â¼úÀû ¿ä±¸ »çÇ×
__Ghidra ÇÁ·ÎÁ§Æ® °³¿ä
____Ghidra Ä¿¹Â´ÏƼ
__±â¿©µµ Ž»ö
____¹ýÀû Ãø¸éÀÇ ÀÌÇØ
____¹ö±× ¸®Æ÷Æ® Á¦Ãâ
____»õ ±â´É Á¦¾È
____Áú¹® Á¦Ãâ
____Ghidra ÇÁ·ÎÁ§Æ®¿¡ Ç® ¸®Äù½ºÆ® Á¦Ãâ
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
14Àå. °í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» À§ÇÑ Ghidra È®Àå
__±â¼úÀû ¿ä±¸ »çÇ×
__°í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µÀÇ ±âº» Áö½Ä
____½Éº¼¸¯ ½ÇÇà ÇнÀ
____SMT ¼Ö¹ö ÇнÀ
____ÄÜÄݸ¯ ½ÇÇà¿¡ ´ëÇÑ ÇнÀ
__°í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µ¿¡ Ghidra »ç¿ë
____AngryGhidra·Î Ghidra¿¡ ½Éº¼¸¯ ½ÇÇà ±â´É Ãß°¡
____pcode-to-llvmÀ» »ç¿ëÇØ PCode¿¡¼ LLVMÀ¸·Î º¯È¯
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
1Àå. Ghidra ½ÃÀÛ
__±â¼úÀû ¿ä±¸ »çÇ×
__À§Å°¸®Å©½º Vault 7
____NSA ¸±¸®½º
__IDA ¹× ±âŸ ¸¹Àº °æÀï¾÷ü ´ëºñ Ghidra
__Ghidra °³¿ä
____Ghidra ¼³Ä¡
____GhidraÀÇ Æ¯Â¡ °³¿ä
__¿ä¾à
__Áú¹®
2Àå. Ghidra ½ºÅ©¸³Æ®¸¦ ÅëÇÑ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷ ÀÚµ¿È
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ ½ºÅ©¸³Æ® »ç¿ë°ú Àû¿ë
__½ºÅ©¸³Æ® Ŭ·¡½º
__½ºÅ©¸³Æ® °³¹ß
__¿ä¾à
__Áú¹®
3Àå. Ghidra µð¹ö±× ¸ðµå
__±â¼úÀû ¿ä±¸ »çÇ×
__Ghidra °³¹ß ȯ°æ¼³Á¤
__¼ÒÇÁÆ®¿þ¾î ¿ä±¸ »çÇ× °³¿ä
____ÀÚ¹Ù JDK ¼³Ä¡
____ÀÌŬ¸³½º IDE ¼³Ä¡
____PyDev ¼³Ä¡
____GhidraDev ¼³Ä¡
__Ghidra ÄÚµå¿Í Ghidra ½ºÅ©¸³Æ® µð¹ö±ë
____ÀÌŬ¸³½º¿¡¼ Ghidra ½ºÅ©¸³Æ® µð¹ö±ë
____ÀÌŬ¸³½º¿¡¼ Ghidra ±¸¼º ¿ä¼Ò µð¹ö±ë
__Ghidra RCE Ãë¾àÁ¡
____Ghidra RCE Ãë¾àÁ¡ ¼³¸í
____Ghidra RCE Ãë¾àÁ¡ °ø°Ý
____Ghidra RCE Ãë¾àÁ¡ ¼öÁ¤
____Ãë¾àÇÑ ÄÄÇ»ÅÍ Ã£±â
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
4Àå. Ghidra È®Àå ±â´É »ç¿ë
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ Ghidra È®Àå ±â´É ¼³Ä¡
____Sample Table Provider Ç÷¯±×ÀÎÀÇ ÄÚµå ºÐ¼®
__Ghidra È®Àå ±â´É ½ºÄÌ·¹ÅæÀÇ ÀÌÇØ
____ºÐ¼®±â
____ÆÄÀÏ ½Ã½ºÅÛ
____Ç÷¯±×ÀÎ
____ÀͽºÆ÷ÅÍ
____·Î´õ
__Ghidra È®Àå ±â´É °³¹ß
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
2ºÎ. ¸®¹ö½º ¿£Áö´Ï¾î¸µ
5Àå. Ghidra¸¦ »ç¿ëÇÑ ¾Ç¼ºÄÚµå ¸®¹ö½Ì
__±â¼úÀû ¿ä±¸ »çÇ×
__ȯ°æ¼³Á¤
__¾Ç¼ºÄÚµå ÁöÇ¥ ã±â
____¹®ÀÚ¿ ã±â
____ÀÎÅÚ¸®Àü½º Á¤º¸¿Í ¿ÜºÎ ¼Ò½º
____import ÇÔ¼ö È®ÀÎ
__Èï¹Ì·Î¿î ¾Ç¼ºÄÚµå »ùÇà ºÎºÐ ºÐ¼®
____ÁøÀÔÁ¡ ÇÔ¼ö
____0x00453340 ÇÔ¼ö ºÐ¼®
____0x00453C10 ÇÔ¼ö ºÐ¼®
____0x0046EA60 ÇÔ¼ö ºÐ¼®
____0x0046BEB0 ÇÔ¼ö ºÐ¼®
____0x0046E3A0 ÇÔ¼ö ºÐ¼®
____0x004559B0 ÇÔ¼ö ºÐ¼®
____0x004554E0 ÇÔ¼ö ºÐ¼®
____0x0046C860 ÇÔ¼ö ºÐ¼®
____0x0046A100 ÇÔ¼ö ºÐ¼®
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
6Àå. ½ºÅ©¸³Æà ¾Ç¼ºÄÚµå ºÐ¼®
__±â¼úÀû ¿ä±¸ »çÇ×
__Ghidra ½ºÅ©¸³Æà API »ç¿ë
__ÀÚ¹Ù ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇØ ½ºÅ©¸³Æ® ÀÛ¼º
__ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇØ ½ºÅ©¸³Æ® ÀÛ¼º
__½ºÅ©¸³Æ®¸¦ »ç¿ëÇÑ ¾Ç¼ºÄÚµå »ùÇÃÀÇ ³µ¶È ÇØÁ¦
____µ¨Å¸ ¿ÀÇÁ¼Â
____API Çؽø¦ ÁÖ¼Ò·Î º¯È¯
____Ghidra ½ºÅ©¸³ÆÃÀ» »ç¿ëÇØ Çؽà Å×ÀÌºí ³µ¶È ÇØÁ¦
____½ºÅ©¸³Æà °á°ú Çâ»ó
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
7Àå. Ghidra Headless Analyzer »ç¿ë
__±â¼úÀû ¿ä±¸ »çÇ×
__Headless ¸ðµå¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯
__ÇÁ·ÎÁ§Æ® »ý¼º°ú ä¿ì±â
__°¡Á®¿Â ¹ÙÀ̳ʸ®³ª ±âÁ¸ ¹ÙÀ̳ʸ®¿¡ ´ëÇÑ ºÐ¼® ¼öÇà
__ÇÁ·ÎÁ§Æ®¿¡¼ ºñGUI ½ºÅ©¸³Æ® ½ÇÇà
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
8Àå. Ghidra¸¦ ÀÌ¿ëÇÑ ¹ÙÀ̳ʸ® °¨»ç
__±â¼úÀû ¿ä±¸ »çÇ×
__¸Þ¸ð¸® ¼Õ»ó Ãë¾àÁ¡ ÀÌÇØ
____½ºÅà ÀÌÇØ
____½ºÅà ±â¹Ý ¹öÆÛ ¿À¹öÇ÷Î
____ÈüÀÇ ÀÌÇØ
____Èü ±â¹Ý ¹öÆÛ ¿À¹öÇ÷Î
____Æ÷¸Ë ½ºÆ®¸µ
__Ghidra¸¦ »ç¿ëÇÑ Ãë¾àÁ¡ ã±â
__´Ü¼ø ½ºÅà ±â¹Ý ¹öÆÛ ¿À¹öÇ÷Π°ø°Ý
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
9Àå. ½ºÅ©¸³Æà ¹ÙÀ̳ʸ® °¨»ç
__±â¼úÀû ¿ä±¸ »çÇ×
__Ãë¾àÇÑ ÇÔ¼ö ã±â
____½Éº¼ Å×ÀÌºí¿¡¼ ¾ÈÀüÇÏÁö ¾ÊÀº C/C ÇÔ¼ö °Ë»ö
____½ºÅ©¸³ÆÃÀ» »ç¿ëÇÑ ÇÁ·Î±×·¥ µðÄÄÆÄÀÏ
__sscanf ÄÝ·¯ °Ë»ö
____ÄÝ·¯ ÇÔ¼ö ¿°Å
__PCode¸¦ ÀÌ¿ëÇÑ ÄÝ·¯ ÇÔ¼ö ºÐ¼®
____PCode¿Í ¾î¼Àºí¸®¾î ºñ±³
____PCode °Ë»ö°ú ºÐ¼®
____¿©·¯ ¾ÆÅ°ÅØó¿¡¼ µ¿ÀÏÇÑ PCode ±â¹Ý ½ºÅ©¸³Æ® »ç¿ë
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
3ºÎ. Ghidra È®Àå
10Àå. Ghidra Ç÷¯±×ÀÎ °³¹ß
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ Ç÷¯±×ÀÎ °³¿ä
____Ghidra ¹èÆ÷¿¡ Æ÷ÇÔµÈ Ç÷¯±×ÀÎ
____¼µåÆÄƼ Ç÷¯±×ÀÎ
__Ghidra Ç÷¯±×ÀÎ ½ºÄÌ·¹Åæ
____Ç÷¯±×ÀÎ ¼³¸í¼
____Ç÷¯±×ÀÎ ÄÚµå ÀÛ¼º
____Ç÷¯±×Àο¡ ´ëÇÑ ÇÁ·Î¹ÙÀÌ´õ
__Ghidra Ç÷¯±×ÀÎ °³¹ß
____Ç÷¯±×ÀÎ ¹®¼È
____Ç÷¯±×ÀΠŬ·¡½º ±¸Çö
____ÇÁ·Î¹ÙÀÌ´õ ±¸Çö
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
11Àå. »õ·Î¿î ¹ÙÀ̳ʸ® Æ÷¸Ë ÅëÇÕ
__±â¼úÀû ¿ä±¸ »çÇ×
__¿ø½Ã ¹ÙÀ̳ʸ®¿Í Æ÷¸Ë Çü½Ä ¹ÙÀ̳ʸ®ÀÇ Â÷ÀÌÁ¡
____¿ø½Ã ¹ÙÀ̳ʸ® ÀÌÇØ
____Æ÷¸ËµÈ ¹ÙÀ̳ʸ® ÆÄÀÏ ÀÌÇØ
__Ghidra ·Î´õ °³¹ß
____MZ(¿À·¡µÈ ½ºÅ¸ÀÏ DOS ½ÇÇà ÆÄÀÏ) Æļ
____¿À·¡µÈ MZ(DOS ½ÇÇà ÆÄÀÏ) ·Î´õ
__ÆÄÀÏ ½Ã½ºÅÛ ·Î´õ ÀÌÇØ
____ÆÄÀÏ ½Ã½ºÅÛ ÀÚ¿ø ·ÎÄÉÀÌÅÍ
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
12Àå. ÇÁ·Î¼¼¼ ¸ðµâ ºÐ¼®
__±â¼úÀû ¿ä±¸ »çÇ×
__±âÁ¸ Ghidra ÇÁ·Î¼¼¼ ¸ðµâ ÀÌÇØ
__Ghidra ÇÁ·Î¼¼¼ ¸ðµâ ½ºÄÌ·¹Åæ °³¿ä
____ÇÁ·Î¼¼¼ ¸ðµâ °³¹ß ȯ°æ¼³Á¤
____ÇÁ·Î¼¼¼ ¸ðµâ ½ºÄÌ·¹Åæ »ý¼º
__Ghidra ÇÁ·Î¼¼¼ °³¹ß
____¹®¼È ÇÁ·Î¼¼¼
____ÆÐÅÏÀ» ÀÌ¿ëÇÑ ÇÔ¼ö¿Í ÄÚµå ½Äº°
____¾ð¾î¿Í ¾ð¾î º¯Çü ÁöÁ¤
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
13Àå. Ghidra Ä¿¹Â´ÏƼ¿¡ ±â¿©
__±â¼úÀû ¿ä±¸ »çÇ×
__Ghidra ÇÁ·ÎÁ§Æ® °³¿ä
____Ghidra Ä¿¹Â´ÏƼ
__±â¿©µµ Ž»ö
____¹ýÀû Ãø¸éÀÇ ÀÌÇØ
____¹ö±× ¸®Æ÷Æ® Á¦Ãâ
____»õ ±â´É Á¦¾È
____Áú¹® Á¦Ãâ
____Ghidra ÇÁ·ÎÁ§Æ®¿¡ Ç® ¸®Äù½ºÆ® Á¦Ãâ
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
14Àå. °í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» À§ÇÑ Ghidra È®Àå
__±â¼úÀû ¿ä±¸ »çÇ×
__°í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µÀÇ ±âº» Áö½Ä
____½Éº¼¸¯ ½ÇÇà ÇнÀ
____SMT ¼Ö¹ö ÇнÀ
____ÄÜÄݸ¯ ½ÇÇà¿¡ ´ëÇÑ ÇнÀ
__°í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µ¿¡ Ghidra »ç¿ë
____AngryGhidra·Î Ghidra¿¡ ½Éº¼¸¯ ½ÇÇà ±â´É Ãß°¡
____pcode-to-llvmÀ» »ç¿ëÇØ PCode¿¡¼ LLVMÀ¸·Î º¯È¯
__¿ä¾à
__Áú¹®
__´õ ÀÐÀ»°Å¸®
¡ß GhidraÀÇ ±â´É, Ç÷¯±×ÀÎ, È®Àå ±â´É È°¿ë
¡ß Ghidra¿¡ ±â¿©ÇÒ ¼ö ÀÖ´Â ¹æ¹ý
¡ß ¾Ç¼ºÄÚµå ¸®¹ö½º ¿£Áö´Ï¾î¸µ°ú ¹ÙÀ̳ʸ® °¨»ç ¼öÇà
¡ß Ghidra Ç÷¯±×ÀÎÀ¸·Î ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷ ÀÚµ¿È
¡ß ÀڽŸ¸ÀÇ Ghidra È®Àå ±â´É, ½ºÅ©¸³Æ® ¹× ±â´É °³¹ß
¡ß Ghidra ½ºÅ©¸³ÆÃÀ¸·Î ½ÇÇà °¡´ÉÇÑ ¹ÙÀ̳ʸ®¿¡¼ Ãë¾àÁ¡À» ã´Â ÀÛ¾÷ ÀÚµ¿È
¡ß headless ¸ðµå¿¡¼ÀÇ Ghidra »ç¿ë ¹æ¹ý
¸®¹ö½º ÄÚµå ¿£Áö´Ï¾î, ¾Ç¼ºÄÚµå ºÐ¼®°¡, ¹ö±× ÇåÅÍ, ħÅõ Å×½ºÅÍ, ÀͽºÇ÷ÎÀÕ °³¹ßÀÚ, Æ÷·»½Ä Àü¹®°¡, º¸¾È ¿¬±¸ÀÚ, »çÀ̹ö º¸¾È ÇлýÀ» ´ë»óÀ¸·Î ÇÑ´Ù. ½ÇÁ¦·Î ÇнÀ °î¼±À» ÃÖ¼ÒÈÇÏ°í ÀڽŸ¸ÀÇ µµ±¸¸¦ ¾²±â ½ÃÀÛÇÔÀ¸·Î½á Ghidra¸¦ ¹è¿ì°íÀÚ ÇÏ´Â »ç¶÷À̶ó¸é ´©±¸³ª ÀÌ Ã¥À» Áñ±â°í ¸ñÇ¥¸¦ ´Þ¼ºÇÒ ¼ö ÀÖ´Ù.
**
1Àå, ¡®Ghidra ½ÃÀÛ¡¯¿¡¼´Â GhidraÀÇ ¿ª»ç¿Í »ç¿ëÀÚ °üÁ¡¿¡¼ ÇÁ·Î±×·¥ÀÇ °³¿ä¸¦ ´Ù·é´Ù.
2Àå, ¡®Ghidra ½ºÅ©¸³Æ®¸¦ ÅëÇÑ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷ ÀÚµ¿È¡¯¿¡¼´Â Ghidra ½ºÅ©¸³Æ®¸¦ »ç¿ëÇØ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷À» ÀÚµ¿ÈÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°í ½ºÅ©¸³Æ® °³¹ßÀ» ¼Ò°³ÇÑ´Ù.
3Àå, ¡®Ghidra µð¹ö±× ¸ðµå¡¯¿¡¼´Â Ghidra °³¹ß ȯ°æ¼³Á¤ ¹æ¹ý, Ghidra µð¹ö±× ¹æ¹ý, Ghidra µð¹ö±× ¸ðµå Ãë¾àÁ¡ÀÇ ¸ðµç ³»¿ëÀ» ´Ù·é´Ù.
4Àå, ¡®Ghidra È®Àå ±â´É »ç¿ë¡¯¿¡¼´Â Ghidra È®Àå ±â´ÉÀ» ¼³Ä¡ÇÏ°í »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÙ »Ó¸¸ ¾Æ´Ï¶ó Ghidra ±â´ÉÀ» °³¹ßÇϱâ À§ÇÑ ¹è°æÀ» ¼³¸íÇÑ´Ù.
5Àå, ¡®Ghidra¸¦ »ç¿ëÇÑ ¾Ç¼ºÄÚµå ¸®¹ö½Ì¡¯¿¡¼´Â ½ÇÁ¦ ¾Ç¼ºÄÚµå »ùÇÃÀ» ¸®¹ö½ÌÇØ ¾Ç¼ºÄÚµå ºÐ¼®¿¡ Ghidra¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
6Àå, ¡®½ºÅ©¸³Æà ¾Ç¼ºÄÚµå ºÐ¼®¡¯¿¡¼´Â ¾Ç¼ºÄÚµå »ùÇÿ¡¼ ¹ß°ßµÈ ¼ÐÄÚµå ºÐ¼®À» ÀÚ¹Ù¿Í ÆÄÀ̽㠵Π¾ð¾î¸¦ ¸ðµÎ ½ºÅ©¸³ÆÃÇØ 5ÀåÀÇ ³»¿ë¿¡ ÀÌ¾î¼ ¼³¸íÇÑ´Ù.
7Àå, ¡®Ghidra Headless Analyzer »ç¿ë¡¯¿¡¼´Â Ghidra Headless Analyzer¸¦ ¼³¸íÇÏ°í 7Àå¿¡¼ °³¹ßÇÑ ½ºÅ©¸³Æ®·Î ȹµæÇÑ ¾Ç¼ºÄÚµå »ùÇÿ¡ Àû¿ëÇÑ´Ù.
8Àå, ¡®Ghidra¸¦ ÀÌ¿ëÇÑ ¹ÙÀ̳ʸ® °¨»ç¡¯¿¡¼´Â Ghidra·Î ¸Þ¸ð¸® ¼Õ»ó Ãë¾àÁ¡À» ã°í À̸¦ È°¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
9Àå, ¡®½ºÅ©¸³Æà ¹ÙÀ̳ʸ® °¨»ç¡¯¿¡¼´Â 8Àå¿¡ ÀÌ¾î °·ÂÇÑ PCode Áß°£ Ç¥ÇöÀ» È°¿ëÇØ ½ºÅ©¸³ÆÃÀ¸·Î ¹ö±× ÇåÆà ÇÁ·Î¼¼½º¸¦ ÀÚµ¿ÈÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
10Àå, ¡®Ghidra Ç÷¯±×ÀÎ °³¹ß¡¯¿¡¼´Â Ghidra Ç÷¯±×ÀÎ È®Àå ±â´ÉÀÌ ±¸ÇöµÈ Ghidra ±â´ÉÀ» ÃÖ´ëÇÑ È°¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ¼³¸íÇÔÀ¸·Î½á Ghidra È®Àå ±â´É °³¹ßÀ» ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
11Àå, ¡®»õ·Î¿î ¹ÙÀ̳ʸ® Æ÷¸Ë ÅëÇÕ¡¯¿¡¼´Â ½ÇÁ¦ ÆÄÀÏ Æ÷¸ËÀ» ¿¹·Î µé¾î »õ·Î¿î ¹ÙÀ̳ʸ® Æ÷¸ËÀ» Áö¿øÇÏ´Â Ghidra È®Àå ±â´ÉÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
12Àå, ¡®ÇÁ·Î¼¼¼ ¸ðµâ ºÐ¼®¡¯¿¡¼´Â SLEIGH ÇÁ·Î¼¼¼ »ç¾ç ¾ð¾î¸¦ »ç¿ëÇØ Ghidra ÇÁ·Î¼¼¼ ¸ðµâÀ» ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
13Àå, ¡®Ghidra Ä¿¹Â´ÏƼ¿¡ ±â¿©¡¯¿¡¼´Â ¼Ò¼È ³×Æ®¿öÅ©, äÆÃÀ» »ç¿ëÇØ °³¹ß, Çǵå¹é, ¹ö±× º¸°í¼, ´ñ±Û µîÀ¸·Î Ä¿¹Â´ÏƼ¿Í »óÈ£ÀÛ¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
14Àå, ¡®°í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» À§ÇÑ Ghidra È®À塯¿¡¼´Â SMT solvers, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Z3, Á¤Àû ¹× µ¿Àû symbex, LLVM, Angr°ú °°Àº °í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÁÖÁ¦¿Í µµ±¸¸¦ ¼Ò°³ÇÏ°í Ghidra¿Í ÅëÇÕÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
¡ß Ghidra¿¡ ±â¿©ÇÒ ¼ö ÀÖ´Â ¹æ¹ý
¡ß ¾Ç¼ºÄÚµå ¸®¹ö½º ¿£Áö´Ï¾î¸µ°ú ¹ÙÀ̳ʸ® °¨»ç ¼öÇà
¡ß Ghidra Ç÷¯±×ÀÎÀ¸·Î ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷ ÀÚµ¿È
¡ß ÀڽŸ¸ÀÇ Ghidra È®Àå ±â´É, ½ºÅ©¸³Æ® ¹× ±â´É °³¹ß
¡ß Ghidra ½ºÅ©¸³ÆÃÀ¸·Î ½ÇÇà °¡´ÉÇÑ ¹ÙÀ̳ʸ®¿¡¼ Ãë¾àÁ¡À» ã´Â ÀÛ¾÷ ÀÚµ¿È
¡ß headless ¸ðµå¿¡¼ÀÇ Ghidra »ç¿ë ¹æ¹ý
¸®¹ö½º ÄÚµå ¿£Áö´Ï¾î, ¾Ç¼ºÄÚµå ºÐ¼®°¡, ¹ö±× ÇåÅÍ, ħÅõ Å×½ºÅÍ, ÀͽºÇ÷ÎÀÕ °³¹ßÀÚ, Æ÷·»½Ä Àü¹®°¡, º¸¾È ¿¬±¸ÀÚ, »çÀ̹ö º¸¾È ÇлýÀ» ´ë»óÀ¸·Î ÇÑ´Ù. ½ÇÁ¦·Î ÇнÀ °î¼±À» ÃÖ¼ÒÈÇÏ°í ÀڽŸ¸ÀÇ µµ±¸¸¦ ¾²±â ½ÃÀÛÇÔÀ¸·Î½á Ghidra¸¦ ¹è¿ì°íÀÚ ÇÏ´Â »ç¶÷À̶ó¸é ´©±¸³ª ÀÌ Ã¥À» Áñ±â°í ¸ñÇ¥¸¦ ´Þ¼ºÇÒ ¼ö ÀÖ´Ù.
**
1Àå, ¡®Ghidra ½ÃÀÛ¡¯¿¡¼´Â GhidraÀÇ ¿ª»ç¿Í »ç¿ëÀÚ °üÁ¡¿¡¼ ÇÁ·Î±×·¥ÀÇ °³¿ä¸¦ ´Ù·é´Ù.
2Àå, ¡®Ghidra ½ºÅ©¸³Æ®¸¦ ÅëÇÑ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷ ÀÚµ¿È¡¯¿¡¼´Â Ghidra ½ºÅ©¸³Æ®¸¦ »ç¿ëÇØ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÀÛ¾÷À» ÀÚµ¿ÈÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°í ½ºÅ©¸³Æ® °³¹ßÀ» ¼Ò°³ÇÑ´Ù.
3Àå, ¡®Ghidra µð¹ö±× ¸ðµå¡¯¿¡¼´Â Ghidra °³¹ß ȯ°æ¼³Á¤ ¹æ¹ý, Ghidra µð¹ö±× ¹æ¹ý, Ghidra µð¹ö±× ¸ðµå Ãë¾àÁ¡ÀÇ ¸ðµç ³»¿ëÀ» ´Ù·é´Ù.
4Àå, ¡®Ghidra È®Àå ±â´É »ç¿ë¡¯¿¡¼´Â Ghidra È®Àå ±â´ÉÀ» ¼³Ä¡ÇÏ°í »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÙ »Ó¸¸ ¾Æ´Ï¶ó Ghidra ±â´ÉÀ» °³¹ßÇϱâ À§ÇÑ ¹è°æÀ» ¼³¸íÇÑ´Ù.
5Àå, ¡®Ghidra¸¦ »ç¿ëÇÑ ¾Ç¼ºÄÚµå ¸®¹ö½Ì¡¯¿¡¼´Â ½ÇÁ¦ ¾Ç¼ºÄÚµå »ùÇÃÀ» ¸®¹ö½ÌÇØ ¾Ç¼ºÄÚµå ºÐ¼®¿¡ Ghidra¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
6Àå, ¡®½ºÅ©¸³Æà ¾Ç¼ºÄÚµå ºÐ¼®¡¯¿¡¼´Â ¾Ç¼ºÄÚµå »ùÇÿ¡¼ ¹ß°ßµÈ ¼ÐÄÚµå ºÐ¼®À» ÀÚ¹Ù¿Í ÆÄÀ̽㠵Π¾ð¾î¸¦ ¸ðµÎ ½ºÅ©¸³ÆÃÇØ 5ÀåÀÇ ³»¿ë¿¡ ÀÌ¾î¼ ¼³¸íÇÑ´Ù.
7Àå, ¡®Ghidra Headless Analyzer »ç¿ë¡¯¿¡¼´Â Ghidra Headless Analyzer¸¦ ¼³¸íÇÏ°í 7Àå¿¡¼ °³¹ßÇÑ ½ºÅ©¸³Æ®·Î ȹµæÇÑ ¾Ç¼ºÄÚµå »ùÇÿ¡ Àû¿ëÇÑ´Ù.
8Àå, ¡®Ghidra¸¦ ÀÌ¿ëÇÑ ¹ÙÀ̳ʸ® °¨»ç¡¯¿¡¼´Â Ghidra·Î ¸Þ¸ð¸® ¼Õ»ó Ãë¾àÁ¡À» ã°í À̸¦ È°¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
9Àå, ¡®½ºÅ©¸³Æà ¹ÙÀ̳ʸ® °¨»ç¡¯¿¡¼´Â 8Àå¿¡ ÀÌ¾î °·ÂÇÑ PCode Áß°£ Ç¥ÇöÀ» È°¿ëÇØ ½ºÅ©¸³ÆÃÀ¸·Î ¹ö±× ÇåÆà ÇÁ·Î¼¼½º¸¦ ÀÚµ¿ÈÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
10Àå, ¡®Ghidra Ç÷¯±×ÀÎ °³¹ß¡¯¿¡¼´Â Ghidra Ç÷¯±×ÀÎ È®Àå ±â´ÉÀÌ ±¸ÇöµÈ Ghidra ±â´ÉÀ» ÃÖ´ëÇÑ È°¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ¼³¸íÇÔÀ¸·Î½á Ghidra È®Àå ±â´É °³¹ßÀ» ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
11Àå, ¡®»õ·Î¿î ¹ÙÀ̳ʸ® Æ÷¸Ë ÅëÇÕ¡¯¿¡¼´Â ½ÇÁ¦ ÆÄÀÏ Æ÷¸ËÀ» ¿¹·Î µé¾î »õ·Î¿î ¹ÙÀ̳ʸ® Æ÷¸ËÀ» Áö¿øÇÏ´Â Ghidra È®Àå ±â´ÉÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
12Àå, ¡®ÇÁ·Î¼¼¼ ¸ðµâ ºÐ¼®¡¯¿¡¼´Â SLEIGH ÇÁ·Î¼¼¼ »ç¾ç ¾ð¾î¸¦ »ç¿ëÇØ Ghidra ÇÁ·Î¼¼¼ ¸ðµâÀ» ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
13Àå, ¡®Ghidra Ä¿¹Â´ÏƼ¿¡ ±â¿©¡¯¿¡¼´Â ¼Ò¼È ³×Æ®¿öÅ©, äÆÃÀ» »ç¿ëÇØ °³¹ß, Çǵå¹é, ¹ö±× º¸°í¼, ´ñ±Û µîÀ¸·Î Ä¿¹Â´ÏƼ¿Í »óÈ£ÀÛ¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
14Àå, ¡®°í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» À§ÇÑ Ghidra È®À塯¿¡¼´Â SMT solvers, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Z3, Á¤Àû ¹× µ¿Àû symbex, LLVM, Angr°ú °°Àº °í±Þ ¸®¹ö½º ¿£Áö´Ï¾î¸µ ÁÖÁ¦¿Í µµ±¸¸¦ ¼Ò°³ÇÏ°í Ghidra¿Í ÅëÇÕÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.