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



adlab.jpg