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ƽ̨µÄÇå¾²ÐÔ¡£¡£¡£¡£¡£

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


¿­Ê±K66Æð¾¢·ÀÓùʵÑéÊÒ£¨ADLab£©


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



adlab.jpg