¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ȯ°æ ¼³Á¤
¡á ¹«·á µµ±¸¸¦ ÀÌ¿ëÇÑ Á¤Àû ºÐ¼® ¹æ¹ý
¡á »ó¿ë µµ±¸¸¦ ÀÌ¿ëÇÑ ³µ¶È ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ¹æ¹ý
¡á ºÐ¼® ¹æÁö ¼Ö·ç¼ÇÀÌ Àû¿ëµÈ ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ¹æ¹ý
¡á °øÀ¯ ¶óÀ̺귯¸® µ¿Àû µð¹ö±ë ¹æ¹ý
¡á ÇØÅ· ´ëȸ ¹®Á¦¸¦ ÅëÇÑ ½ÇÀü ÀÀ¿ë
¡á °³¹ßÀ» ÅëÇÑ APK ÈÄÅ· ¹æ¹ý
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
¡á ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾ÈÀ» óÀ½ Á¢Çϰųª ÀÌÁ¦ ¸· ½ÃÀÛÇÏ·Á´Â µ¶ÀÚ
¡á °³¹ßÀÚ ¹× ½ÃÅ¥¸®Æ® ÆÄÆ®¿¡¼ º¸¾È Á¡°ËÀ» ´ã´çÇÏ´Â µ¶ÀÚ
¡á ¾Èµå...
´õº¸±â
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ȯ°æ ¼³Á¤
¡á ¹«·á µµ±¸¸¦ ÀÌ¿ëÇÑ Á¤Àû ºÐ¼® ¹æ¹ý
¡á »ó¿ë µµ±¸¸¦ ÀÌ¿ëÇÑ ³µ¶È ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ¹æ¹ý
¡á ºÐ¼® ¹æÁö ¼Ö·ç¼ÇÀÌ Àû¿ëµÈ ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ¹æ¹ý
¡á °øÀ¯ ¶óÀ̺귯¸® µ¿Àû µð¹ö±ë ¹æ¹ý
¡á ÇØÅ· ´ëȸ ¹®Á¦¸¦ ÅëÇÑ ½ÇÀü ÀÀ¿ë
¡á °³¹ßÀ» ÅëÇÑ APK ÈÄÅ· ¹æ¹ý
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
¡á ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾ÈÀ» óÀ½ Á¢Çϰųª ÀÌÁ¦ ¸· ½ÃÀÛÇÏ·Á´Â µ¶ÀÚ
¡á °³¹ßÀÚ ¹× ½ÃÅ¥¸®Æ® ÆÄÆ®¿¡¼ º¸¾È Á¡°ËÀ» ´ã´çÇÏ´Â µ¶ÀÚ
¡á ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç Ãë¾àÁ¡ Á¡°Ë ¸ðÀÇÇØÅ· ÄÁ¼³ÅÏÆ®
¡á ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ¸®¹ö½º ¿£Áö´Ï¾î¸µ¿¡ °ü½ÉÀÌ ¸¹Àº µ¶ÀÚ
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, '¾Èµå·ÎÀÌµå ±âº» °³³ä'¿¡¼´Â ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼®¿¡ ¾Õ¼ ºÐ¼®À» ¾î´À ºÎºÐºÎÅÍ ÇØ¾ß ÇÏ´ÂÁö ¸ð¸£´Â µ¶Àڵ鿡°Ô ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀÇ ³× °¡Áö ±¸¼º¿ä¼Ò¿¡ ´ëÇÑ °³³ä ¼³¸íÀ¸·Î ¾î´À ºÎºÐºÎÅÍ ºÐ¼®À» ½ÃÀÛÇØ¾ß ¸ð¸£´Â µ¶ÀÚµéÀÌ °³³äÀ» ¹ÙÅÁÀ¸·Î °ü·Ã Äڵ带 ½±°Ô ºÐ¼®ÇØ ³ª°¥ ¼ö ÀÖµµ·Ï ¾×ƼºñƼ(Activity), ¼ºñ½º(Service), ºê·ÎµåÄɽºÆ® ¼ö½ÅÀÚ(Broadcast Receiver), ÄÜÅÙÃ÷ Á¦°øÀÚ(Contents Provider)¿¡ °üÇØ ¼³¸íÇÑ´Ù.
2Àå, '¾Èµå·ÎÀÌµå ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» À§ÇÑ È¯°æ ±¸Ãà'¿¡¼´Â ºÐ¼®¿¡ ¾Õ¼ µð¹ÙÀ̽º¿¡ Á¢¼ÓÇϱâ À§ÇØ ADB Á¢¼ÓÀ» À§ÇÑ USBµð¹ö±ë Ȱ¼ºÈÇÏ´Â ¹æ¹ý, ÇÊ¿äÇÑ ¸í·É¾î µîÀ» »ç¿ëÇϱâ À§ÇØ Busybox µîÀ» ¼³Ä¡ÇÏ´Â ¹æ¹ý ¹× À©µµ¿ì, ¿ìºÐÅõ ȯ°æ¿¡ ¸Â°Ô ÀÚ¹Ù ¹öÀü È®ÀÎ ¹× ¾Èµå·ÎÀÌµå ½ºÆ©µð¿À(Android Studio)¸¦ ÀÌ¿ëÇØ SDK¸¦ ¼³Ä¡ÇÏ´Â ¹æ¹ýÀ» ½ÃÀÛÇÏ´Â »ç¶÷µéÀ» ±âºÐÀ¸·Î ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
3Àå, '¾Èµå·ÎÀÌµå ¾Û ±¸¼º ¹× ÄÚµå ºÐ¼®'¿¡¼´Â ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸¼º, ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç »ý¼º °úÁ¤°ú apktoolÀ» ÀÌ¿ëÇÑ ±âº»ÀûÀÎ APK Repackage °úÁ¤À» ¼³¸íÇÏ°í ¹«·á·Î ½±°Ô ±¸ÇÒ ¼ö ÀÖ´Â JD-GUI, JADX, Androguard, ByteCodeViewer¸¦ ÀÌ¿ëÇØ ºÐ¼®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. ¶ÇÇÑ ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ¿ëµµ·Î ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Â JEB, JEB2¸¦ ÀÌ¿ëÇÑ ÀÚ¼¼ÇÑ ºÐ¼® ¹æ¹ý°ú JEB2¿¡¼ Á¦°øÇÏ´Â µ¿Àû µð¹ö±ëÀ» ÇÒ ¼ö ÀÖ´Â ¹æ¹ý¿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
4Àå, '¾Èµå·ÎÀÌµå ¾Û Á¤Àû ºÐ¼®'¿¡¼´Â ºÐ¼®À» À§ÇØ ¼³Ä¡µÈ ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ÃßÃâºÎÅÍ ºÐ¼®¹æÁö ¼Ö·ç¼ÇÀÌ Àû¿ëµÈ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ½ÇÇàÄÚµå ÃßÃâ ¹æ¹ý ¹× À¯¿ëÇÑ ÆÁÀ» ¿¹Á¦¸¦ ¹ÙÅÁÀ¸·Î ¼³¸íÇϰí, ·¹º§ Å×½ºÆ® ¿ëµµ·Î Á¦ÀÛµÈ ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀÇ Á¤Àû ºÐ¼® ¹æ¹ý¿¡ ´ëÇØ ¾Èµå·ÎÀÌµå ±âº» °³³äºÎÅÍ, ÄÚµå Ȱ¿ë±îÁö Â÷±ÙÂ÷±Ù ¼³¸íÇÑ´Ù.
5Àå, '¾Èµå·ÎÀÌµå ¾Û µ¿Àû ºÐ¼®'¿¡¼´Â ÀÌÀåÀÇ ³»¿ëÀº ´ëºÎºÐ °í±Þ°úÁ¤¿¡ ¼ÓÇÏ¸ç °³¹ß¿¡ ´ëÇÑ »çÀüÁö½ÄÀÌ ÇÊ¿äÇÏ´Ù. µû¶ó¼ ¾ÛÀ» Á÷Á¢ ºÐ¼®ÇÏÁö ¾Ê°í µ¿Àû ȯ°æÀ» ±¸¼ºÇØ ¾î¶² À̺¥Æ®°¡ ¹ß»ýÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇØ ¾Èµå·ÎÀ̵å LKM(Loadable Kernel Module), ´ëÇ¥ÀûÀÎ ÇÁ·¹ÀÓ¿öÅ©¸¦ Ȱ¿ëÇÑ ÀÚ¹Ù API ÈÄÅ·À» ÅëÇØ ºÐ¼®Çسª°¡´Â ¹æ¹ý, API ÈÄÅ·À» ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
6Àå, '¾Èµå·ÎÀÌµå ¾Û(APK) µð¹ö±ë'¿¡¼´Â GDB, IDA, JEB2¸¦ ÅëÇØ¼ ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç Äڵ忡 ´ëÇÑ µ¿Àû µð¹ö±ë ȯ°æ ±¸Ãà ¹× µ¿Àû µð¹ö±ë ¹æ¹ý, JNI ¶óÀ̺귯¸® µð¹ö±ë ¹æ¹ý¿¡ ´ëÇØ¼ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
¡Ú ÁöÀºÀÌÀÇ ¸» ¡Ú
¾Èµå·ÎÀ̵忡 °üÇÑ ¸¹Àº Ã¥ÀÌ ÀÖ´Ù. ¼ø¼ö ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ ÃÊÁ¡À» ¸ÂÃá Ã¥, ¾Ç¼ºÄÚµå ºÐ¼®¿¡ ÃÊÁ¡À» ¸ÂÃá Ã¥, Ãë¾àÁ¡ ºÐ¼®¿¡ ÃÊÁ¡À» ¸ÂÃá Ã¥ µî ¾Èµå·ÎÀÌµå °ü·Ã ´Ù¾çÇÑ Ã¥µéÀÌ ÀÖ´Ù. ¿ì¸®´Â ¼ø¼öÇÏ°Ô ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® ¹æ¹ý¿¡ ´ëÇÑ Ã¥À» ¸¸µé°í ½Í¾ú´Ù.
¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ¼³Ä¡ºÎÅÍ ´Ù¾çÇÑ ºÐ¼® µµ±¸¸¦ Ȱ¿ëÇÏ´Â ¹æ¹ý±îÁö ÀÚ¼¼È÷ ±â¼úÇÏ·Á°í ³ë·ÂÇß°í, ±íÀ̰¡ ¾ø´Ù´Â ÁöÀûÀ» ¹ÞÁö ¾Ê±â À§ÇØ °³¹ß Áö½ÄÀÌ ÇÊ¿äÇÑ ºÎºÐ±îÁö ¼³¸íÇÏ¿´´Ù. µ¿Àû ºÐ¼®¿¡¼´Â µð¹ö±ë, APK ÈÄÅ· µî ´Ù¾çÇÑ ¹æ¹ýÀ» ¼³¸íÇß´Ù.
±¹³»¿Ü µµ¼¸¦ ÅëÆ²¾î ÀÌ Ã¥º¸´Ù ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ¸®¹ö½º ¿£Áö´Ï¾î¸µ¿¡ Ãæ½ÇÇÑ Ã¥Àº ¾ø´Ù°í ÀÚºÎÇÑ´Ù. ÀÌÁ¦ ¸· ¾Èµå·ÎÀÌµå ¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» ½ÃÀÛÇÏ·Á´Â »ç¶÷, ÇöÀç ¸ð¹ÙÀÏ ¾ÖÇø®ÄÉÀÌ¼Ç Ãë¾àÁ¡ ºÐ¼® ¹× ¸ðÀÇÇØÅ·¿¡ ¸ö´ã°í ÀÖ´Â »ç¶÷µé¿¡°Ô µµ¿òÀÌ µÉ ¼ö Àִ åÀ» ¸¸µé±â À§ÇØ ´Ù³â°£ÀÇ ³ëÇϿ츦 ³ì¿© ÁýÇÊÇß´Ù. ÀÌ Ã¥À» ÅëÇØ ÇÑ ´Ü°è µµ¾àÇÏ´Â °è±â°¡ µÇ¾úÀ¸¸é ÇÏ´Â ¹Ù¶÷ÀÌ´Ù.
´Ý±â