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¼ì²éµ÷ÊÔ״̬ £¬¼à²âµ÷ÊÔ¹¤¾ßÌØÓеÄÐÐΪ £¬ÉõÖÁ×Ô¶¯Òý·¢Òì³£ÒÔ²¶»ñµ÷ÊÔ¹¤¾ßµÄ·´Ó¦ £¬ÓÐÓÃ×èÖ¹¶¯Ì¬ÆÊÎö¹¤¾ßµÄ×ÌÈÅ¡£
  • ÉÌÒµ¼Ó¹Ì±£»¤ÊÖÒÕ£ºÒ»Ð©¶ñÒâÈí¼þʹÓÃÉÌÒµ¼Ó¹Ì±£»¤ÊÖÒÕ £¬½øÒ»²½ÔöÇ¿ÁË´úÂëµÄ¿¹ÄæÏòÄÜÁ¦ £¬Ê¹µÃ¹Å°åµÄÇå¾²¹¤¾ßºÍÆÊÎöÒªÁìÄÑÒÔ×àЧ¡£
  • ´úÂëÐéÄ⻯ÊÖÒÕ£ºÍ¨¹ý½«´úÂë·­ÒëΪ×Ô½ç˵µÄÐéÄâÖ¸Á £¬²¢ÔÚÔËÐÐʱͨ¹ýǶÈëµÄÐéÄâ»úÚ¹ÊÍÖ´ÐÐ £¬ÕâÖÖÊÖÒÕ¼«´óµØÌá¸ßÁËÄæÏòÆÊÎöµÄÄѶÈ¡£

ÀýÈç £¬Ä³¶ñÒâÈí¼þͨ¹ýʹÓÃ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²ãÐéÄâ»úÚ¹ÊÍÖ´ÐÐ £¬´Ó¶ø±£»¤Òªº¦´úÂëºÍ½¹µãÂß¼­¡£ÕâÖÖת»»Ê¹µÃ¹Å°åµÄ·´±àÒ빤¾ßÄÑÒÔ»¹Ô­´úÂëµÄԭʼÂß¼­ £¬ÓÉÓÚËüÃÇÎÞ·¨Ê¶±ðת»»ºóµÄÖ¸Á¡£ÀýÈç £¬Ä³µçÉÌÆ½Ì¨Í¨¹ýÎó²îÌáȨʵÑé¶ñÒâÐÐΪ £¬²¢ÎªÒþ²ØÆä½¹µã´úÂëÂß¼­ £¬½ÓÄÉÁËÒ»Ì×»ùÓÚ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