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¶ñÒâÈí¼þʱ£¬°²È«×êÑÐÈËԱͨ³£±ØÒª´Ó¾²Ì¬·ÖÎöºÍ¶¯Ì¬·ÖÎöÁ½·½Ã涯ÊÖ¡£¡£¾²Ì¬·ÖÎöÍùÍùÊÇ×îÏȽøÐеIJ½Ö裬¶ø»ìºÏ¼¼Êõͨ¹ýÅú¸Ä´úÂëµÄ½á¹¹ºÍ±í°×·½Ê½£¨Èç×Ö·û´®¼ÓÃÜ¡¢¡¢´úÂë²ð·Ö¡¢¡¢¶¯Ì¬¼ÓÔØµÈ£©£¬Ê¹¶ñÒâÈí¼þµÄ·ÖÎöÄѶÈÏÔÖøÔö³¤¡£¡£±¾ÎĽ«ÒÔ°²È«×êÑÐÈËÔ±·ÖÎö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Ìåʽ×Ö¶ÎÀ´Æ¥µÐ¾²Ì¬·ÖÎöºó£¬½ÓÏÂÀ´ÎÒÃDZØÒª¹Ø×¢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Îļþʱ£¬Í¨¹ýÖ¸¶¨²½ÖèµÄµØÖ·Å²ÓýâÃÜÂß¼­£¬½«¼ÓÃܵIJ½Ö趯̬½âÃÜ»¹Ô­£¬ÒÔʵÏֶԹؼüÂß¼­µÄ±£»¤¡£¡£


ͼƬ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ƽ̨µÄ°²È«ÐÔ¡£¡£

ͨ¹ý³ÖÐøµÄ×êÑкͼ¼Êõ´´Ð£¬ÎÒÃÇÓÐÍû¿ÉÄܸüºÃµØÆ¥µÐ¶ñÒâÈí¼þµÄ»ìºÏ¼¼Êõ£¬±£»¤Óû§µÄÒþÖÔÓ밲ȫ¡£¡£


OG¶«·½Ìü»ý¼«·ÀÓù³¢ÊÔÊÒ£¨ADLab£©


ADLab³ÉÁ¢ÓÚ1999Ä꣬ÊÇÖйú°²È«ÐÐÒµ×îÔç³ÉÁ¢µÄ¹¥·À¼¼Êõ×êÑг¢ÊÔÊÒÖ®Ò»£¬Î¢ÈíMAPP´òËãÖ÷Ìâ³ÉÔ±£¬¡°ºÚȸ¹¥»÷¡±¸ÅÄîÊ×ÍÆÕß¡£¡£½ØÖÁĿǰ£¬ADLabÒÑͨ¹ý CNVD/CNNVD/NVDB/CVEÀۼư䲼°²È«·ì϶5000Óà¸ö£¬³ÖÐøÎ¬³Ö¹ú¼ÊÍøÂ簲ȫÁìÓòÒ»Á÷Ë®×¼¡£¡£³¢ÊÔÊÒ×êÑз½Ïòº­¸Ç»ù´¡°²È«×êÑС¢¡¢Êý¾Ý°²È«×êÑС¢¡¢5G°²È«×êÑС¢¡¢ÈËΪÖÇÄܰ²È«×êÑС¢¡¢Òƶ¯°²È«×êÑС¢¡¢ÎïÁªÍø°²È«×êÑС¢¡¢³µÁªÍø°²È«×êÑС¢¡¢¹¤¿Ø°²È«×êÑС¢¡¢ÐÅ´´°²È«×êÑС¢¡¢Ôư²È«×êÑС¢¡¢ÎÞÏß°²È«×êÑС¢¡¢¸ß¼¶Íþв×êÑС¢¡¢¹¥·Àϵͳ½¨Éè¡£¡£×êÑгɾÍÀûÓÃÓÚ²úÆ·Ö÷Ìâ¼¼Êõ×êÑС¢¡¢¹ú¶ÈÖØµã¿Æ¼¼ÏîÄ¿¹¥¹Ø¡¢¡¢×¨Òµ°²È«·þÎñµÈ¡£¡£



adlab.jpg