Android¶ñÒâÈí¼þ»ìÏýÓë¶Ô¿¹ÊÖÒÕרÌâ

Ðû²¼Ê±¼ä 2024-11-25

µÚÒ»Õ ¸Å Êö


½üÄêÀ´£¬Android¶ñÒâÈí¼þÊýÄ¿Ò»Ö±ÅÊÉý£¬Æä½ÓÄɵĹ¥»÷ºÍ¶Ô¿¹ÊÖÒÕÒ²±äµÃÔ½À´Ô½ÖØ´ó¡£ÎªÁ˶Կ¹Çå¾²ÆÊÎö£¬ÈƹýÇå¾²¼ì²â£¬ÇÔÈ¡Ãô¸ÐÊý¾Ý»òÆÆËðϵͳÇå¾²£¬¶ñÒâÈí¼þʹÓÃÖÖÖÖ¶Ô¿¹ÊÖÒÕÀ´Î±×°ºÍÒþ²ØÆä¶ñÒâÐÐΪºÍ´úÂëÂß¼­¡£ÕâЩ¶Ô¿¹ÊÖÒÕÖУ¬Õë¶Ô×ÊÔ´¡¢Îļþ¡¢×Ö½ÚÂëÖ¸Áî¼°»úеÂëÖ¸ÁîµÄ»ìÏýÊÖÒÕ±»ÆÕ±éµØÒýÈëµ½¶ñÒâÈí¼þÖУ¬³ÉΪ¸ß¼¶ºÚ¿ÍÓëÄæÏò¹¤³Ìʦ¶Ô¿¹µÄÖ÷ÒªÕ½³¡¡£


»ìÏýÊÖÒյĽ¹µãÄ¿µÄÊÇÔöÌíÆÊÎöÖØ´óÐÔÀ´¶Ô¿¹ÄæÏò¹¤³Ì£¬Í¬Ê±Ò²ÄÜÌá¸ßÃâɱÄÜÁ¦£¬Ö÷Òª¶Ô¿¹Ä¿µÄ°üÀ¨ÄæÏò¹¤³Ìʦ¡¢¾²Ì¬ÆÊÎö¹¤¾ß¡¢¶¯Ì¬µ÷ÊÔ¹¤¾ßÒÔ¼°×Ô¶¯»¯¼ì²âϵͳ¡£»ìÏýÊÖÒÕͨ¹ýÉèÖÃÆÊÎöÏÝÚå¡¢¸Ä±äÎļþ½á¹¹¡¢ÔöÌíÖ¸ÁîÖØƯºó¡¢ÐéÄ⻯ָÁî¡¢Òþ²Ø´úÂëºÍ×ÊÔ´µÈÖÖÖÖ·±ÔÓµÄÊÖÒÕÀ´ÑÚÊÎÆäÐÐΪÌØÕ÷ºÍ¹¥»÷Òâͼ£¬Í¬Ê±¸øÆÊÎöÖ°Ô±¾¡¿ÉÄÜ´óµÄÖÆÔìÆÊÎöÕÏ°­£¬ÑÓºóÆä¶ñÒâÐÐΪ̻¶µÄʱ¼ä¡£Í¬Ê±£¬¶ñÒâÈí¼þͨ¹ý×éºÏÔËÓÃÖÖÖÖ¸÷ÑùµÄ»ìÏýÓëÆÊÎö¶Ô¿¹ÊÖÒÕ£¬¶ÔÏÖÓÐÇå¾²¼ì²â¹¤¾ßºÍ·À»¤»úÖÆÐγÉÁËÑÏËàÌôÕ½¡£ÕâÐèÒªÒ»Ö±¸ú½øÖÖÖÖÊÖÒÕµÄÉú³¤£¬¶ÔеÄÊֶξÙÐÐÉîÈëÑо¿£¬Öƶ©ÓÐÓÃÇÒ¿ìËÙµÄÓ¦¶ÔÒªÁ죬ǿ»¯ÆÊÎö¹¤¾ßºÍ¼ì²â¹¤¾ß£¬Í¬Ê±Ò²ÓÐÖúÓÚ¿ìËÙÓ¦¶Ô¸ß¼¶ÇÒÖØ´óµÄ¶ñÒâÈí¼þ¹¥»÷¡£


±¾ÎĽ«¶ÔÎÒÃÇÆÊÎöAndroid¶ñÒâÈí¼þÀú³ÌÖÐËùÓöµ½µÄ³£¼û»ìÏýÊÖÒÕ¾ÙÐÐ×ܽáºÍÆÊÎö£¬´Ó¶ñÒâÈí¼þ»ìÏýÓë¶Ô¿¹µÄÊÓ½ÇÀ´ÐðÊöÁíÒ»ÃæµÄÇå¾²¹¥·ÀÊÖÒÕ£¬ÒÔ×ÊÖúÇå¾²¹¤³ÌʦºÍÓû§ÃÇÔ½·¢ÉîÈëÃ÷È·ÕâÒ»ÁìÓòµÄÊÖÒÕÇéÐΣ¬Í¬Ê±Ò²ÓÐÖúÓÚÆÊÎöÖ°Ô±¸ü¸ßЧµØÆÊÎö¶ñÒâ´úÂë¡£

µÚ¶þÕ Android¶ñÒâÈí¼þ»ìÏýÊÖÒÕµÄÑݽø

Ëæ×ÅÒƶ¯Çå¾²ÁìÓò¶Ô¿¹µÄÒ»Ö±Éý¼¶£¬Android ¶ñÒâÈí¼þµÄ»ìÏýÊÖÒÕÒ²ÂÄÀúÁËÏÔÖøµÄÉú³¤£¬´Ó¼òÆӵıêʶ·û»ìÏýÖð²½Ñݽøµ½ÖØ´óµÄÐéÄ⻯±£»¤£¨VMP£©ÊÖÒÕ£¬·ºÆð³öÓÉdzÈëÉî¡¢Öð²½Éý¼¶µÄÇ÷ÊÆ¡£Îª¸üÇåÎúµØÃ÷È·Õâһת±ä£¬ÎÒÃǽ«»ìÏýÊÖÒÕµÄÉú³¤´óÖ»®·ÖΪÔçÆÚ¡¢ÖÐÆÚºÍÄ¿½ñ½×¶Î£¬²¢´Ó²î±ð²ãÃæ¾ÙÐÐÏêϸÆÊÎö¡£


2.1 ÔçÆڽ׶Σº»ù´¡Î±×°Óë¼òÆÓ¼ÓÃÜ 


ÔÚÔçÆÚ£¬¶ñÒâÈí¼þµÄ»ìÏýÊÖÒÕÖ÷ÒªÒÔÑÚÊδúÂëºÍ×ÊÔ´ÄÚÈÝΪĿµÄ£¬ÊֶνÏΪ¼òÆÓÖ±½Ó£¬Æä»ìÏýÊÖÒÕÖ÷Òª¼¯ÖÐÓÚJava²ã£¬Ê¹ÓÃAndroidÓ¦ÓÃÒÔJavaÓïÑÔ¿ª·¢µÄÌØÕ÷£¬Í¨¹ý¼òÆӵĻìÏýÊֶιæ±ÜÇå¾²ÆÊÎöºÍ¼ì²â¡£ÔÚÕâһʱÆÚ£¬¶ñÒâÈí¼þ×îÏÈ̽Ë÷ÎļþÃûÌÃÏà¹ØµÄ»ìÏýÕ½ÂÔ¡£ÀýÈ磬ͨ¹ýÐÞ¸ÄZIPÃûÌõÄAPKα¼ÓÃÜ£¬ÒÔ¼°2012ÄêºÚñ´ó»áÉÏÊ×´ÎÌá³öµÄʹÓÃDEXÍ·Òþ²Ø´úÂëµÄÊÖÒÕ£¬ÕâÒ»Õ½ÂÔËæºó±»Syrup¶ñÒâÈí¼þËù½ÓÄÉ¡£Í¬Ê±£¬Ä¾ÂíObadʹÓÃÉÌÒµ»ìÏý¹¤¾ßDexGuard£¨ProGuardµÄÔöÇ¿°æ£©ÊµÏÖÁËManifest×ֶεÄÖØ´ó»ìÏýÒÔ¼°»ùÓÚclinitÒªÁìµÄ¶¯Ì¬´úÂë½âÃÜ£¬±»ÓþΪ¡°Ê·ÉÏ×îÇ¿AndroidľÂí¡±¡£


ÕâÒ»½×¶Î£¬¶ÌÐÅ×èµ²ÀàºÍËø»úÀÕË÷Àà¶ñÒâÈí¼þÆÕ±é½ÓÄɶàÖÖ»ìÏýÊֶΣ¬°üÀ¨´úÂë»ìÏý¡¢×Ö·û´®¼ÓÃÜ¡¢´úÂëÖ§½â¡¢À¬»ø´úÂë×¢È룬ÒÔ¼°ÉÌÒµ¼Ó¹Ì¹¤¾ßµÄʹÓá£ÕâЩÊÖÒÕÖ»¹ÜÏà¶Ô»ù´¡£¬µ«ÔÚÆäʱµÄÇå¾²ÇéÐÎÖУ¬ÒѾ­ÏÔÖøÌá¸ßÁ˶ñÒâÈí¼þµÄÒþ²ØÐԺͿ¹¼ì²âÄÜÁ¦¡£ÏÂͼչʾÁËÒ»¿î¶ÌÐÅ×赲ľÂíµÄ»ìÏýЧ¹û¡£


ͼƬ1.png

ͼ1 Ò»¸ö¶ÌÐÅ×赲ľÂíµÄ»ìÏýʾÀý


2.2 ÖÐÆڽ׶ΣºÂß¼­ÖØ´ó»¯Ó붯̬¶Ô¿¹ 


Ëæ×ÅÇå¾²¼ì²âÊÖÒÕµÄÒ»Ö±ÌáÉý£¬¶ñÒâÈí¼þÖð²½ÒýÈëÔ½·¢ÖØ´óµÄ»ìÏýÊֶΣ¬ÒÔÌá¸ßÒþ²ØÐÔ²¢ÓÐÓùæ±ÜÆÊÎö¡£Îª¹æ±Ü¾²Ì¬ÆÊÎö£¬ËüÃÇʹÓö¯Ì¬¼ÓÔغͷ´Éä»úÖÆ£¬Í¨¹ý·´É䶯̬ŲÓÃÒþ²ØµÄÒªº¦´úÂ롣ͬʱ£¬¶ñÒâÈí¼þ½ÓÄɶàÖؼÓÃÜÓë½âѹսÂÔ£¬¶ÔÒªº¦´úÂë¾ÙÐжàÌõÀí¼ÓÃÜ£¬²¢ÔÚÔËÐÐʱͨ¹ýÖØ´óµÄ½âÃÜÀú³ÌÖð²½ÊÍ·ÅÕæʵµÄ¶ñÒâÂß¼­¡£ÀýÈ磺ÔÚÎÒÃÇÐû²¼µÄÆÊÎö±¨¸æ¡¶ÐÂÐÍAndroidÒøÐÐľÂí¡°MoqHao¡±Ê¹ÓÃÉç½»ÍøÂçÒþ²ØC&C·þÎñÆ÷¡·ÖУ¬¶ñÒâÈí¼þ½«ÕæÕýµÄ¶ñÒâdexÎļþ¼ÓÃܺó£¬ÒÔBase64±àÂëµÄÐÎʽÉúÑÄÔÚԭʼAPKµÄassetsĿ¼Ï¡£ÔÚÕâÖÖÇéÐÎÏ£¬Ô­Ê¼APK½ö×÷Ϊһ¸öÍâ¿Ç±£´æ£¬ÆäÔÚÔËÐÐʱ»á¶¯Ì¬½âÃܲ¢¼ÓÔØÕæÕýµÄ¶ñÒâdexÎļþ£¬ÒÔʵÏÖÆä¹¥»÷Ä¿µÄ£¬ÆäÀú³ÌÈçÏÂͼËùʾ£º


ͼƬ2.png

ͼ2 Java²ã»ìÏýdexÎļþµÄʾÀý


ΪÁËÈÅÂÒÆÊÎö·¾¶£¬¶ñÒâÈí¼þÒýÈë¿ØÖÆÁ÷»ìÏýÊÖÒÕ¡£Í¨¹ý²åÈëÎ޹صķÖÖ§¡¢Ñ­»·ºÍÌøתÓï¾ä£¬¶ñÒâÈí¼þʹ´úÂëÖ´Ðз¾¶Ô½·¢ÖØ´ó£¬×è°­ÆÊÎöÖ°Ô±»¹Ô­ÆäÂß¼­¡£¶øÔÚÍŽáÉÌÒµ¼Ó¹Ì½â¾ö¼Æ»®ºó£¬Í¨¹ýÄÚ´æ¼ÓÔØ¡¢Ö¸Áî³éÈ¡ºÍÖ¸Áîת»»µÈÊÖÒÕ£¬½øÒ»²½ÌáÉýÁ˶Կ¹ÆÊÎöµÄÄÜÁ¦£¬Ê¹µÃÆÊÎöÖ°Ô±ÄÑÒÔ׼ȷ»¹Ô­×Åʵ¼ÊµÄÖ´ÐÐÂß¼­¡£


Ëæ×Å·´»ìÏýÊÖÒÕµÄÇ°½øºÍÏÖ´ú»¯·´±àÒ빤¾ßµÄÆÕ¼°£¬¶ñÒâÈí¼þÖð½¥½«»ìÏýÕ½ÂÔÏòNative²ãתÒÆ£¬ÒÔ½øÒ»²½ÌáÉýÄæÏòÆÊÎöµÄÄѶÈ¡£Æä³£ÓÃÊÖÒÕ°üÀ¨¶Ô»á»°Êý¾Ý¼ÓÃÜÒÔ±ÜÃâÃô¸ÐÐÅϢй¶¡¢¼ÓÃÜÒªº¦º¯ÊýÌåÒÔÒþ²Ø¶ñÒâÐÐΪ¡¢²åÈ뻨ָÁî×ÌÈÅ·´»ã±à¹¤¾ßÆÊÎö¡¢Ê¹ÓÃLLVM¿ò¼ÜʵÑéÖØ´óµÄ´úÂë»ìÏý£¬ÒÔ¼°Í¨¹ý·´µ÷ÊÔÊÖÒÕ¼ì²âºÍ×èÖ¹µ÷ÊÔÆ÷½éÈë¡£ÕâЩսÂÔÏศÏà³É£¬²»µ«ÏÔÖøÔöÌíÁËÄæÏò¹¤³ÌµÄÖØ´óÐÔ£¬Ò²½øÒ»²½Ìá¸ßÁËÇå¾²Ñо¿Ö°Ô±ÆÊÎöµÄÊÖÒÕÃż÷¡£ÀýÈ磺ÔÚÎÒÃÇÐû²¼µÄ¡¶Ò»¿îͨ¹ýSO¾ÙÐÐ×Ô±£»¤µÄÒøÐÐAPPЮÖÆľÂíÉî¶ÈÆÊÎö±¨¸æ¡·ÖУ¬ÏêϸÆÊÎöÁ˸ÃľÂíµÄÔËÐÐÐÐΪ¡£Ïêϸ¶øÑÔ£¬libload.soÄ£¿éÈÏÕæ½âÃܲ¢¼ÓÔØÏÖʵµÄ¶ñÒâ´úÂë¡£¸ÃÄ£¿éʹÓÃJava·´Éä»úÖÆŲÓÃjavax.crypto°üÖеļӽâÃܺ¯Êý£¬¶Ô´æ´¢ÔÚassetsĿ¼ÏµÄmycode.soÎļþ¾ÙÐÐAES½âÃÜ¡£½âÃܺóµÄÎļþͨ¹ý×Ô½ç˵µÄDexClassLoader¼ÓÔز¢Ö´ÐУ¬Ö´ÐÐÍê±Ïºó£¬½âÃܵÄÎļþ»á±»É¾³ý¡£ÕâЩȫÐÄÉè¼ÆµÄ»ìÏýÊÖ¶ÎÓÐÓÃÒþ²ØÁ˶ñÒâÐÐΪ£¬ÏÔÖøÔöÌíÁËÇå¾²ÆÊÎöµÄÖØ´óÐÔ£¬Ê¹µÃ¶ñÒâÈí¼þµÄ¼ì²âºÍÆÊÎö±äµÃÔ½·¢ÄÑÌâ¡£¼ÓÔØNative½âÃÜ¿âµÄ²¿·Ö´úÂëÈçÏÂͼËùʾ£º


ͼƬ3.png

ͼ3 Natvie²ã»ìÏýʾÀý


±ðµÄ£¬Õë¶ÔÎļþÃûÌõĻìÏýÕ½ÂÔÒ²±äµÃÔ½·¢¶àÑùºÍÖØ´ó¡£ËüÃÇÇÉÃîʹÓà Androidϵͳ¶ÔijЩÎļþÃûÌÃ×ֶοíËÉУÑéµÄÌØÕ÷£¬Í¬Ê±½èÖú·´±àÒ빤¾ß¶ÔÎļþÃûÌõÄÑÏ¿áÆÊÎöÂß¼­£¬Éè¼ÆÁ˶àÖÖ×ÌÈźÍÒþ²Ø»úÖÆ¡£Í¨¹ý¶ÔÕâЩÎļþÃûÌõÄÎÞаʹÓ㬶ñÒâÈí¼þµÃÒÔʵÏÖ¸ü¸ßˮƽµÄÒþ²ØÐÔ£¬½øÒ»²½Ìá¸ßÁËÄæÏòÆÊÎöºÍ¼ì²âµÄÄѶÈ£¬Í¬Ê±Ò²Îª»ìÏýÊÖÒÕµÄÒ»Á¬Éú³¤µÓÚ¨ÁË»ù´¡¡£


2.3 Ä¿½ñ½×¶Î£ºÖØ´ó»ìÏýÓë¶à²ã¶Ô¿¹ 


ÔÚÄ¿½ñ½×¶Î£¬¶ñÒâÈí¼þµÄ»ìÏýÊÖÒÕÒѾ­¸ß¶ÈÖش󻯣¬ÆÕ±éÍŽᶯ̬ºÍ¾²Ì¬¶Ô¿¹ÊֶΣ¬ÒÔÔöÇ¿Òþ²ØÐÔ²¢¶Ô¿¹¶àÖÖ¼ì²âÒªÁ졣ͨ¹ý½«Java²ã´úÂë»ìÏý¡¢¶¯Ì¬¼ÓÔØÓëNative²ã¼Ó¿ÇÊÖÒÕÈÚºÏʹÓ㬶ñÒâÈí¼þ½«½¹µãÂß¼­ÂþÑÜÓÚ²î±ðÌõÀíÖУ¬´ó·ùÌá¸ßÁ˼ì²âºÍÆÊÎöµÄÖØ´óÐÔ¡£ÒÔÏÂÊÇÏÖÔÚ³£¼ûµÄ»ìÏýÕ½ÂÔ£º


  • Java²ãÓëNative²ãÏàÍŽ᣺¶ñÒâÈí¼þͨ¹ý½«Java²ãµÄ´úÂë»ìÏý¡¢¶¯Ì¬¼ÓÔØ¡¢VMPµÈÊÖÒÕÓëNative²ãµÄ´úÂë»ìÏýÊÖ¶ÎÏà͎ᣬ½«¶ñÒâÂß¼­ÊèÉ¢ÔÚ²î±ðÌõÀíÖС£ÕâÖÖ¿ç²ã»ìÏýÕ½ÂÔÏÔÖøÔöÌíÁ˼ì²âºÍÆÊÎöµÄÖØƯºó£¬ÒªÇóÆÊÎöְԱͬʱÕÆÎÕ¶àÖÖÊÖÒÕ£¬²Å»ªÖÜÈ«Ã÷È·ÆäÔËÐлúÖÆ¡£
  • ʹÓÃÆäËû¿ª·¢ÓïÑÔ£º¶ñÒâÈí¼þ³£Ê¹ÓÃLua¡¢GoLang¡¢Flutter¡¢Ò×ÓïÑԵȷǹŰåµÄ C/C++ ÓïÑÔ¾ÙÐпª·¢£¬´Ó¶øÏÔÖøÔöÌíÄæÏòÆÊÎöµÄÄѶÈ¡£ÕâЩÓïÑÔÆæÒìµÄÌØÕ÷½øÒ»²½Ìá¸ßÁËÆÊÎöµÄÖØ´óÐÔ£¬Í¬Ê±Ï÷ÈõÁ˹ŰåÄæÏòÆÊÎö¹¤¾ßµÄЧÂʺÍЧ¹û¡£
  • ÔËÐÐÇéÐμì²â¼°·´µ÷ÊÔ£º¶ñÒâÈí¼þͨ¹ý¼ì²é×°±¸µÄϵͳÊôÐÔ¡¢Îļþϵͳ½á¹¹¡¢ÏµÍ³È¨ÏÞ״̬µÈ£¬ÅжÏÄ¿µÄ×°±¸ÊÇ·ñΪģÄâÆ÷»òÒÑ»ñÈ¡RootȨÏÞ£¬²¢ÔÚ¼ì²âµ½ÕâЩÌØÕ÷ʱ×èÖ¹¶ñÒâÂß¼­µÄÔËÐС£Í¬Ê±£¬ËüÃÇŲÓÃϵͳAPI¼ì²éµ÷ÊÔ״̬£¬¼à²âµ÷ÊÔ¹¤¾ßÌØÓеÄÐÐΪ£¬ÉõÖÁ×Ô¶¯Òý·¢Òì³£ÒÔ²¶»ñµ÷ÊÔ¹¤¾ßµÄ·´Ó¦£¬ÓÐÓÃ×èÖ¹¶¯Ì¬ÆÊÎö¹¤¾ßµÄ×ÌÈÅ¡£
  • ÉÌÒµ¼Ó¹Ì±£»¤ÊÖÒÕ£ºÒ»Ð©¶ñÒâÈí¼þʹÓÃÉÌÒµ¼Ó¹Ì±£»¤ÊÖÒÕ£¬½øÒ»²½ÔöÇ¿ÁË´úÂëµÄ¿¹ÄæÏòÄÜÁ¦£¬Ê¹µÃ¹Å°åµÄÇå¾²¹¤¾ßºÍÆÊÎöÒªÁìÄÑÒÔ×àЧ¡£
  • ´úÂëÐéÄ⻯ÊÖÒÕ£ºÍ¨¹ý½«´úÂë·­ÒëΪ×Ô½ç˵µÄÐéÄâÖ¸Á£¬²¢ÔÚÔËÐÐʱͨ¹ýǶÈëµÄÐéÄâ»úÚ¹ÊÍÖ´ÐУ¬ÕâÖÖÊÖÒÕ¼«´óµØÌá¸ßÁËÄæÏòÆÊÎöµÄÄѶÈ¡£

ÀýÈ磬ij¶ñÒâÈí¼þͨ¹ýʹÓÃNative´úÂëʵÏÖ¶ÔFridaºÍIDAµÄ¼ì²â£¬Æä´úÂëÈçÏ£º


ͼƬ4.png

ͼ4 Natvie²ã¼ì²âµ÷ÊÔÆ÷µÄ´úÂëʾÀý


Android¶ñÒâÈí¼þµÄ»ìÏýÊÖÒÕÒѾ­´Ó¼òÆӵĴúÂë»ìÏýÖð½¥Éú³¤µ½ÏÖÔÚÖØ´óµÄ¿ç²ãÍŽáÐÎʽ£¬ÆäÒþ²ØÐÔÒ»Á¬ÔöÇ¿£¬ÊÖÒÕÊÖ¶ÎÒ²Óú·¢¶àÑù»¯¡£ÕâÖÖÉú³¤Ç÷ÊƶԹŰåÇå¾²¼ì²â¹¤¾ß¶øÑÔÊÇÑÏËàµÄÌôÕ½£¬Í¬Ê±Ò²´ÙʹÑо¿Ö°Ô±±ØÐèÒ»Ö±Á¢ÒìÓ¦¶ÔÕ½ÂÔ£¬ÒÔ´ËÀ´Ó¦¶Ô¶ñÒâÈí¼þÈÕÒæÖØ´óµÄ»ìÏýÊֶΡ£ÔÚ´ËÅä¾°Ï£¬ÉîÈëÏàʶ²¢ÆÊÎö³£¼ûµÄ»ìÏýÊÖÒÕ£¬ÊÇÌáÉý¶ñÒâÈí¼þÆÊÎöºÍ¼ì²âÄÜÁ¦µÄÒªº¦¡£½ÓÏÂÀ´£¬ÎÒÃǽ«Í¨¹ýÏÖʵÊÂÇéÖг£Óöµ½µÄ¶ñÒâÈí¼þ»ìÏýÊÖÒÕ¾ÙÐÐÏêϸÆÊÎö£¬Ì½ÌÖÕâЩÊÖÒÕµÄÓ¦Ó÷½·¨¼°ÏìÓ¦µÄÌá·À¶Ô²ß¡£


µÚÈýÕ ³£¼û»ìÏýÊÖ¶ÎÓëÊÖÒÕÆÊÎö


ÔÚÆÊÎöAndroid¶ñÒâÈí¼þʱ£¬Çå¾²Ñо¿Ö°Ô±Í¨³£ÐèÒª´Ó¾²Ì¬ÆÊÎöºÍ¶¯Ì¬ÆÊÎöÁ½·½ÃæÈëÊÖ¡£¾²Ì¬ÆÊÎöÍùÍùÊÇ×îÏȾÙÐеİ취£¬¶ø»ìÏýÊÖÒÕͨ¹ýÐ޸ĴúÂëµÄ½á¹¹ºÍ±í´ï·½·¨£¨Èç×Ö·û´®¼ÓÃÜ¡¢´úÂë²ð·Ö¡¢¶¯Ì¬¼ÓÔصȣ©£¬Ê¹¶ñÒâÈí¼þµÄÆÊÎöÄѶÈÏÔÖøÔöÌí¡£±¾ÎĽ«ÒÔÇå¾²Ñо¿Ö°Ô±ÆÊÎöAPKÎļþµÄÀú³ÌΪÇÐÈëµã£¬Öð²½ÏÈÈÝÖÖÖÖ·´»ìÏýÕ½ÂÔ£¬×ÊÖúÑо¿Ö°Ô±ÓÐÓÃÓ¦¶Ô²î±ðÌõÀíµÄ»ìÏýÊÖÒÕÌôÕ½¡£


3.1 APK·´±àÒ빤¾ßµÄ¶Ô¿¹


ÔÚÆÊÎöAndroidÓ¦ÓÃʱ£¬Ê×ÏÈÐèҪʹÓÃAPK·´±àÒ빤¾ß£¨ÈçApktool¡¢Jadx£©ÌáÈ¡APKÎļþÖеÄÔ´´úÂëºÍ×ÊÔ´¡£È»¶ø£¬¶ñÒâÈí¼þÍùÍù»áͨ¹ý¶àÖÖ»ìÏýÊֶζÔAPK¾ÙÐб£»¤£¬ÒÔ×ÌÈÅ·´±àÒëÀú³Ì¡£ÀýÈ磬¶ñÒâÈí¼þ¿ÉÄÜʹÓÃAndroidÔÚÆÊÎöAPKÎļþʱδÑÏ¿áУÑéZIPÃûÌõÄijЩ×ֶΣ¬´Ó¶øͨ¹ý¸Ä¶¯APKÎļþµÄZIPÃûÌÃ×Ö¶ÎÀ´Èƹý»ùÓÚZIPÃûÌÃÆÊÎöµÄ·´±àÒ빤¾ß¡£ÕâÖÖÊÖ¶ÎÓÈÆä³£¼ûÓÚһЩ»ùÓÚAndroidµÄÒøÐÐľÂí£¨ÈçBianLian¡¢CerberusºÍTeaBot£©ÖУ¬Ä¿µÄÊÇ×èÖ¹Çå¾²Ñо¿Ö°Ô±ºÍ×Ô¶¯»¯ÆÊÎöƽ̨ÓÐÓÃÌáÈ¡APKÎļþÄÚÈÝ£¬½ø¶ø¶Ô¿¹¾²Ì¬ÆÊÎöºÍ·´²¡¶¾¼ì²â¡£


ΪÁ˸üºÃµØÃ÷È·¶ñÒâÈí¼þµÄ»ìÏýÕ½ÂÔ£¬ÓÈÆäÊÇÔõÑùͨ¹ý¸Ä¶¯ZIPÃûÌÃ×Ö¶ÎÀ´×ÌÈÅ·´±àÒëÀú³Ì£¬ÓÐÐëÒªÏàʶһЩZIPÎļþ½á¹¹µÄ»ù±¾ÐÅÏ¢¡£ËäÈ»ZIPÃûÌõÄÏêϸ½á¹¹Áè¼ÝÁ˱¾ÎĵÄÌÖÂÛ¹æÄ££¬µ«ÎÒÃÇ¿ÉÒÔ¼òÆÓÏÈÈÝһЩ³£¼ûµÄ¡¢¶ñÒâÈí¼þ¾­³£¸Ä¶¯µÄ×ֶΡ£ÎÒÃÇÒÔ Python µÄzipfile.py Ä£¿éÖÐµÄ ZipInfo ÀàΪÀý£¬Õ¹Ê¾ÁË ZIPÎļþÔªÊý¾ÝÖеĶà¸öÒªº¦×ֶΡ£Ïêϸ×ֶμ°Æä¼ÄÒåÈçͼËùʾ£º


ͼƬ5.png

ͼ5 ZipinfoÀàµÄ½á¹¹ÐÅÏ¢


ÆäÖУ¬compress_type¡¢extract_version¡¢reservedºÍflag_bits¶¼ÊǶñÒâÈí¼þ¾­³£¸Ä¶¯µÄ×ֶΡ£ÕâЩÐ޸ĿÉÒÔµ¼Ö·´±àÒ빤¾ßÔÚÆÊÎöÎļþʱ·ºÆð¹ýʧ»òÎÞ·¨×¼È·¶ÁÈ¡ÎļþÄÚÈÝ£¬´Ó¶øÓÐÓõØ×è°­¾²Ì¬ÆÊÎöÀú³Ì¡£Í¨¹ý¸Ä¶¯ÕâЩ×ֶΣ¬¶ñÒâÈí¼þ²»µ«Äܹ»¹æ±Ü³£¼ûµÄ·´±àÒ빤¾ß£¬»¹ÄÜÔöÌí±»¼ì²âµÄÄѶÈ£¬Ìá¸ßÆäÔÚ¾²Ì¬ÆÊÎöÖеÄÒþ²ØÐÔ¡£


ÔÚÏàʶÁ˶ñÒâÈí¼þÔõÑùͨ¹ý¸Ä¶¯ZIPÃûÌÃ×Ö¶ÎÀ´¶Ô¿¹¾²Ì¬ÆÊÎöºó£¬½ÓÏÂÀ´ÎÒÃÇÐèÒª¹Ø×¢AndroidÓ¦ÓÃÖÐÁíÒ»¸ö³£¼ûµÄ·´±àÒëÊֶΡª¡ªAndroidManifest.xmlÎļþ£¨ÒÔϼò³Æ¡°Çåµ¥Îļþ¡±£©¡£Çåµ¥ÎļþÊÇ·´±àÒëÀú³ÌÖбØÐèÆÊÎöµÄÒªº¦²¿·Ö£¬Ëü°üÀ¨ÁËÓ¦ÓõĽ¹µãÉèÖã¬Èç×é¼þ¡¢È¨ÏÞµÈÐÅÏ¢¡£Òò´Ë£¬ÌáÈ¡¡¢¶ÁÈ¡ºÍÆÊÎöÇåµ¥ÎļþÊǾ²Ì¬ÆÊÎöAPKÑù±¾Ê±µÄÖ÷Òª°ì·¨¡£ÎªÁ˹æ±Ü·´±àÒ빤¾ßµÄʶ±ð£¬¶ñÒâÈí¼þͨ³£Í¨¹ýÈ«ÐĸĶ¯Çåµ¥ÎļþÀ´×ÌÈÅÆäÕý³£ÆÊÎö¡£ÓÉÓÚÇåµ¥ÎļþÔÚ¾²Ì¬ÆÊÎöÖеÄÖ÷ÒªÐÔºÍÖØ´óÐÔ£¬Ëü³ÉΪÁ˶ñÒâÈí¼þ³£Óõķ´±àÒë¶Ô¿¹ÊÖ¶ÎÖ®Ò»¡£ÈôÊǶÁÕ߶ÔÇåµ¥ÎļþµÄÏêϸ½á¹¹²»Ì«Ïàʶ£¬¿ÉÒÔ×ÔÐлá¼ûÒÔÏÂÁ´½Ó£¨https://bbs.kanxue.com/thread-194206.html£©²éÔÄÏà¹ØÐÅÏ¢¡£


½ÓÏÂÀ´£¬ÎÒÃǽ«ÏÈÈݼ¸ÖÖ³£¼ûµÄÇåµ¥Îļþ»ìÏýÊֶΣ¬Ì½ÌÖ¶ñÒâÈí¼þÊÇÔõÑùͨ¹ýÕâЩÊֶζԿ¹·´±àÒ빤¾ß²¢Òþ²ØÆä¶ñÒâÐÐΪµÄ£º


£¨1£©ÐÞ¸ÄXMLÎļþµÄħÊõ£º¶ñÒâÈí¼þͨ¹ý¸Ä¶¯Çåµ¥ÎļþÖеÄħÊõ×ֶΣ¬Ê¹µÃ¾²Ì¬ÆÊÎö¹¤¾ßÔÚÆÊÎöʱ·ºÆð¹ýʧ¡£ÕâЩÐÞ¸Äͨ³£²»»áÓ°ÏìÓ¦ÓõÄÕý³£ÔËÐУ¬µ«»áµ¼ÖÂÆÊÎö¹¤¾ßÎÞ·¨×¼È·ÆÊÎöÇåµ¥ÎļþµÄ½á¹¹£¬ÉõÖÁ¿ÉÄÜÒý·¢·´±àÒ빤¾ßµÄÒì³£¹ýʧ£¬´Ó¶ø×èÖ¹·´±àÒëÀú³Ì£¬ÎÞ·¨ÌáÈ¡Ô´´úÂë¡£


ͼƬ6.png

ͼ6 ×óͼΪÕý³£µÄħÊõ£¬ÓÒͼΪ»ìÏýµÄħÊõʾÀý


£¨2£©¸Ä¶¯Òªº¦×ֶΣº¶ñÒâÈí¼þ¿ÉÄÜ»á¸Ä¶¯Çåµ¥ÎļþÖеÄÒªº¦×ֶΣ¬ÀýÈçͨ¹ýÐÞ¸ÄStringPoolÖÐ×Ö·û´®µÄ¸öÊý¡£ËäÈ»AndroidϵͳÔÚÔËÐÐʱ²¢²»ÒÀÀµÕâ¸ö×Ö¶ÎÀ´ÅÌËã×Ö·û´®µÄ¸öÊý£¬¶øÊÇͨ¹ý¶¯Ì¬ÅÌËãÀ´´¦Öóͷ£×Ö·û´®£¬µ«Ò»Ð©·´±àÒ빤¾ßÈ´»áÒÀÀµÕâ¸ö×Ö¶ÎÀ´ÆÊÎöXMLÎļþÖеÄÄÚÈÝ¡£Í¨¹ý¸Ä¶¯Õâ¸ö×ֶΣ¬¶ñÒâÈí¼þ¿ÉÒÔ×ÌÈÅ·´±àÒ빤¾ßµÄÕý³£ÆÊÎö£¬µ¼Ö¹¤¾ß¶ÁÈ¡µ½¹ýʧµÄ×Ö·û´®¸öÊý£¬´Ó¶øÎÞ·¨×¼È·ÆÊÎöÇåµ¥ÎļþµÄ½á¹¹£¬½ø¶øÓ°Ï쾲̬ÆÊÎöµÄ׼ȷÐÔºÍÍêÕûÐÔ¡£ÕâÖÖÊÖ¶ÎÓÐÓÃÔöÌíÁ˾²Ì¬ÆÊÎö¹¤¾ßµÄÆÊÎöÄѶÈ£¬ÌáÉýÁ˶ñÒâÈí¼þµÄÒþ²ØÐÔ¡£


ͼƬ7.png

ͼ7 ¸Ä¶¯StringPoolSizeµÄ»ìÏýʾÀý


ÔÚÉÏͼÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬stringCountµÄֵΪ2907£¬¶øStringOffsets×îÏÈÓÚÆ«ÒÆλÖÃ36£¬¾ÞϸΪ 11628¡£StringOffsetsÊÇÒ»¸ö°üÀ¨Ã¿¸ö×Ö·û´®ÔÚ×Ö·û´®³ØÖеÄÏà¶ÔÆ«ÒÆÁ¿µÄÊý×飬Æä¾ÞϸΪ stringCount * 4£¬¼´ 11628¡£·´±àÒ빤¾ßƾ֤»ìÏýºóµÄstringCountÖµÅÌËãStringOffsets¾Þϸ£¬²¢¾ÙÐÐÆÊÎö£¬Òò´ËÆÊÎöЧ¹ûÍÉ»¯¡£ÕâÖÖ·×ÆçÖÂÐÔÊǵ¼Ö·´±àÒ빤¾ßÆÊÎöʧ°ÜµÄÔµ¹ÊÔ­ÓÉ¡£È»¶ø£¬AndroidϵͳÔÚ´¦Öóͷ£Çåµ¥Îļþʱ²¢Î´Ö±½ÓÒÀÀµstringCount×ֶεÄÖµ¡£Í¨¹ýÉó²é Android Ô´Âë¿ÉÒÔ·¢Ã÷£¬AndroidϵͳÔÚÔËÐÐʱƾ֤ÏÖʵÊý¾Ý¶¯Ì¬ÅÌËã stringPoolSize£¬¶ø·ÇÖ±½ÓʹÓÃÎļþÖÐÌṩµÄÊýÖµ¡£


ͼƬ8.png

ͼ 8  AndroidϵͳԴÂëÖÐÅÌËãmStringPoolSizeµÄ´úÂëʾÀý


£¨3£©²åÈëÔàÊý¾Ý£ºÓÐЩ¶ñÒâÈí¼þ»á¾ÓÐÄÔÚÇåµ¥ÖвåÈëһЩÔàÊý¾Ý¡£ÕâÖÖÊý¾Ý²»»á±»ÏÖʵʹÓ㬵«»áÆÆËðÇåµ¥ÎļþµÄÃûÌã¬Ê¹µÃÆÊÎö¹¤¾ßÄÑÒÔʶ±ðÆäÖеÄÓÐÓÃÐÅÏ¢¡£


ͼƬ9.png

ͼ9 ×óͼÏÔʾ`startEle0`ÄÚÈÝ£¬ÓÒͼչʾ`startEle0`ºÍ`startEle1`µÄÆ«ÒÆÁ¿¼°¾Þϸ


ÉÏͼչʾÁËÒ»¸ö»ìÏýºóµÄÇåµ¥Îļþ¡£ÔÚ×óͼÖУ¬µÚÒ»¸östartElementµÄ¾Þϸ×Ö¶ÎΪ196£¬µ«headerÖеÄsize×Ö¶ÎΪ224£¬Òâζ×ÅstartElementºó¸½¼ÓÁË28×Ö½ÚµÄδ֪Êý¾Ý¡£ÓÒͼÖУ¬µÚ¶þ¸östartElementµÄÆðʼλÖÃΪ0x15A4£¬ÕýºÃλÓÚ²åÈëµÄÕâ28×Ö½ÚÀ¬»øÊý¾ÝÖ®ºó£¨ÓÒͼÖÐÂÌÉ«²¿·ÖËùʾ£©¡£ÕâЩ¶àÓàµÄ28×ֽڻᵼÖ·´±àÒ빤¾ßÔÚºóÐøÆÊÎöʱÍÉ»¯¡£AndroidϵͳÄܹ»Õý³£ÆÊÎö£¬ÊÇÓÉÓÚϵͳÅÌËãÿ¸östartElementµÄλÖÃʱ£¬½öÒÀÀµÉÏÒ»¸östartElementµÄÆðʼλÖú;Þϸ×ֶΣ¬´Ó¶ø×Ô¶¯Ìø¹ýÀ¬»øÊý¾Ý¡£


£¨4£©²åÈ볬³¤×Ö·û´®»òÌØÊâ×Ö·û£ºÎªÁË×ÌÈž²Ì¬ÆÊÎö¹¤¾ßµÄÕý³£ÆÊÎö£¬¶ñÒâÈí¼þ¿ÉÄÜ»áÔÚÌض¨×Ö¶ÎÖвåÈ볬³¤×Ö·û´®¡¢ÌØÊâ·ûºÅ¡¢emojiÐÄÇé»ò²»¿É¼û×Ö·û¡£ÕâЩ×Ö·ûËäÈ»²»»áÓ°ÏìÓ¦ÓõÄÕý³£¹¦Ð§£¬µ«ËüÃÇÏÔÖøÔöÌíÁËÆÊÎö¹¤¾ßµÄ´¦Öóͷ£ÄѶÈ¡£ÈôÊÇ·´±àÒ빤¾ßµÄÈÝ´íÄÜÁ¦½Ï²î£¬ÕâЩÐ޸ĿÉÄܵ¼Ö¹¤¾ß±ÀÀ£»òÎÞ·¨×¼È·ÆÊÎöÇåµ¥Îļþ£¬´Ó¶øʹ¾²Ì¬ÆÊÎö±äµÃÔ½·¢ÄÑÌâ¡£


ͼƬ10.png

ͼ10 ͨ¹ý²»¿É¼û×Ö·ûʵÏÖ³¬³¤Ó¦ÓÃÃû³Æ£¨label£©µÄʾÀý


ÉÏͼÖУ¬Çåµ¥ÎļþÖеÄlabel×ֶδÓstring.xmlÖеÄapp_name×ֶζÁÈ¡£¬¶øapp_name×Ö¶ÎÔò°üÀ¨Á˲»¿É¼û×Ö·û£¨Èç\u0000£©ºÍ³¬³¤×Ö·û´®¡£Í¨¹ýÕâÖÖ·½·¨£¬¶ñÒâÈí¼þ¿ÉÒÔÓÐÓÃ×ÌÈÅ·´±àÒ빤¾ßµÄÆÊÎöÀú³Ì¡£ÈôÊÇ×Ô¶¯»¯ÆÊÎöƽ̨µÄÈÝ´í»úÖÆȱ·¦£¬ÈçÊý¾Ý¿â×ֶζÔapp_name»òversion×ֶ㤶ÈÓÐÏÞÖÆ£¬ÕâЩ¸Ä¶¯¿ÉÄܵ¼ÖÂÒì³££¬½ø¶øʹ¶ñÒâÈí¼þÔÚ×Ô¶¯»¯ÆÊÎöƽ̨ÉÏ¡°ÒþÉí¡±£¬ÄÑÒÔ±»¼ì²âµ½¡£


ÔÚÕý³£µÄÇåµ¥ÎļþÖУ¬Start Namespace Chunkͨ³£´æ´¢ÃüÃû¿Õ¼äÐÅÏ¢£¬ÆäÖÐPrefixÊÇÒ»¸ö4×Ö½ÚµÄË÷Òý£¬Ö¸Ïò×Ö·û´®³ØÖÐÏìÓ¦µÄ×Ö·û´®£¬ÓÃÓÚ±êʶÃüÃû¿Õ¼äǰ׺£»UriÒ²ÊÇÒ»¸öË÷Òý£¬Ö¸Ïò×Ö·û´®³ØÖÐÌåÏÖÃüÃû¿Õ¼äURIµÄ×Ö·û´®¡£ÀýÈ磬ÔÚÒ»¸öδ¾­ÓÉ»ìÏýµÄÇåµ¥ÎļþÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½PrefixµÄÖµ¶ÔÓ¦µÄ×Ö·û´®Îªandroid£¬¼´ËüÒýÓÃÁ˱ê×¼µÄAndroidÃüÃû¿Õ¼ä¡£


ͼƬ11.png

ͼ11 Õý³£µÄprefixǰ׺ʾÀý


È»¶ø£¬Í¨¹ý¶Ô¶ñÒâÈí¼þÖз¢Prefix×ֶξÙÐжñÒâ¸Ä¶¯£¬¹¥»÷Õß¿ÉÒÔµ¼Ö·´±àÒ빤¾ßÔÚÆÊÎöʱ±¬·¢¹ýʧ¡£ÕâÖÖ»ìÏý·½·¨Ê¹ÓÃÁË·´±àÒ빤¾ß¶ÔPrefixµÄÒÀÀµ£¬Ê¹µÃÆäÔÚÆÊÎöʱ±¬·¢Òì³££¬×ÌÈÅÆÊÎöÖ°Ô±¶Ô¶ñÒâÈí¼þµÄÅжÏ¡£ÏÂͼÊÇÒ»¸ö¾­ÓÉ»ìÏýµÄÇåµ¥Îļþ¡£


ͼƬ12.png

ͼ12 »ìÏýºóµÄprefixʾÀý


´ÓͼÖпÉÒÔ¿´µ½£¬ÃüÃû¿Õ¼äµÄPrefixÏÔʾΪ·Ç±ê×¼×Ö·û´®¡£PrefixµÄË÷ÒýÖµÖ¸Ïò×Ö·û´®³ØÖеÄλÖÃ67£¬¶øUriÏÔʾÕý³£¡£Éó²é×Ö·û´®³ØÖÐË÷Òý67µÄÄÚÈÝ£¬ÎÒÃÇ·¢Ã÷¸Ã×Ö·û´®ÊÇÒ»¶Î³¤¶ÈΪ20470µÄÂÒÂë×Ö·û¡£ÈçÏÂͼËùʾ£º


ͼƬ13.png

ͼ13 Ë÷ÒýÖµ67´¦µÄprefix×Ö·û´®µÄֵʾÀý


ÕâÖÖ³¬³¤×Ö·û´®»áµ¼ÖÂApktoolÔÚ·´±àÒëʱÍ߽⡣ÔÚApktoolµÄ¹ýʧÈÕÖ¾ÖУ¬ÏÔʾÁË¡°Array Size¡±Òì³£ÐÅÏ¢¡£


ͼƬ14.png

ͼ14 Apktool·´±àÒëʱ·ºÆðµÄÒì³£¹ýʧʾÀý


¾­ÓɶÔÍß½âÎÊÌâµÄÈƹý´¦Öóͷ£ºó£¬ÌìÉúµÄAndroidManifest.xmlÎļþµÖ´ïÁË16.7MB£¬ÇÒ°üÀ¨´ó×ÚÂÒÂ룬ÄÑÒÔÔĶÁ¡£


ͼƬ15.png

ͼ15 °üÀ¨´ó×ÚÀ¬»ø×Ö·ûµÄAndroidManifest.xmlÎļþʾÀý


Ò»¸öÓÐÓõĴ¦Öóͷ£ÒªÁìÊǽ«PrefixµÄË÷ÒýÖµÖ¸Ïò×Ö·û´®³ØÖн϶̵Ä×Ö·û´®£¬ÒÔ±ãÌìÉúµÄÇåµ¥ÎļþÄÚÈÝÕý³£ÏÔʾ£¬±ãÓÚºóÐøÆÊÎöºÍÔĶÁ¡£


±ðµÄ£¬Ò»Ð©¶ñÒâÈí¼þ»áÔÚÇåµ¥ÖвåÈë·ûºÅ»òÐÄÇé·ûºÅ£¬Èô·´±àÒ빤¾ßÔÚÆÊÎöʱδ׼ȷ´¦Öóͷ£ÕâЩÌØÊâ×Ö·û£¬Ò²¿ÉÄܵ¼Ö·´±àÒ빤¾ßÍ߽⡣²åÈëÐÄÇé·ûºÅ¾ÙÐлìÏýµÄÇåµ¥ÈçÏÂͼËùʾ£º


ͼƬ16.png

ͼ16 Í¨¹ýÐÄÇé·ûºÅ¾ÙÐлìÏýµÄʾÀý


³ýÁËͨ¹ý¸Ä¶¯ZIPÃûÌÃ×ֶκͻìÏýÇåµ¥ÎļþÀ´¶Ô¿¹·´±àÒ빤¾ßÍ⣬¶ñÒâÈí¼þ»¹¾­³£½ÓÄÉÒ»ÖÖÇ¿ÓÐÁ¦µÄÕ½ÂÔ¡ª¡ª»ìÏýresources.arscÎļþ¡£resources.arscÎļþÊÇAndroidÓ¦ÓÃÖд洢×ÊÔ´Ó³Éä¹ØϵµÄ½¹µãÎļþ£¬Ëüά»¤ÁË×ÊÔ´IDÓëÏÖʵ×ÊÔ´ÎļþÖ®¼äµÄÓ³Éä¡£¶ñÒâÈí¼þͨ¹ý¸Ä¶¯Õâ¸öÎļþ£¬Äܹ»ÓÐÓÃ×ÌÈÅ·´±àÒ빤¾ß¶Ô×ÊÔ´µÄ׼ȷÆÊÎö£¬ÉõÖÁ¿ÉÄܵ¼Ö·´±àÒ빤¾ß±ÀÀ£»òÒì³£Í˳ö¡£ÀýÈ磬BOOMSLANG£¨Ê÷òÅ£©Òƶ¯Ú²Æ­¼Ò×å¾ÍʹÓÃÕâÒ»Õ½ÂÔ¶Ô¿¹ApktoolµÄ·´±àÒëÀú³Ì£¬ÏÂͼÊÇÆä·´±àÒëʧ°ÜʱApktoolÌáÐѵĹýʧÐÅÏ¢¡£


ͼƬ17.png

ͼ17 »ìÏýºóµÄBOOMSLANGÑù±¾µ¼ÖÂApktool·´±àÒëʧ°Ü


3.2 ´úÂë»ìÏýÓë·´»ìÏýÊÖÒÕ


Ò»µ©Ñо¿Ö°Ô±Í»ÆÆÁËAPK°üµÄÆðÔ´»ìÏý£¬½ÓÏÂÀ´±ã»á½øÈëµ½´úÂë²ãÃæµÄÆÊÎö¡£ÔÚÕâÒ»²ãÃ棬¶ñÒâÈí¼þͨ³£½ÓÄÉÖÖÖÖ»ìÏýÊÖÒÕ£¬´ó·ùµØÔöÌíÁ˾²Ì¬ºÍ¶¯Ì¬ÆÊÎöµÄÄѶÈ¡£


3.2.1 ±êʶ·û»ìÏý


±êʶ·ûÖØÃüÃûÊÇ´úÂë»ìÏýÖÐ×î³£¼ûÇÒ×îÓÐÓõÄÊÖÒÕÖ®Ò»£¬Ö¼ÔÚͨ¹ý½«ÓÐÒâÒåµÄ°üÃû¡¢ÀàÃû¡¢ÒªÁìÃûºÍ±äÁ¿ÃûÌ滻ΪÎÞÒâÒåµÄ¡¢Ëæ»úÌìÉúµÄÃû³Æ£¬´Ó¶ø×ÌÈÅÄæÏò¹¤³ÌʦµÄÆÊÎöÀú³Ì¡£±ðµÄ£¬±êʶ·û»ìÏý»¹ÄÜÓÐÓñܿªÒ»Ð©×Ô¶¯»¯ÆÊÎöƽ̨£¬ÕâЩƽ̨ͨ³£ÒÀÀµÓÚ±êʶ·ûÀ´Öƶ©¼ì²â¹æÔò¡£Í¨¹ý»ìÏý±êʶ·û£¬¶ñÒâÈí¼þÄܹ»¹æ±Ü»ùÓÚ±êʶ·ûµÄ¼ì²â£¬ïÔÌ­±»Ê¶±ðµÄΣº¦¡£³£¼ûµÄ±êʶ·û»ìÏýÕ½ÂÔ°üÀ¨Ê¹ÓÃËæ»ú×Ö·û×éºÏ£¨ÈçÊý×Ö¡¢×Öĸ»òÌØÊâ·ûºÅ£©¡¢½ÓÄÉ·ÇÓ¢ÓïÓïÑԵıêʶ·û£¨ÈçÖÐÎÄ¡¢ÈÕÓï¡¢º«Óï¡¢¶íÎĵȣ©¡¢Ê¹Ó󬳤×Ö·û±êʶ·û£¬»òͨ¹ýÌæ»»ÐÎ×´ÏàËƵ«¼ÄÒå²î±ðµÄ×Ö·û£¨Èç×Öĸ¡°O¡±ÓëÊý×Ö¡°0¡±¡¢×Öĸ¡°I¡±ÓëСд×Öĸ¡°l¡±µÈ£©À´×ÌÈÅÆÊÎö¡£ÕâЩ»ìÏýÕ½ÂÔʹ¶ñÒâÈí¼þÄܹ»ÓÐÓÃÒþ²ØÆ书Ч²¢ÔöÌíÄæÏòÆÊÎöµÄÄѶÈ£¬´Ó¶øÑÓ»º±»¼ì²âºÍʶ±ðµÄʱ¼ä¡£ÎªÁËÓ¦¶ÔÕâÖÖ»ìÏý£¬Çå¾²Ñо¿Ö°Ô±¿ÉÒÔʹÓôøÓз´»ìÏý¹¦Ð§µÄ·´±àÒ빤¾ß£¬ÈçGda¡¢Jeb¡¢JadxµÈ£¬ÕâЩ¹¤¾ßÓÐÖúÓÚ¿ìËÙ»Ö¸´±»»ìÏýµÄ´úÂë²¢×ÊÖúʶ±ð¶ñÒâÐÐΪ¡£±êʶ·û»ìÏýʾÀýÈçÏÂͼËùʾ£º


ͼƬ18.png
ͼ18 ±êʶ·û»ìÏýʾÀý


3.2.2 ×Ö·û´®¼ÓÃÜ


¶ñÒâÈí¼þͨ³£½ÓÄɱàÂë»ò¼ÓÃÜÊֶζԴúÂëÖеÄÃô¸Ð×Ö·û´®¾ÙÐд¦Öóͷ££¬ÒÔ±ÜÃâ¶ñÒâÒªº¦×Ö£¨Èç¶ñÒâURL¡¢ÏÂÁî»òÆäËûÃô¸ÐÊý¾Ý£©ÔÚ·´±àÒëÀú³ÌÖб»Ö±½Ó̻¶¡£ÕâЩÊÖÒÕÓÐÓõØ×èÖ¹ÁËÆÊÎöÖ°Ô±´Ó·´±àÒëЧ¹ûÖÐÌáÈ¡Òªº¦ÐÅÏ¢£¬ÓÈÆäÔÚ¶Ô¿¹×Ô¶¯»¯ÆÊÎöƽ̨µÄ¾²Ì¬ÆÊÎöʱ£¬¾ßÓнÏÇ¿µÄ·À»¤Ð§¹û¡£³£¼ûµÄ×Ö·û´®»ìÏýÒªÁì°üÀ¨×Ö·û²ð·ÖºÍ±àÂë»ìÏý¡£×Ö·û²ð·Ö½«Ãô¸Ð×Ö·û´®Ö§½â³É¶à¸ö²¿·Ö£¬³ÌÐòÔÚÔËÐÐʱÔÙÆ´½Ó³ÉÍêÕûµÄ×Ö·û´®£»¶ø±àÂë»ìÏýÔòͨ¹ý¶Ô×Ö·û´®¾ÙÐмÓÃÜ»òʹÓñàÂëÊÖÒÕ£¨ÈçBase64±àÂë¡¢¼òÆÓ¼ÓÃÜËã·¨µÈ£©£¬ÔÚ³ÌÐòÔËÐÐʱÔÙ¾ÙÐнâÂë¡£ÕâЩÊֶβ»µ«ÔöÌíÁ˾²Ì¬ÆÊÎöµÄÄѶÈ£¬Ò²Ê¹µÃÆÊÎö¹¤¾ßÎÞ·¨Ö±½Óʶ±ð³ö¶ñÒâÐÐΪ¡£ÕâÖÖÊÖÒÕʹµÃ¾²Ì¬ÆÊÎö¹¤¾ßÎÞ·¨Ö±½Ó¿´µ½Òªº¦Êý¾Ý¡£Çå¾²Ñо¿Ö°Ô±¿ÉÒÔʹÓö¯Ì¬ÆÊÎö¹¤¾ß£¬ÈçFrida£¬À´²¶»ñÔËÐÐʱµÄ½âÃÜÀú³Ì£¬Õ¹ÏÖ¶ñÒâÈí¼þÔÚÔËÐÐʱËù×öµÄ²Ù×÷¡£×Ö·û´®¼ÓÃÜʾÀýÈçÏÂͼËùʾ£º


ͼƬ19.png
ͼ19 ×Ö·û´®¼ÓÃÜ»ìÏýʾÀý


3.2.3 ¿ØÖÆÁ÷»ìÏý


¿ØÖÆÁ÷»ìÏýÊÖÒÕͨ¹ý²åÈëÎÞÒâÒåµÄ¿ØÖƽṹ£¨Èç¶àÓàµÄÌõ¼þ·ÖÖ§¡¢Ñ­»·»òÈßÓà´úÂ룩£¬¾ÓÐĸıä³ÌÐòµÄÖ´Ðз¾¶£¬´úÂë¿éÖØÐÂÅÅÐòµÈÊÖ¶ÎʹµÃÆÊÎö¹¤¾ßÔÚʵÑéÆÊÎö³ÌÐòʱ£¬ÏÝÈë¹ýÓÚÖØ´óµÄ´úÂë½á¹¹ÖУ¬µ¼ÖÂÎÞ·¨×¼È·µØ»¹Ô­³ÌÐòµÄÕæʵÂß¼­¡£ÓÉÓÚ¿ØÖÆÁ÷»ìÏýÒýÈëÁË´ó×Ú²»ÐëÒªµÄÖ´Ðз¾¶£¬¾²Ì¬ÆÊÎö¹¤¾ß¿ÉÄÜÎÞ·¨ÓÐÓÃÌáÈ¡³ö³ÌÐòµÄÏÖʵÑéΪ¡£


ΪÁËÓ¦¶ÔÕâÖÖ»ìÏý£¬Çå¾²Ñо¿Ö°Ô±Í¨³£ÐèҪͨ¹ýÄ£ÄâÖ´ÐÐÒÔ¼°¶¯Ì¬ÆÊÎöÊÖÒÕÀ´¸¨ÖúÊÖ¶¯×·×Ù³ÌÐòµÄÖ´ÐÐÁ÷£¬Öð²½»¹Ô­³ÌÐòµÄÕæʵÂß¼­¡£ÏÂͼչʾÁËÒ»¸ö¼òÆӵĿØÖÆÁ÷»ìÏýʾÀý£¬Õ¹Ê¾ÁËÔÚ»ìÏýÇ°ºóµÄ¿ØÖÆÁ÷½á¹¹²î±ð¡£


ͼƬ20.png

ͼ20 ¿ØÖÆÁ÷»ìÏýÇ°ºóµÄ²î±ð±ÈÕÕ


3.2.4 ·´Éä»úÖÆÓ붯̬¼ÓÔØ


¶¯Ì¬¼ÓÔØ»úÖÆÊǶñÒâÈí¼þ³£Óõķ´¾²Ì¬ÆÊÎöÊÖÒÕ£¬Ö÷Òª°üÀ¨ÍâµØ¶¯Ì¬¼ÓÔغÍÔ¶³Ì¶¯Ì¬¼ÓÔØÁ½ÖÖ·½·¨¡£ÍâµØ¶¯Ì¬¼ÓÔØͨ¹ý¼ÓÔØÍâµØ´æ´¢µÄ¶¯Ì¬¿â»òdexÎļþ£¬¶¯Ì¬Å²ÓÃÒªÁì»òÀ࣬ʹµÃ¶ñÒâÐÐΪÔÚ¾²Ì¬ÆÊÎö½×¶ÎÎÞ·¨±»·¢Ã÷¡£Ô¶³Ì¶¯Ì¬¼ÓÔØÔòͨ¹ýÔÚÔËÐÐʱ´ÓÔ¶³Ì·þÎñÆ÷ÏÂÔض¯Ì¬¿â»òdexÎļþÀ´¼ÓÔز¢Ö´ÐжñÒâ´úÂ룬ÕâÖÖ·½·¨½øÒ»²½¹æ±ÜÁ˾²Ì¬ÆÊÎö¹¤¾ßµÄ¼ì²â£¬ÓÉÓÚ¶ñÒâ´úÂ벢δ·ºÆðÔÚapkÎļþÖС£¶ñÒâÈí¼þÍùÍùͨ¹ý·´ÉäÊÖÒÕÍŽᶯ̬¼ÓÔØ£¬Ê¹ÓÃÔËÐÐʱµÄ·´ÉäŲÓûúÖÆÒþ²Ø¶ñÒâÐÐΪ£¬Ê¹µÃ³õÆÚ¾²Ì¬ÆÊÎöÎÞ·¨Ê¶±ðÕâЩ¶ñÒâÔ˶¯¡£ÎªÁËÓ¦¶ÔÕâÒ»ÌôÕ½£¬Çå¾²Ñо¿Ö°Ô±Í¨³£ÒÀÀµ¶¯Ì¬ÆÊÎöÊֶΣ¬Èçͨ¹ýFrida×¢Èë¾ç±¾¡¢Ê¹Óõ÷ÊÔ¹¤¾ß¶¯Ì¬¸ú×Ù»òͨ¹ýÈÕÖ¾ÆÊÎö²¶»ñ·´ÉäŲÓõÄÀú³Ì£¬´Ó¶øÕ¹ÏÖ¶ñÒâ´úÂëµÄÕæʵÑéΪ¡£ÕâЩ¶¯Ì¬ÆÊÎöÒªÁìÄܹ»Èƹý¾²Ì¬ÆÊÎöµÄÏÞÖÆ£¬Ê¶±ðͨ¹ý·´ÉäºÍ¶¯Ì¬¼ÓÔØÒþ²ØµÄ¶ñÒâÐÐΪ¡£


½ÓÏÂÀ´£¬ÎÒÃÇÀ´¿´Ò»¸öʹÓÃÍâµØ¶¯Ì¬¼ÓÔصĶñÒâ´úÂëʾÀý¡£ÏÂͼչʾÁ˸öñÒâ´úÂëµÄĿ¼½á¹¹¡£


ͼƬ21.png

ͼ21 Ŀ¼Ê÷ÐÅÏ¢


ËäÈ»´ÓÍâòÉÏ¿´£¬¸ÃĿ¼½ö°üÀ¨¼¸¸öÒªÁ죬µ«ÉîÈëÆÊÎöºó·¢Ã÷£¬¶ñÒâ´úÂëͨ¹ýattachBaseContextÒªÁìŲÓÃÁËÒ»¸öÃûΪbµÄÒªÁ죬½øÒ»²½ÊµÏÖÁË´ÓassetsĿ¼¼ÓÔؼÓÃܵĴúÂëÎļþ¡£¸ÃÎļþ¾­ÓÉÒì»ò½âÃܺó£¬Í¨¹ý¶¯Ì¬Å²Óõķ½·¨±»¼ÓÔز¢Ö´ÐУ¬´úÂëÈçÏÂͼËùʾ£º


ͼƬ22.png
ͼ22 ¶¯Ì¬¼ÓÔغóͨ¹ý·´ÉäŲÓôúÂëʾÀý


3.2.5 Native»ìÏý


Native»ìÏýÊÖÒÕÊÇͨ¹ý¶àÖÖÊֶμӴó¶Ô¶ñÒâÈí¼þÄæÏòÆÊÎöµÄÄѶÈ£¬³£¼ûµÄÊÖÒÕ°üÀ¨ÒÔϼ¸ÖÖ£º


£¨1£©JNI½Ó¿Ú»ìÏý£º¶ñÒâÈí¼þͨ¹ýJNI£¨Java Native Interface£©½«Òªº¦Âß¼­×ªÒƵ½.soÎļþÖУ¬²¢Í¨¹ý»ìÏýµÄJNI½Ó¿ÚŲÓÃÍâµØ´úÂ롣ͨ¹ý½«Ô­±¾ÇåÎúµÄÍâµØÒªÁìÃûÌ滻ΪÎÞÒâÒåµÄ·ûºÅ»òËæ»ú×Ö·û£¬¶ñÒâ´úÂëµÄ¹¦Ð§ºÍ½á¹¹±äµÃÔ½·¢ÄÑÒÔÃ÷È·ºÍ×·×Ù¡£


ͼƬ23.png

ͼ23 JNI½Ó¿Ú»ìÏýʾÀý


£¨2£©Session¼ÓÃÜ£º½«Òªº¦ÒªÁì´æ´¢ÔÚ×Ô½ç˵µÄ.sectionÖУ¬²¢¶ÔÕâЩ×Ô½ç˵µÄ.sectionÄÚÈݾÙÐмÓÃÜ¡£ÓÉÓÚ.soÎļþÔÚ¼ÓÔØʱ»áÓÅÏÈÖ´ÐÐ.init_array¶Î£¬Òò´Ë½«½âÃÜÂß¼­Ç¶Èëµ½.init_arrayÖС£ÔÚÔËÐÐʱ£¬Í¨¹ý½âÃÜÒªÁì»ñÈ¡ÄÚ´æÖи÷¸ö.sectionµÄÆðʼµØµãºÍ¾Þϸ£¬¶Ô¼ÓÃܵÄ.section¾ÙÐнâÃÜ»¹Ô­£¬´Ó¶ø»Ö¸´Òªº¦ÒªÁìµÄÕý³£Ö´ÐС£


ͼƬ24.png

ͼ24 Session¼ÓÃܵÄʾÀý


£¨3£©º¯Êý¼ÓÃÜ£ºÆÊÎö.soÎļþ£¬Í¨¹ýÒªÁìÃû¶¨Î»Ä¿µÄÒªÁìºó£¬¶ÔÆä¾ÙÐмÓÃÜ¡£ÔÚ¼ÓÔØ.soÎļþʱ£¬Í¨¹ýÖ¸¶¨ÒªÁìµÄµØµãŲÓýâÃÜÂß¼­£¬½«¼ÓÃܵÄÒªÁ춯̬½âÃÜ»¹Ô­£¬ÒÔʵÏÖ¶ÔÒªº¦Âß¼­µÄ±£»¤¡£


ͼƬ25.png

ͼ25 JNI¼Ó½âº¯Êý¾­½âÃÜ»¹Ô­µÄ²¿·Ö´úÂëʾÀý


£¨4£©×Ö·û´®¼ÓÃÜÓ붯̬½âÃÜ£º¶ñÒâÈí¼þͨ¹ý¼ÓÃÜÒªº¦×Ö·û´®£¨ÈçURL¡¢ÏÂÁî¡¢ÃÜÔ¿µÈ£©£¬²¢ÔÚÔËÐÐʱͨ¹ý¶¯Ì¬½âÃָܻ´ÆäԭʼÄÚÈÝ¡£¼ÓÃܵÄ×Ö·û¹´Í¨³£´æ´¢ÔÚ¾²Ì¬Êý¾ÝÇøÓò£¬¶ø½âÃÜÔòͨ¹ýÌض¨Ëã·¨»òÔÚÄÚ´æÖж¯Ì¬Íê³É£¬´Ó¶øʹµÃ¾²Ì¬ÆÊÎö¹¤¾ßÎÞ·¨Ö±½ÓÌáÈ¡¶ñÒâÐÅÏ¢¡£


ͼƬ26.png

ͼ26 Native½âÃÜ×Ö·û´®Ê¾Àý


£¨5£©»¨Ö¸ÁîÓëÀ¬»ø´úÂë²åÈ룺ͨ¹ýÔÚ´úÂëÖвåÈëαָÁî»òÎÞЧ´úÂ룬¶ñÒâÈí¼þÄܹ»»ìÏý³ÌÐòµÄÏÖʵÑéΪ¡£ÕâЩ»¨Ö¸ÁîûÓÐÏÖʵ¹¦Ð§£¬µ«ÔöÌíÁËÄæÏò¹¤³ÌµÄÖØ´óÐÔ¡£À¬»ø´úÂë²»µ«ÔöÌíÁ˳ÌÐòµÄÌå»ý£¬»¹Ê¹µÃ×·×ÙºÍÃ÷È·¶ñÒâ´úÂë±äµÃÔ½·¢ÄÑÌâ¡£


ͼƬ27.png

ͼ27 Ò»¸ö¼òÆÓµÄÀ¬»øÖ¸ÁîʾÀý


£¨6£©´úÂë¼Ó¿ÇÓë×ÔÐ޸ĴúÂ룺ÔÚNative²ã£¬¶ñÒâÈí¼þ¾­³£Ê¹ÓüӿÇÊÖÒÕÀ´Òþ²Ø½¹µã¶ñÒâ´úÂë¡£¼Ó¿Çºó£¬¶ñÒâ´úÂëÒÔ¼ÓÃÜ»òѹËõÐÎʽ´æ´¢£¬Ö»ÓÐÔÚÔËÐÐʱ²Å»á½âÃÜ»ò½âѹ¡£×ÔÐ޸ĴúÂëÊÖÒÕÔòÔÊÐí¶ñÒâÈí¼þÔÚÔËÐÐʱ¶¯Ì¬ÌìÉú¡¢Ð޸ĺÍÖ´ÐдúÂ룬½øÒ»²½×èÖ¹¾²Ì¬ÆÊÎö¹¤¾ßʶ±ðÍêÕûµÄ¶ñÒâÐÐΪ¡£


ͼƬ28.png

ͼ28 ͨ¹ýHookÐ޸ĴúÂëµÄʾÀý


£¨7£©·´µ÷ÊÔÓëÄ£ÄâÆ÷¼ì²â£ºÎªÁ˶Կ¹¶¯Ì¬ÆÊÎö£¬¶ñÒâÈí¼þÍùÍù»áÔÚNative²ãǶÈë·´µ÷ÊÔ»úÖÆ£¬ÀýÈçͨ¹ý¼ì²âµ÷ÊÔÆ÷µÄ±£´æ£¨Èçgdb»òFrida£©À´ÖÐÖ¹ÆÊÎöÀú³Ì¡£±ðµÄ£¬¶ñÒâÈí¼þÒ²»á¾ÙÐÐÄ£ÄâÆ÷¼ì²â£¬Í¨¹ý¼ì²é×°±¸ÊÇ·ñÔËÐÐÔÚÄ£ÄâÆ÷»òɳºÐÇéÐÎÖÐÀ´×èÖ¹±»¶¯Ì¬ÆÊÎö¹¤¾ß²¶»ñ¡£


ͼƬ29.png

ͼ29 ¼ì²âÄ£ÄâÆ÷ʾÀý


£¨8£©¿ØÖÆÁ÷»ìÏý£º¿ØÖÆÁ÷»ìÏýͨ¹ý¸Ä±ä³ÌÐòµÄÖ´Ðз¾¶£¬Ê¹µÃÆÊÎöÖ°Ô±ÄÑÒÔÃ÷È·³ÌÐòµÄÏÖʵÁ÷³Ì¡£³£¼ûµÄÒªÁì°üÀ¨²åÈëÎÞЧµÄ¿ØÖÆÁ÷£¨ÈçÌøת¡¢·ÖÖ§Óï¾ä£©¡¢ÎÞÓõÄÑ­»·ºÍº¯ÊýŲÓã¬ÈÅÂÒÆÊÎö¹¤¾ß×·×ÙÖ¸ÁîµÄ˳Ðò¡£


ͼƬ30.png

ͼ30 Ò»¶Î¿ØÖÆÁ÷»ìÏý´úÂëʾÀý


£¨9£©LLVM»ìÏý£ºLLVMÊÇÒ»ÖÖÇ¿Ê¢µÄ±àÒëÆ÷¿ò¼Ü£¬¶ñÒâÈí¼þͨ¹ýʹÓÃLLVMÊÖÒÕÀ´¶ÔNative´úÂë¾ÙÐÐÖØ´óµÄ»ìÏý´¦Öóͷ£¡£LLVM»ìÏýÄÜͨ¹ýÓÅ»¯±àÒëÀú³Ì£¬ÌìÉúÄÑÒÔÔĶÁºÍÃ÷È·µÄ¶þ½øÖÆÎļþ£¬Í¬Ê±¶ÔÎļþ¾ÞϸӰÏì½ÏС¡£ÕâÖÖÊÖÒÕÓÐÓÃÔöÌíÁËÄæÏò¹¤³ÌµÄÖØƯºó¡£


ͼƬ31.png

ͼ31 LLVM»ìÏýÇ°ºó±ÈÕÕʾÀý


ÕâЩNative»ìÏýÊÖÒÕͨ³£±»×éºÏʹÓ㬹¹½¨¶àÌõÀíµÄ±£»¤»úÖÆ£¬´Ó¶øʹ¹Å°åµÄ¾²Ì¬ÆÊÎöºÍ¶¯Ì¬ÆÊÎöÒªÁìÃæÁÙÖØ´óµÄÌôÕ½¡£½èÖúÕâЩÊÖÒÕ£¬¶ñÒâÈí¼þÄܹ»ÓÐÓÃÒþ²ØÆäÕæʵÑéΪ£¬¹æ±ÜÇå¾²Ñо¿Ö°Ô±µÄ¼ì²âÒÔ¼°·À»¤ÏµÍ³µÄ×èµ²¡£±ðµÄ£¬ÉÌÒµ¼Ó¹Ì±£»¤½øÒ»²½ÌáÉýÁË·À»¤µÄÖÜÈ«ÐÔ¡£¶ñÒâÈí¼þ³£Ê¹ÓÃÉÌÒµ¼Ó¹Ì²úÆ·¶Ô×ÔÉí¾ÙÐб£»¤£¬ÉõÖÁºÚ»Ò²úÈí¼þҲƵÈÔ½ÓÄÉ´ËÀàÊÖÒÕ¾ÙÐзÀ»¤£¬ÈçÏÂͼËùʾ£º


ͼƬ32.png
ͼ32 ʹÓÃÉÌÓüӹ̵ÄÕ©Æ­Ó¦ÓÃ


3.2.6 ´úÂëÐéÄ⻯


´úÂëÐéÄ⻯ÊÇÏÖÔÚ×îÏȽøµÄ»ìÏýÊÖ¶ÎÖ®Ò»£¬Ëüͨ¹ý½«Ô­Ê¼´úÂëת»»Îª×Ô½ç˵µÄÐéÄâ»úÖ¸Á¼«´óµØÌá¸ßÁË´úÂëÖØƯºóºÍÆÊÎöÄѶÈ¡£Óë¹Å°åµÄ¿ØÖÆÁ÷»ìÏý²î±ð£¬ÐéÄ⻯ÊÖÒÕ½«Òªº¦´úÂëµÄÖ´ÐÐÂß¼­·â×°ÔÚÐéÄâ»úÖУ¬Ê¹µÃ½¹µã¹¦Ð§ºÍ¿ØÖÆÁ÷ÏÕЩÎÞ·¨Í¨¹ýͨÀý·´±àÒëÊֶλ¹Ô­¡£ÒÔÏ´ÓDEXÐéÄ⻯ºÍSOÐéÄ⻯Á½¸öά¶È¾ÙÐÐÆÊÎö£º


DEXÐéÄ⻯ÊÖÒÕÖ÷ÒªÕë¶ÔAndroidÓ¦ÓÃÖеÄDalvik×Ö½ÚÂë¡£ÕâÖÖÊÖÒÕͨ¹ý½«DEXÖеÄ×Ö½ÚÂëת»»³É×Ô½ç˵µÄÐéÄâ»úÖ¸ÁȻºóÓÉNative²ãÐéÄâ»úÚ¹ÊÍÖ´ÐУ¬´Ó¶ø±£»¤Òªº¦´úÂëºÍ½¹µãÂß¼­¡£ÕâÖÖת»»Ê¹µÃ¹Å°åµÄ·´±àÒ빤¾ßÄÑÒÔ»¹Ô­´úÂëµÄԭʼÂß¼­£¬ÓÉÓÚËüÃÇÎÞ·¨Ê¶±ðת»»ºóµÄÖ¸Á¡£ÀýÈ磬ijµçÉÌƽ̨ͨ¹ýÎó²îÌáȨʵÑé¶ñÒâÐÐΪ£¬²¢ÎªÒþ²ØÆä½¹µã´úÂëÂß¼­£¬½ÓÄÉÁËÒ»Ì×»ùÓÚJVM¹¹½¨µÄÐéÄâ»ú±£»¤£¨VMP£©ÊÖÒÕ¶Ô´úÂë¾ÙÐмӹÌ¡£ÏÂͼչʾÁËÆä±£»¤ºóµÄ¶þ½øÖÆÄÚÈÝ£¬¿ÉÒÔÏÔ×Å¿´³ö£¬´úÂëÒѱ»ÐéÄ⻯Ϊ¸ß¶ÈÁýͳµÄÐéÄâ»úÖ¸ÁʹµÃ¹Å°åµÄ·´±àÒëºÍ¾²Ì¬ÆÊÎöÒªÁìÏÕЩÎÞЧ¡£


ͼƬ33.png

ͼ33 ÆÊÎö¾­vmp±£»¤µÄdexÎļþʾÀý


SOÐéÄ⻯ÊÖÒÕÔò¹Ø×¢ÓÚ±£»¤Ó¦ÓÃÖеÄNative´úÂ룬¼´SOÎļþ¡£ÕâÖÖÊÖÒÕ¿ÉÒÔͨ¹ýÒþ²Ø·ûºÅ±í¡¢×ÊÔ´¼ÓÃܵȷ½·¨À´±£»¤SOÎļþÖеĹ¦Ð§²»±»ÈÝÒ×ÆÊÎöºÍ¸Ä¶¯¡£ÀýÈ磬Virbox ProtectorÌṩÁ˶ÔSOÎļþµÄ±£»¤Ñ¡Ï°üÀ¨Òþ²Ø·ûºÅ±íºÍ¶ÔÌض¨SOÎļþµÄ¼ÓÃܱ£»¤¡£Í¨¹ýÕâÖÖ·½·¨£¬×ÝÈ»¹¥»÷ÕßÄܹ»»á¼ûµ½SOÎļþ£¬Ò²ÎÞ·¨ÈÝÒ×Ã÷È·ÎļþÖеĺ¯ÊýºÍÂß¼­£¬´Ó¶ø±£»¤ÁËÓ¦ÓõÄÇå¾²¡£


ͼƬ34.png

ͼ34 ijÉÌÒµ¼Ó¹Ì²úÆ·¶ÔDEXºÍSOµÄÐéÄ⻯±£»¤ÏÈÈÝ


3.3 ÆäËû»ìÏýÊÖ¶Î


һЩ¶ñÒâÈí¼þͨ¹ýÇÉÃîʹÓÃWindowsºÍAndroidÎļþϵͳµÄ²î±ðÐÔ£¬ÓÐÓöԿ¹¾²Ì¬ÆÊÎöºÍÄæÏò¹¤³Ì¡£ÔÚWindowsϵͳÖУ¬ÎļþÃû²»Çø·Ö¾Þϸд£¬µ«»á±£´æÆäԭʼÃûÌ㬶øAndroidÎļþϵͳÔòÇø·Ö¾Þϸд¡£ÕâÖÖ²î±ðʹµÃijЩÔÚWindowsϵͳÉÏ¿ÉÄÜÒý·¢³åÍ»»ò¹ýʧµÄÎļþÃû£¬Äܹ»ÔÚAndroid×°±¸ÉÏÕý³£Ê¹ÓᣱðµÄ£¬Windowsϵͳ¶ÔÎļþÃûÖеÄÌØÊâ×Ö·û£¨Èç > < : " / \ | * ?£©ÓÐÑÏ¿áÏÞÖÆ£¬¶øAndroidϵͳÔÊÐíÕâЩ×Ö·ûµÄ±£´æ¡£¶ñÒâÈí¼þ³£Í¨¹ýÔÚÎļþÃûÖÐǶÈëÕâЩÌØÊâ×Ö·û£¬×ÌÈÅ»ùÓÚWindowsµÄÆÊÎö¹¤¾ß£¬µ¼ÖÂÎļþÎÞ·¨¶ÁÈ¡»ò´¦Öóͷ££¬´Ó¶øÔöÌíÄæÏòÆÊÎöµÄÄѶÈ¡£


²»µ«ÔÆÔÆ£¬¶ñÒâÈí¼þ»¹¿ÉÄÜʹÓÃAndroidÎļþϵͳÔÊÐíͬÃûÎļþºÍÎļþ¼Ð¹²´æµÄÌØÕ÷£¬½øÒ»²½ÔöÌíÆÊÎöµÄÖØ´óÐÔ¡£ÀýÈ磬ÔÚAndroidÖУ¬Ò»¸öÃûΪAndroidManifest.xmlµÄÎļþºÍÒ»¸öÃûΪAndroidManifest.xmlµÄÎļþ¼Ð¿ÉÒÔͬʱ±£´æ£¬µ«ÔÚWindowsϵͳÖÐÔò»áÒòÃüÃû³åÍ»¶øÎÞ·¨ÊµÏÖ¡£ÕâÖÖ²î±ð¿ÉÄܵ¼Ö»ùÓÚWindowsµÄÆÊÎö¹¤¾ß´¦Öóͷ£ÕâЩ½á¹¹Ê±ÍÉ»¯»òÌø¹ýÆÊÎöÕâЩҪº¦Îļþ»òÎļþ¼Ð£¬½ø¶øΪ¶ñÒâÈí¼þÌṩαװ¡£ÀýÈ磬BOOMSLANG¶ñÒâÈí¼þµÄÒ»¸öÔÚÒ°Ñù±¾½ÓÄÉÁËÌØÊâ×Ö·û»ìÏýºÍͬÃûÎļþÓëÎļþ¼Ð¹²´æµÄ¶Ô¿¹ÊÖÒÕ£¬ÆäAPKÎļþÔÚʹÓÃZIP¹¤¾ß·­¿ªÊ±ÈçͼËùʾ£º


ͼƬ35.png

ͼ35 ͬÃûÎļþºÍÎļþ¼Ð»ìÏýʾÀý


´ÓͼÖпÉÒÔ¿´³ö£¬¶ñÒâÈí¼þ»áͬʱ½¨Éè ¡°\AndroidManifest.xml¡±ºÍ¡°AndroidManifest.xml¡±Ä¿Â¼£¬ÒÔ¼° ¡°\classes.dex¡± ºÍ¡°classes.dex¡±Ä¿Â¼¡£ÕâÖÖ²Ù×÷»áÔÚWindowsϵͳÉϵ¼ÖÂÎļþ¼ÐÏ໥ÁýÕÖ£¬Ôì³ÉÎļþÄÚÈÝɥʧ£¬´Ó¶øÓ°Ïì·´±àÒëµÄÍêÕûÐÔ¡£±ðµÄ£¬¶ñÒâÈí¼þ»¹»áʹÓò»·¨ÎļþÃû£¬µ¼ÖÂÕâЩÎļþÔÚʹÓÃapktool·´±àÒëʱ±»ºöÂÔ£¬ÈçÏÂͼËùʾ£º


ͼƬ36.png

ͼ36 apktoolºöÂÔ²»·¨ÎļþÃûµÄʾÀý


һЩ¶ñÒâÈí¼þ»¹»áÔÚÎļþÖÐǶÈëͬÃûµ«¾Þϸд²î±ðµÄÎļþ£¬Í¨¹ýʹÓÃWindowsÎļþÃû²»Çø·Ö¾ÞϸдµÄÌØÕ÷×ÌÈÅÆÊÎö¹¤¾ß£¬Ôì³ÉÆÊÎö¹ýʧ»òÒì³£¡£ÒÔÏÂͼƬչʾÁËÒ»Àý°üÀ¨Í¬Ãûµ«¾Þϸд²î±ðÎļþµÄ¶ñÒâAPKʾÀý¡£


ͼƬ37.png

ͼ37 WindowsÎļþϵͳ²»Çø·ÖÎļþÃû¾ÞϸдµÄʾÀý


ÔÚAndroid¶ñÒâÈí¼þÖУ¬×ÊÔ´»ìÏýÊÇÒ»ÖÖ³£¼ûµÄ¶Ô¿¹ÊÖÒÕ£¬ÆÕ±éÓ¦ÓÃÓÚassetsºÍresµÈÎļþ¼ÐÖеÄ×ÊÔ´Îļþ¡£³£¼ûµÄ×ÊÔ´»ìÏýÊֶΰüÀ¨£º¶ÔassetsĿ¼ÖеÄ×ÊÔ´Îļþ¾ÙÐмÓÃÜ´¦Öóͷ££¬½¨ÉèÉî²ãǶÌ×µÄĿ¼½á¹¹»òʹÓûûÐÎĿ¼Ãû³Æ£¬²åÈë´ó×ÚÎÞÓÃÎļþ»òαװ×ÊÔ´Îļþ£¬½«Òªº¦×ÊÔ´ÓëÎÞЧ×ÊÔ´»ìÔÓÔÚÒ»Æ𣬴ӶøÔöÌíÆÊÎöÄѶÈ£»¶ÔresĿ¼ÖеÄ×ÊÔ´Îļþ¾ÙÐлìÏý£¬ÀýÈç¸Ä¶¯×ÊÔ´Ó³Éä¹Øϵ¡¢É¾³ý×ÊÔ´ÎļþÃû»ò¸ü¸ÄÎļþÀ©Õ¹ÃûµÈ¡£ÕâЩÊÖ¶ÎÖ¼ÔÚ×ÌÈÅÆÊÎö¹¤¾ßµÄÆÊÎöÀú³Ì£¬Ê¹µÃÆÊÎöÖ°Ô±ÄÑÒÔ¿ìËÙ¶¨Î»ºÍʶ±ðÒªº¦Êý¾Ý£¬½øÒ»²½Ìá¸ßÄæÏò¹¤³ÌµÄÄѶÈ¡£ÏÂͼÊÇÒ»¸ö²åÈëÀ¬»ø×ÊÔ´µÄʾÀý£º


ͼƬ38.png

ͼ38 ²åÈëÀ¬»ø×ÊԴʾÀý


һЩ¶ñÒâÈí¼þͨ¹ý½«Ô­Ê¼DEXÎļþÖ§½â³É¶à¸öСµÄDEXÎļþ»ò²åÈëÀ¬»ø´úÂ룬ÔöÌí¾²Ì¬ºÍ×Ô¶¯»¯ÆÊÎöµÄÄѶÈ¡£Ö§½âDEXÎļþʹÆÊÎö¹¤¾ßÐèÒªÖð¸ö´¦Öóͷ££¬ÔöÌíÁËÆÊÎöʱ¼äºÍÖØƯºó£¬ÇÒÕâЩÎļþͨ³£Í¨¹ý¶¯Ì¬¼ÓÔØÊÖÒÕÔÚÔËÐÐʱ²Å»ãºÏ²¢£¬ÄÑÒÔÔÚ¾²Ì¬ÆÊÎöÖÐʶ±ð¡£±ðµÄ£¬²åÈëµÄÀ¬»ø´úÂë²»Ö´ÐÐÏÖʵ²Ù×÷£¬µ«Í¨¹ýÐéαµÄÂß¼­ºÍÖØ´óµÄ¿ØÖÆÁ÷×ÌÈÅÆÊÎö£¬ÑÚÊζñÒ⹦Ч¡£´ËÀàÕ½ÂÔʹµÃ¶ñÒâÈí¼þµÄÐÐΪԽ·¢Òþ²Ø£¬ÆÈʹÆÊÎöÖ°Ô±½ÓÄɸüÖØ´óµÄ¶¯Ì¬ÆÊÎöºÍÊÖ¶¯ÄæÏò¹¤³ÌÒªÁì¡£Ò»¸öapkÖаüÀ¨´ó×ÚdexµÄÀý×ÓÈçÏÂͼËùʾ£º


ͼƬ39.png

ͼ39 Ö§½â¶à¸ödexʾÀý


³ýÁËÉÏÃæÌáµ½µÄ»ìÏýÊÖÒÕ£¬ÉÐÓÐһЩÆäËû³£¼ûµ«Î´ÏêϸÏÈÈݵÄÊÖÒÕ£¬ÕâЩÊÖÒÕÄܽøÒ»²½ÔöÇ¿¶ñÒâÈí¼þµÄÄæÏòÆÊÎöÄѶÈ¡£ÒÔÏÂÊÇÒ»ÕÅ»ìÏý¹¤¾ßµÄʾÀýͼƬ£¬ÆäÖÐչʾÁ˶àÖÖ»ìÏý¹¦Ð§£¬È磺ÔöÌí°üÌå»ý¡¢ÄÚ½¨×ÔÁ¦ÊðÃûÖ¤Êé¡¢DEX´úÂë»ìÏý¡¢×ÊÔ´»ìÏý¡¢APK·À¸Ä¶¯µÈ¶à¸ö¹¦Ð§¡£


ͼƬ40.png
ͼ40 Ò»ÖÖ»ìÏý¹¤¾ßʾÀý

µÚËÄÕ ÏÖʵ°¸ÀýÆÊÎö

ΪÁ˸üºÃµØÃ÷È·»ìÏýÊÖÒÕµÄÏÖʵӦÓã¬ÒÔÏÂÊǼ¸¸ö³£¼ûµÄAndroid¶ñÒâÈí¼þµÄ»ìÏýÊÖÒÕ°¸Àý¡£


4.1 Joker¶ñÒâÈí¼þ»ìÏýÒªÁì


Joker£¨ÖÐÎÄÃû³Æ¡°Ð¡³ó¡±£¬Ò²±»³ÆΪBread£©ÊÇÒ»¸öÔÚGoogle PlayÊÐËÁÖм«Îª»îÔ¾µÄ¶ñÒâÈí¼þ¼Ò×å¡£×Ô2016Äê12ÔÂÊ״α»¼ì²âµ½ÒÔÀ´£¬Joker¼Ò×åµÄÔ˶¯Ò»Ö±ÔÚÒ»Á¬£¬²¢ÇÒÆä¶ñÒâÈí¼þµÄ±äÖÖÊýÄ¿Ò²ÔÚÒ»Ö±ÔöÌí¡£±¾ÔÂ×îÐÂÅû¶µÄGoogle PlayÊÐËÁÖÐJokerÑù±¾ÐÅÏ¢ÈçÏ£º


ͼƬ41.png

ͼ41 GooglePlayÉϵÄJokerľÂíÐÅÏ¢


Joker¼Ò×åµÄ¶ñÒâÈí¼þÄܹ»Öظ´½øÈëGoogle¹Ù·½Ó¦ÓÃÊг¡£¬ÆäÒªº¦Ôµ¹ÊÔ­ÓÉÔÚÓÚÆä½ÓÄÉÁ˶àÖָ߼¶´úÂë»ìÏýÊÖÒÕ£¬´Ó¶øÈƹýÁËGoogle Play StoreµÄÇå¾²¼ì²âºÍÉó²é»úÖÆ¡£ÕâЩ»ìÏýÊÖÒÕ°üÀ¨µ«²»ÏÞÓÚ£º


£¨1£©×Ö·û´®¼ÓÃÜ£ºÍ¨¹ý¼ÓÃÜÒªº¦×Ö·û´®£¬ÈçAPIÇëÇóºÍÉèÖÃÐÅÏ¢£¬×èÖ¹¾²Ì¬ÆÊÎö¹¤¾ßµÄÖ±½Óʶ±ð¡£

£¨2£©¶¯Ì¬¼ÓÔØ£º½«¶ñÒâ´úÂëÊèÉ¢µ½µ¥¶ÀµÄPayloadÎļþÖУ¬½öÔÚÔËÐÐʱ¼ÓÔØ£¬ÒÔÌӱܾ²Ì¬´úÂëɨÃè¡£ 

£¨3£©·´ÉäŲÓãºÊ¹Ó÷´Éä»úÖƶ¯Ì¬Å²ÓÃÒªÁ죬Òþ²ØÒªº¦¹¦Ð§Å²Ó÷¾¶¡£ 

£¨4£©¶¯Ì¬Ï·¢ÉèÖãºÍ¨¹ýÍøÂçÇëÇó¶¯Ì¬»ñÈ¡ÉèÖûò¶ñÒâÖ¸Á½µµÍ±»¾²Ì¬¼ì²âµÄΣº¦¡£ 

£¨5£©Ê¹ÓõÚÈý·½·þÎñ£ºÊ¹ÓÃGithubÒ³ÃæºÍ´æ´¢¿â´æ´¢¶ñÒâÉèÖûò´úÂ룬½øÒ»²½»ìÏýȪԴºÍÁ÷Á¿¡£ 


ÕâЩÊÖÒÕµÄ×éºÏʹJoker¶ñÒâÈí¼þÄܹ»ÀÖªϰ±Ü¾²Ì¬ÆÊÎö¼ì²â£¬ÆäÕæʵÑéΪÍùÍùÒþ²ØÔÚÖØ´óµÄ¶¯Ì¬Á÷³ÌÖС£ÎªÁËÕ¹ÏÖÆäÐÐΪ£¬ÆÊÎöְԱͨ³£ÐèÒªÒÀÀµ¶¯Ì¬µ÷ÊÔºÍÔËÐÐʱ½âÃÜÊÖÒÕ¡£Õë¶ÔÕâЩ»ìÏýÊֶΣ¬Çå¾²Ñо¿Ö°Ô±¿ÉÒÔ½èÖú¶¯Ì¬ÆÊÎö¹¤¾ß£¨ÈçFridaºÍXposed£©×·×Ù½âÃÜÀú³Ì£¬ÌáÈ¡Òªº¦Êý¾Ý²¢Ê¶±ð¶ñÒâ API ŲÓ㬴ӶøÖÜÈ«»¹Ô­Æä¶ñÒâÐÐΪ¡£


4.2 BadPackµÄ»ìÏýÊÖ¶Î


BadPackÊǶñÒâÈí¼þͨ¹ý¸Ä¶¯ZIPÎļþ½á¹¹Í·£¬Ê¹ApktoolºÍJadxÖÐÆÊÎö¹¤¾ßÎÞ·¨Õý³£ÆÊÎö¡£Æäͨ¹ýʹÓ÷DZê×¼µÄѹËõËã·¨À´×ÌÈÅ·´±àÒ빤¾ßµÄÕý³£ÔËÐС£¾­010 EditorÆÊÎö¸ÃAPKÎļþÃûÌ㬷¢Ã÷ÆäѹËõÒªÁìֵΪ0xF753£¬ÈçÏÂͼËùʾ£º


ͼƬ42.png

ͼ42 ¸Ä¶¯apkÎļþѹËõËã·¨±êʶʾÀý


ÕâÒ»ÊýÖµ²¢²»ÊôÓÚÈκÎÒÑÖªµÄ±ê׼ѹËõÒªÁ죬Òò´Ëµ¼Ö·´±àÒ빤¾ßÎÞ·¨Ê¶±ðºÍ´¦Öóͷ£¸ÃÎļþ¡£Æ¾Ö¤±ê×¼ZIPÃûÌù淶£¬Ñ¹ËõÒªÁìµÄȡֵͨ³£ÈçͼËùʾ¡£


ͼƬ43.png

ͼ43 ZIPÖ§³ÖµÄ¸÷ѹËõÒªÁìµÄ±êʶֵʾÀý


ƾ֤AndroidϵͳԴ´úÂ룬µ±ÏµÍ³Óöµ½·ÇCOMP_DEFLATE£¨¼´ 0x08£©Ñ¹ËõÒªÁìʱ£¬»áĬÈϽ«ÊäÈëÎļþ°´ ¡°Î´Ñ¹Ëõ¡± £¨COMP_STORED£¬¼´ 0x00£©·½·¨´¦Öóͷ£¡£Ïêϸ¶øÑÔ£¬ÏµÍ³»áÖ±½Ó¶ÁÈ¡ÎļþµÄδѹËõÊý¾Ý³¤¶È£¬²¢ÒԴ˾ÙÐÐÆÊÎö¡£Òò´Ë£¬¶ñÒâÈí¼þʹÓÃÁËAndroidϵͳ¶ÔZIPÃûÌõÄÈÝ´í»úÖÆ£¬Í¨¹ýʹÓò»·¨µÄѹËõËã·¨¾ÙÐлìÏý£¬´Ó¶øµÖ´ï¹æ±Ü·´±àÒ빤¾ßµÄÄ¿µÄ¡£ÕâÖÖ»ìÏýÊÖÒÕ¼òÆÓÈ´ÓÐÓá£ÔÚÆÊÎöAndroid¶ñÒâÈí¼þʱ£¬ÈôÓöµ½ÀàËÆÇéÐΣ¬¿É½«Ñ¹ËõÒªÁìÐÞ¸ÄΪ0ÒÔ±ã׼ȷ½âѹºÍÆÊÎö¡£


APKα¼ÓÃÜͨ¹ýÐÞ¸ÄZIPÎļþµÄÍ·²¿£¬½«¼ÓÃܱê¼ÇÉèÖÃΪtrue£¬µ«²¢Î´ÏÖʵ¶ÔÎļþÄÚÈݾÙÐмÓÃÜ¡£ÕâÖÖÊÖÒÕʹÓÃÁËAndroidϵͳÔÚ´¦ ZIPÎļþʱ²»»áÑé֤ͷ²¿µÄ¼ÓÃܱê¼Ç£¬¶øͨË׵ĽâѹÈí¼þÔò»á¼ì²â¸Ã±ê¼Ç¡£ÀýÈ磬µ±Ê¹ÓÃRAR¹¤¾ß½âѹ¸ÃAPKÎļþʱ£¬»áÌáÐÑÓû§ÊäÈëÃÜÂ룬ÈçÏÂͼËùʾ£º


ͼƬ44.png

ͼ44 α¼ÓÃܵĻìÏýʾÀý


ÓÉÓÚJebºÍJadx¶¼Ê¹Óñê×¼µÄZIP¿â£¬Òò´ËÎÞ·¨Õý³£½âѹ²¢·´±àÒë¸ÃÎļþ¡£ËüÃǵķ´±àÒë¹ýʧÐÅÏ¢ÈçÏÂͼËùʾ£º


ͼƬ45.png

ͼ45 ÎÞ·¨Ê¹ÓÃJadxºÍJeb·­¿ªµÄ»ìÏýAPKʾÀý


ͨ¹ý½ÓÄÉBadPackÊÖÒÕ£¬¶ñÒâÈí¼þ½«×ÔÉíαװΪÒì³£ÃûÌõÄÎļþ£¬Ê¹Ó÷´±àÒ빤¾ß¶ÔÎļþÆÊÎöµÄÑÏ¿áÐÔ´¥·¢Òì³££¬´Ó¶øÏÔÖøÔöÌí¾²Ì¬ÆÊÎöµÄÄѶÈ¡£ÕâÖÖÕ½ÂÔÓÐÓÃ×ÌÈÅÁËÇå¾²Ñо¿Ö°Ô±µÄÆÊÎöÁ÷³Ì£¬ÌáÉýÁ˶ñÒâÈí¼þµÄÒþ²ØÐÔ¡£ 


Õë¶ÔÕâÒ»ÊÖÒÕ£¬¿ÉÒÔͨ¹ýÒÔÏÂÒªÁì¾ÙÐÐÓ¦¶Ô£º 


£¨1£©Ê¹ÓÃÐÞ¶©ºóµÄZIP¿â£ºÍ¨¹ýÐÞ¸ÄZIP½âѹ¿âµÄÆÊÎöÂß¼­£¬ºöÂԷDZê×¼×ֶλòÒì³£ÃûÌã¬È·±£ÎļþÄÚÈÝÄܹ»×¼È·½âѹ¡£ 

£¨2£©±àдÐÞ¸´¾ç±¾£ºÆÊÎöBadPackÎļþµÄÒì³£×ֶΣ¬Õë¶ÔÌØÃüÃûÌÃÉè¼Æ¾ç±¾£¬×Ô¶¯ÐÞÕýÎļþ½á¹¹£¬Ê¹Æä»Ö¸´Îª±ê×¼ÃûÌÃÒÔ±ãºóÐøÆÊÎö¡£ 

ÕâЩӦ¶Ô²½·¥Äܹ»ÓÐÓÃÈƹýBadPackÊÖÒյĻìÏýÊֶΣ¬Îª¾²Ì¬ÆÊÎöÌṩ¿É¿¿µÄÊý¾ÝÖ§³Ö¡£


4.3 SpyNote¶ñÒâÈí¼þ»ìÏýÕ½ÂÔ


SpyNoteÊÇÒ»ÖÖÌع¤Èí¼þ£¬³£Í¨¹ý¶ÌÐźʹ¹ÂÚÍøÕ¾µÈ·½·¨¾ÙÐÐÈö²¥¡£¹¥»÷Õßͨ³£·¢ËÍ°üÀ¨¶ñÒâÁ´½ÓµÄSMSÐÂÎÅ»ò½¨Éèαװ³ÉÕýµ±ÍøÕ¾µÄ´¹ÂÚÒ³Ã棬ÓÕµ¼Ä¿µÄÓû§µã»÷Á´½Ó²¢ÏÂÔØαװ³ÉÕýµ±Ó¦ÓóÌÐòµÄ¶ñÒâÈí¼þ¡£×Ô2016ÄêÔÚ¶ñÒâÈí¼þÂÛ̳Ê×´ÎÆعâÒÔÀ´£¬SpyNoteÒ»Ö±×÷ΪһÖÖÒ»Á¬ÍþвµÄ¶ñÒ⹤¾ßÔÚÈ«Çò¹æÄ£ÄÚ»îÔ¾¡£¹ûÕæÊý¾ÝÏÔʾ£¬½ñÄê1ÔºÍ2ÔÂʱ´ú£¬SpyNoteµÄÐÂÔöÑù±¾ÊýÄ¿ÒÑÁè¼Ý3400¸ö£¬Åú×¢ÆäÍþвÔ˶¯ÈÔÔÚ¿ìËÙÀ©É¢¡£×îÐÂÅû¶µÄÍþвÇ鱨ÏÔʾ£¬SpyNoteαװ³ÉÇå¾²Ó¦ÓóÌÐòʵÑé¹¥»÷£¬ÆäÖ÷ҪĿµÄÊǼÓÃÜÇ®±ÒÕË»§£¬ÇÔȡ˽ԿºÍÓà¶îÐÅÏ¢£¬ÓÈÆäÕë±ÈÕÕÌرҡ¢ÒÔÌ«·»ºÍTetherµÈÈÈÃÅÊý×Ö×ʲú¡£Ïà¹Ø¹¥»÷ÊÂÎñÈçÏÂͼËùʾ£º


ͼƬ46.png

ͼ46 SpyNote·ÂðÇå¾²Èí¼þʵÑé¹¥»÷


SpyNote ³ýÁËͨ¹ý¶àÖÖÇþµÀ¾ÙÐÐÈö²¥£¬»¹½ÓÄÉÁËһϵÁи߼¶»ìÏýÓëÒþ²ØÕ½ÂÔ£¬ÒÔ¹æ±Ü¼ì²âºÍÆÊÎö¡£ÒÔÏÂÊÇÆäÖ÷Òª»ìÏýÊÖÒյļòÒª¸ÅÊö£º


£¨1£©¸Ä¶¯ APK ÎļþµÄ ZIP ÃûÌ㬴Ӷøµ¼Ö·´±àÒëAPKToolÔÚÆÊÎöʱʧ°Ü£¬ÈçÏÂͼËùʾ£º


ͼƬ47.png

ͼ47 ÐÞ¸ÄzipÃûÌõ¼ÖÂApktool·´±àÒëʧ°ÜµÄʾÀý


£¨2£©¸Ä¶¯Çåµ¥ÎļþħÊõ¡¢²åÈëÀ¬»ø×Ö·û´®¡£Ð޸ĵÄħÊõʾÀýÈçÏÂͼ£º


ͼƬ48.png

ͼ48 ÐÞ¸ÄħÊõ»ìÏýʾÀý


£¨3£©Ê¹ÓÃÏà½ü×Ö·ûʵÏÖ´úÂë»ìÏý£¬ÈçÏÂͼËùʾ£º


ͼƬ49.png

ͼ49 Ïà½ü×Ö·û´úÂë»ìÏýʾÀý


£¨4£©¶Ôresources.arscÎļþ»ìÏý£¬Ê¹jadx·´±àÒ빤¾ßÔÚÆÊÎöʱÍÉ»¯£¬ÈçÏÂͼËùʾ£º


ͼƬ50.png

ͼ50 JadxÎÞ·¨ÆÊÎöresources.arscÎļþ



µÚÎåÕ ½áÂÛÓëδÀ´Õ¹Íû


Android¶ñÒâÈí¼þµÄ»ìÏýÊÖÒÕÒ»Ö±½ø»¯£¬´Ó¼òÆӵĴúÂëÖØÃüÃûµ½ÖØ´óµÄ¶¯Ì¬¼ÓÔØÓë·´µ÷ÊÔÊÖÒÕ£¬¶ñÒâÈí¼þͨ¹ýÕâЩÊֶμ«´óµØÌáÉýÁ˶ñÒâ´úÂëµÄÒþ²ØÐÔºÍÆÊÎöÄѶÈ¡£Ëæ×Å»ìÏýÊÖÒÕµÄÒ»Ö±Éú³¤£¬Çå¾²Ñо¿Ö°Ô±Ò²ÐèÒªÒ»Ö±¸üÐÂ×Ô¼ºµÄÆÊÎöÊֶΣ¬´Ó¾²Ì¬ÆÊÎöÀ©Õ¹µ½¶¯Ì¬ÆÊÎö¡¢ÐÐΪÆÊÎöµÈ¶àά¶ÈµÄÆÊÎöÒªÁì¡£


δÀ´£¬Ëæ×Å»úеѧϰ¡¢È˹¤ÖÇÄܵÈÊÖÒÕµÄÒýÈ룬»ìÏýÊÖÒÕºÍÄæÏòÆÊÎöÊÖÒÕ½«¼ÌÐø·ºÆð³öÔ½·¢ÖØ´óºÍ¸ßЧµÄ̬ÊÆ¡£ÔÚÕâÖÖÇéÐÎÏ£¬¿ª·¢¸üÇ¿Ê¢µÄ×Ô¶¯»¯¼ì²âºÍÆÊÎö¹¤¾ß½«ÊÇÆƽâ¶ñÒâÈí¼þ·À»¤µÄÒªº¦¡£Í¬Ê±£¬¿ª·¢ÕߺÍÇ徲ר¼ÒÒ²Ó¦ÔöÇ¿¶Ô»ìÏýÊÖÒÕµÄÑо¿£¬Öƶ©³ö¸ü¾ßÕë¶ÔÐÔµÄÓ¦¶ÔÕ½ÂÔ£¬ÒÔÈ·±£Androidƽ̨µÄÇå¾²ÐÔ¡£

ͨ¹ýÒ»Á¬µÄÑо¿ºÍÊÖÒÕÁ¢Ò죬ÎÒÃÇÓÐÍûÄܹ»¸üºÃµØ¶Ô¿¹¶ñÒâÈí¼þµÄ»ìÏýÊÖÒÕ£¬±£»¤Óû§µÄÒþ˽ÓëÇå¾²¡£


ÓÅ·¢¹ú¼ÊÍøÕ¾¹ÙÍøÆð¾¢·ÀÓùʵÑéÊÒ£¨ADLab£©


ADLab½¨ÉèÓÚ1999Ä꣬ÊÇÖйúÇå¾²ÐÐÒµ×îÔ罨ÉèµÄ¹¥·ÀÊÖÒÕÑо¿ÊµÑéÊÒÖ®Ò»£¬Î¢ÈíMAPPÍýÏë½¹µã³ÉÔ±£¬¡°ºÚȸ¹¥»÷¡±¿´·¨Ê×ÍÆÕß¡£×èÖ¹ÏÖÔÚ£¬ADLabÒÑͨ¹ý CNVD/CNNVD/NVDB/CVEÀÛ¼ÆÐû²¼Çå¾²Îó²î5000Óà¸ö£¬Ò»Á¬¼á³Ö¹ú¼ÊÍøÂçÇå¾²ÁìÓòÒ»Á÷Ë®×¼¡£ÊµÑéÊÒÑо¿Æ«Ïòº­¸Ç»ù´¡Çå¾²Ñо¿¡¢Êý¾ÝÇå¾²Ñо¿¡¢5GÇå¾²Ñо¿¡¢È˹¤ÖÇÄÜÇå¾²Ñо¿¡¢Òƶ¯Çå¾²Ñо¿¡¢ÎïÁªÍøÇå¾²Ñо¿¡¢³µÁªÍøÇå¾²Ñо¿¡¢¹¤¿ØÇå¾²Ñо¿¡¢ÐÅ´´Çå¾²Ñо¿¡¢ÔÆÇå¾²Ñо¿¡¢ÎÞÏßÇå¾²Ñо¿¡¢¸ß¼¶ÍþвÑо¿¡¢¹¥·Àϵͳ½¨Éè¡£Ñо¿Ð§¹ûÓ¦ÓÃÓÚ²úÆ·½¹µãÊÖÒÕÑо¿¡¢¹ú¼ÒÖصã¿Æ¼¼ÏîÄ¿¹¥¹Ø¡¢×¨ÒµÇå¾²·þÎñµÈ¡£



adlab.jpg