±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn,±¾ÎĵÄÄ¿µÄÖ»ÓÐÒ»¸ö¾ÍÊÇѧϰ¸ü¶àµÄÄæÏò¼¼ÇɺÍ˼·£¬Ï£Íû¶ÔÄúµÄѧϰÓаïÖú¡£ |
|
Ò»¡¢Ç°ÑÔ
¹ØÓÚÖ§¸¶±¦µÄÂìÒÏÉÁÖÄÜÁ¿ÊÕÈ¡Õâ¸ö·Ç³£ÓÐÖØ´óÒâÒåµÄ¶«Î÷£¬±¾È˱íʾ·Ç³£ÈÏͬ£¬Õâ¸öÍøÉÏÒ²ÊÇÒ»Ö±ÓÐÈ˾õµÃÂíÔÆÊÇÒ»¸ö·Ç³£ÓÐÔ¶¼ûµÄÄÐÈË£¬µÄÈ·ËäÈ»ºÜ¶àÈ˾õµÃÂíÔÆ²»»á¼¼Êõµ«ÊǺÜÄÜ˵£¬µ«ÊÇËû˵µÄ¶¼ÂýÂýʵÏÖÁË£¬ÏȲ»¹ÜÕâ¸öÖÖÊ÷µ½µ×Äܲ»ÄÜÂäʵ£¬ÂíÔÆµÄÈ·ÔÚ´øÁì×Ű¢Àï°ïÖúÊÀ½çµØÇò±äµÃÔ½À´Ô½ÃÀºÃ£¬¶ø¸ô±ÚµÄÆó¶ì¹«Ë¾ÔÝʱ²»ÆÀÂÛ¡£ÎÒÃÇÈç¹ûÍæ¹ýÄÜÁ¿ÊÕÈ¡¶¼ÖªµÀËûÓÐÒ»¸ö±×¶Ë¾ÍÊÇÿÌìÔçÆðÊÕÄÜÁ¿ÓÐʱºò»á·¢ÏÖ×Ô¼ºµÄÄÜÁ¿±»±ðÈËÈ«²¿ÍµÍêÁ˺ܲ»Ë¬£¬¶øÇÒ×Ô¼ºÔÚÊÕÈ¡µÄʱºòÒ²»á·¢Ïַdz£µÄÂýºÍÄÑÊÜ£¬ÌرðÔÚºÃÓѱȽ϶àµÄʱºò¡£ËùÒÔÕë¶ÔÕâô¶àÎÊÌâ¾Í¿ª·¢ÁËÒ»¸ö×Ô¶¯ÊÕÈ¡µÄ²å¼þ£¬»¹¼ÇµÃµ±³õ͵²Ë²å¼þÂ𣿺ÍÄǸöÀàËÆ¿ÉÒÔÉèÖÃÖ¸¶¨Ê±¼ä×Ô¶¯ÊÕÈ¡ºÍ͵ȡ±»È˵ÄÄÜÁ¿µÄÒ»¿î²å¼þ¡£
¶þ¡¢Ñ°ÕÒÍ»ÆÆ¿Ú
²»¶à˵Á˽ÓÏÂÀ´¾Í¿ªÊ¼·ÖÎöÈçºÎ±àдÕâ¸ö²å¼þ£¬ÎÒÃÇÏÖÔÚд²å¼þ¶¼ÊÇ»ùÓÚXposedµÄ£¬¶øÖ®Ç°Ëµ¹ýÖ§¸¶±¦ÓзÀÖ¹XposedµÄ¹¦ÄÜ£¬ËùÒÔÎÒÃǵÃÏȰÑÕâ¸ö¹¦Äܸø¸Éµô£¬²»Á˽âµÄͬѧ¿ÉÒÔµã»÷ÕâÀï½øÐв鿴£¬ÄÇÓеÄͬѧ¾ÍºÃÆæÁËΪʲô²»Óø¨Öú¹¦ÄÜ×öÄ£Äâµã»÷ÄØ£¿Õâ¸öºóÃæ·ÖÎöÄã¾ÍÖªµÀÁË£¬Ã»·¨Óø¨Öú¹¦ÄܽøÐÐÄ£Äâµã»÷µÄ¡£½ÓÏÂÀ´ÎÒÃÇÏÈÕÒÍ»ÆÆ¿Ú£¬Õâ¸öûµÄ˵һÇдÓÎÒÃÇÈâÑÛ»ñÈ¡£¬·ÖÎö½çÃæÐÅÏ¢£º

ÕâÀï¿´µ½ÁËÂ𣿷dz£Ææ¹ÖµÄÊÇÒ³Ãæ·Ç³£¼òµ¥£¬ÔÚÎÒÃÇûÓÐдÕâ¸ö²å¼þ֮ǰÎÒÒÔΪÕâ¸öÒ³ÃæºÜ¼òµ¥£¬ÊÇÒ»¸öÁÐ±í¶øÒÑ£¬µ«ÊDz»ÊÇ¡£¾ÍÊÇÒ»¸öView£¬Æäʵµ½ºóÃæ»áÖªµÀËûÊÇÒ»¸öWebView¶øÒÑ¡£ËùÒÔÕâÀï¾Í½âÊÍÁË֮ǰÓеÄͬѧ˵Óø¨Öú¹¦ÄÜ×öÄ£Äâµã»÷£¬ÕâÀï¿ÉÒÔ·¢ÏÖÍêÈ«×ö²»Á˵ġ£ËùÒÔÎÒÃǵû»¸ö˼·ÕÒÍ»ÆÆ¿Ú¡£ÒòΪÕâ¸öÒ³Ãæ²»¹ÜÊÇÒ»¸öʲôÑùµÄView£¬ÎÒÃÇÖ»ÒªÕÒµ½Ò»¸öºËÐĵ㼴¿É¡£ÄÇôÕâÀïÔÚ¸ø´ó¼Ò½éÉÜÒ»¸öѰÕÒÍ»ÆÆ¿ÚµÄ·½·¨ÁË£¬ÒòΪÕâÀïûÓÐÌ«¶àµÄ×Ö·û´®ÐÅÏ¢£¬Ò²Ã»·¨ÓÃËÑË÷´ó·¨ÁË¡£ÄÇô¿ÉÒԲ鿴µ±Ç°µ÷ÓÃÁËÄÄЩ·½·¨À´ÕÒÍ»ÆÆ¿Ú£¬ºÜ¶àÈËÏëµ½ÁËÎÒ֮ǰдµÄicodetools¹¤¾ßÁË£¬µ«ÊÇÄǸö¹¤¾ßÕâÀï²»ÊʺÏÒòΪ֧¸¶±¦µÄ°üÌ«´óÁË£¬Èç¹ûÓÃÄǸö¹¤¾ß»á·¢ÏÖÒ³ÃæÍêÈ«¿¨ËÀÁË£¬ÄÇô¸ÃÔõô°ìÄØ£¿
Õâ¸ö¿ÉÒÔ½èÖúDDMS¹¤¾ß×Ô´øµÄ·½·¨µ÷ÓÃÕ»ÐÅÏ¢ÁË£¬²»¹ý¿ÉϧµÄÊÇÕâ¸ö»ñÈ¡µÄǰÌáÊÇÕâ¸öÓ¦ÓóöÓڿɵ÷ÊÔ״̬£¬Ò²¾ÍÊÇÒªÔÚDDMSÁбíÖгöÏÖ¡£ÄÇô֧¸¶±¦¿Ï¶¨ÊDz»¿ÉÒÔµ÷ÊԵģ¬ËùÒÔÈÃËû³öÓڿɵ÷ÊÔµÄÎÒÃÇ¿ÉÒÔÕâô×ö·´±àÒëÖ§¸¶±¦Ö®ºóÐÞ¸ÄxmlµÄandroid:debuggable="true"ÊôÐÔ£¬È»ºó»Ø±àÒë¼´¿É¡£ÕâÀïÓÐÁ½¸öÎÊÌâÔÚÎÒʵ¼Ê²Ù×÷µÄ¹ý³ÌÖУ¬Ò»¸öÊÇÖ§¸¶±¦·´±àÒëÐÞ¸ÄÌí¼Ó¶¼Ã»ÓÐÎÊÌ⣬µ«ÊǻرàÒë¿ÉÄÜÓÐÎÊÌâ¡£ÄÇô¿ÉÒÔÖ±½ÓÓÃAXMLEditor¹¤¾ß½øÐÐxmlµÄ¶þ½øÖÆÎļþÐ޸ģ¬È»ºóÇ©Ãû£¬¿ÉϧµÄÊÇÖ§¸¶ÄÚ²¿ÓÐУÑ飬ÕâÀïÓÃÁËkstoolsôÓÐЧ¹û£¬¿ÉÄÜÊÇËûÄÚ²¿ÓÃÁËÆäËûµÄÇ©ÃûУÑéÂß¼¡£µ½ÕâÀïÎÒÃÇÄѵÀ»¹ÐèÒªÏÈÆÆ½âËûµÄÇ©ÃûУÑéÂ𣿸оõд¸ö²å¼þµÃ½â¾öºÜ¶àÎÊÌâ¡£²»¹ýÕâÀïÔÚ¸æËßËû¼ÒÒ»¸öС¹¤¾ß¾ÍÊÇ¿ÉÒÔÁÙʱÐÞ¸ÄÉ豸µÄϵͳµ÷ÊÔ״ֵ̬mprop¹¤¾ß£¬Õâ¸öÎÒÔÚ֮ǰÍÑ360¿ÇµÄʱºò½éÉܹýÁË£¬²»¹ýÕâ¸ö¹¤¾ßÏÖÔÚÓиüа汾ÁË¡£ºóÃæ¸ø³öÏÂÔØµØÖ·¡£¹¤¾ßʹÓ÷dz£·½±ã£º

ÔÚĿ¼ÏÂÕÒµ½Ö¸¶¨cpuÐͺŵÄmpropÎļþ¿½±´µ½É豸Ŀ¼Ï£¬È»ºóÐÞ¸ÄȨÏÞΪ¿ÉÖ´Ðеģ¬È»ºóÖ±½ÓÔËÐÐÈýÌõÃüÁî¼´¿É£º
# ÐÞ¸Äinit½ø³ÌÖеÄroÊôÐÔÅжÏÂß¼
/data/local/tmp# ./mprop
# È»ºóÐÞ¸Äϵͳµ÷ÊÔÊôÐÔÖµ
/data/local/tmp# setprop ro.debuggable 1
# »Ö¸´initĬÈÏÂß¼£¬Ö®ºó¾ÍÎÞ·¨ÔÙÐÞ¸ÄroÊôÐÔÁË
/data/local/tmp# ./mprop -r
Ö´ÐÐÕâÈý¸öÃüÁîÖ®ºó¾Í¿ÉÒÔÁË£¬È»ºóÔڲ鿴Õâ¸öÊôÐÔÖµ£º

ÕâÀïÒѾ³É¹¦ÐÞ¸ÄÁËϵͳµÄµ÷ÊÔ״̬Ϊ1ÁË£¬ÄÇôÉ豸ÖÐËùÓеÄÓ¦Óö¼¿ÉÒÔ³öÓÚµ÷ÊÔ״̬ÁË£¬¼´Ê¹Ã»ÓÐandroid:debuggable="true"ÊôÐÔµÄÓ¦Óá£ËùÒÔ¿ÉÒÔ¿´µ½Õâ¸öС¹¤¾ßµÄ×÷ÓÃÊǷdz£µÄ´óÁË£¬¶øÇÒÒ²¿´µ½ÔÚÄæÏò²Ù×÷ÖÐÈç¹ûÓÐһЩ¸¨ÖúС¹¤¾ßµÄ»°£¬Ð§ÂÊÊǷdz£¸ßµÄ£¬Õâ¸ö¹¤¾ß´ó¼ÒÒ²Ò»¶¨Òª¼ÇסËû£¬ÔÚÄãÒÔºóÄæÏò¹ý³ÌÖп϶¨»¹»áÓõ½¡£È»ºóÎÒÃÇÔÚ´ò¿ªDDMS¾Í¿ÉÒÔ¿´µ½Ö§¸¶±¦Ö÷½ø³Ì¾Í³öÏÖÁË£º

È»ºóÎÒÃÇÑ¡Ôñ×óÉϽÇÄǸö¿ÉÒÔ»ñÈ¡µ±Ç°·½·¨Ö´ÐеĶÑÕ»ÐÅÏ¢£¬È»ºóµ¯³ö¶Ô»°¿òÎÒÃÇÑ¡ÔñÏÂÃæÒ»¸ö£¬¾ÍÊÇʵʱµÄÿ¸ö·½·¨¶¼»ñÈ¡£¬±ÜÃⶪʧ¹Ø¼ü·½·¨£¬µ«ÊÇÕâ¸ö»áÓкܶà´óµÄЧÂÊÎÊÌâÒ²¾ÍÊǵã»÷È·¶¨Ö®ºóÄãµÄÖ§¸¶±¦Ó¦ÓûῨËÀ£¬ËùÒÔÕâÀï²Ù×÷µÄʱºòÊÇÔÚ½øÈëÂìÒÏÉÁÖµÄÒ³ÃæÄÇÒ»¿Ì²Åµã»÷OK£¬È»ºóµÈÒ³Ãæ¼ÓÔØÍê³É¾ÍÁ¢¼´µã»÷½áÊøÒ²ÊÇÓÒÉϽÇÄǸö°´Å¥¼´¿É£º

µã»÷½áÊøÖ®ºó¾ÍÉú³ÉÁËtraceÎļþ£¬Õâ¸öÎļþ·¾¶ÔÚ±êÌâÀ¸ÖпÉÒÔ¿´µ½£º

ÎÒÃÇ¿ÉÒÔ±£´æÕâ¸ötraceÎļþ£¬È»ºóÀûÓÃTracer.jar¹¤¾ßÖ±½Ó´ò¿ª²é¿´£º

ÕâÀïÒ²ÊÇ¿ÉÒÔÖ±½Ó·ÖÎö·½·¨Õ»ÐÅÏ¢µ÷Óõģ¬Õâ¸ö¹¤¾ßÊÇÒ»¸öͬѧ¸øÎҵģ¬ÎÒ¾õµÃ¿ÉÄÜûÓÐDDMSÖÐ×Ô´øµÄºÃÓ㬵«ÊÇ¿´¸öÈËϰ¹ß°É£¬Õâ¸ö¹¤¾ßÒ²»áÔÚºóÃæ¸ø³ö¡£¼ÌÐø»Øµ½DDMSµÄ½çÃæ·ÖÎö£º

ÕâÀïÓÐÒ»¸öÀàËÆÓÚÍøÂçÇëÇóµÄ½Ó¿Ú£¬Ê×Ïȵ½ÕâÀïÎÒÃÇͨ¹ýÕâЩÀàµÄ×ÖÑùÖªµÀÄǸöÒ³ÃæÓ¦¸ÃÊÇH5Ò³Ãæ£¬Ò²¾ÍÊDz»ÊÇÔʼ±¾µØµÄÒ³Ãæ£¬¶øÊÇÒ»¸öWebViewÒ³Ãæ£¬Í¨¹ý·½·¨Õ»À´¿´¿ÉÄÜÊÇUCWebView£¬Õâ¸öÊÇUCä¯ÀÀÆ÷×Ô¶¨ÒåµÄÒ»¸öÄÚºËwebview£¬ÒòΪUC±»°¢ÀïÊÕ¹ºÁËÓÃUCÒ²ÊÇÎ޿ɺñ·ÇµÄ¡£ÄÇôÏȲ»¹ÜËûÊÇʲôWebviewÁË£¬ÎÒÃÇ֮ǰȥ¿´Õâ¸ö·½·¨¡£
Èý¡¢ÄæÏò·ÖÎö´úÂë
ÎÒÃÇÓÃjadxÖ±½Ó´ò¿ªÖ§¸¶±¦Ó¦Ó㬿Éϧ»á·¢ÏÖÖ±½Ó¿¨ËÀ£¬ÕâÀïÎÒÓÃMac¶¼Êǵģ¬ÒòΪ֧¸¶±¦±È΢ÐÅ»¹ºÝ£¬ÒѾ8¸ödexÎļþÁË£¬ËùÒÔ»¹Êǵ÷ְü´ò¿ª£¬×îºóÕÒµ½ÁË£º

µ½ÕâÀïÎÒÃǻᷢÏÖÒ»¸öµã¾ÍÊÇÖ§¸¶±¦ÄÚ²¿ÓÐÒ»¸ö´òÓ¡ÈÕÖ¾µÄÀàH5Log£¬ËûÓ¦¸Ã·â×°ÁËϵͳ´òÓ¡ÈÕÖ¾µÄ£¬ÎÒÃÇÏȲ»¹ÜËûÄÚ²¿ÔõôʵÏֵģ¬Ö±½ÓhookÕâ¸öÀàµÄÕâ¸ö·½·¨£¬Í¨¹ýһЩÈÕÖ¾À´¿ìËÙ·ÖÎöÐÐΪºÍµÃµ½ÎÒÃÇÏëÒªµÄ£º

È»ºóÈ»ºóÎÒÃÇͨ¹ý´òÓ¡ÈÕÖ¾¿´¿´Ð§¹û£¬ÒòΪÕâÀï»áºÜ¶àÈÕÖ¾ÐÅÏ¢£¬ËùÒÔͨ¹ýËüµÄtag×÷Ϊ¹ýÂËÌõ¼þ£¬ÕâÀïµÄtagÊÇH5RpcUtil£º

ÕâÀïÓÖ·¢ÏÖadb logcat ÃüÁÊÇÄÇôºÃÓã¬WindowsÖÐÓÃfindstr½øÐйýÂ˼´¿É£¬ÔÚ´òÓ¡ÐÅÏ¢ÖлᷢÏÖÒ»Ð©ÌØÊâÐÅÏ¢£¬±ÈÈçÿ´ÎÖ´ÐÐÍê³ÉÖ®ºóµÄresponseÊÇÒ»¸öjsonÊý¾Ý£º

¶øÇÒ·¢ÏÖÁËÒ»¸öÖØÒªµÄÐÅÏ¢¾ÍÊÇÎÒÃÇÈâÑÛÔÚÒ³Ãæ¿´µ½µÄºÃÓÑÅÅÐаñÐÅÏ¢£¬ÏȲ»¹Ü°ÑÕâЩÐÅÏ¢json¸ñʽ»¯Ò»Ï£º

µ½ÕâÀï¸Ð¾õÌØ±ð¼¤¶¯£¬Í¨¹ýÐÅÏ¢·¢ÏÖÕýÊǺÃÓÑÁбíÐÅÏ¢£¬¶øÇÒÓÐÒ»¸ö¹Ø¼ü×Ö¶ÎcanCollectEnergy±íʾÕâ¸öÓû§ÊÇ·ñÓÐÄÜÁ¿¿ÉÒÔÊÕÈ¡µÄ£¬ËùÒÔµ½ÕâÀïÎÒÃÇ·¢ÏÖ½ö½öͨ¹ýÈÕÖ¾ÐÅÏ¢¾Í¿ÉÒÔÕÒµ½Í»ÆÆ¿ÚÁË£¬»¹ÕÒµ½Á˹ؼüÐÅÏ¢¡£ËùÒÔ¶ÔÓÚÒ»¸öÏßÉϵÄÓ¦ÓÃÿ¼Ò¹«Ë¾Ó¦¸ÃÔÚ×îºóµÄ·¢°ü½×¶Î¶ÔÓ¦ÓÃÖÐËùÓеÄÈÕÖ¾´úÂëÈ«²¿É¾³ý£¬ÕâÀïÊÇÈ«²¿É¾³ý¶ø²»Êǽö½ö¼ÓÉÏһЩ¿ª¹ØÀ´¿ØÖÆ¡£Ö»ÓÐɾ³ý²ÅÊÇ×ȫµÄ£¬ÏÖÔÚÓÐЩ°²È«¹«Ë¾¾ÍÊÇÕâô×öµÄ£¬ÄÚ²¿ÓÐÒ»¸ö·¢°üÉóºËºÍ×Ô¶¯É¾³ýÓ¦ÓÃËùÓдòÓ¡ÈÕÖ¾´úÂ룬´ÓÕâÀï¿´Èç¹ûûÓÐÈÕÖ¾ÎÒÃÇ»¹ÊÇÐèҪȥ·ÖÎöÕâ¸ö·½·¨µÄ£º

Õâ¸ö·½·¨×îºóÊÇ·µ»ØÁËÒ»¸öH5ResponseÀà¡£ÄÇôµ½ÕâÀïÎÒÃÇÒѾÕÒµ½·µ»Ø½á¹ûÁË£¬ÄÇôÕâ¸ö·µ»Ø½á¹ûÖ´ÐÐǰÊÇÓÐʲôÐÅÏ¢ÄØ£¿±ÈÈç²ÎÊýµÈ£¬¶øÇÒÕâÀï¿´µ½ºÃÓÑÁбíĬÈÏÊÇ·ÖÒ³£¬Ã¿Ò³ÊÇ20¸öÓû§ÐÅÏ¢£¬ËùÒÔºóÃæÎÒÃǿ϶¨µÃ»ñÈ¡ËùÓеĺÃÓÑÐÅÏ¢£¬Ó¦¸ÃÓиö²ÎÊýÀ´½øÐвÙ×÷£¬ËùÒÔΪÁ˸ü¼ÓÖ±¹Û¿´Êý¾Ý£¬Ö±½ÓhookÕâ¸öH5RpcUtil.rpcCall·½·¨£¬Õâ¸ö·½·¨ÓÐÊ®¼¸¸ö²ÎÊý£¬ÆäÖÐÓÐÒ»¸ö¿Ó¾ÍÊÇJSONObject¸ñʽµÄ£¬ÆäʵËûÊǰ¢ÀïµÄfastjson°üµÄ¶ÔÏ󣬵¼Ö²Ù×÷¹ý³ÌÖÐʼÖÕûhook³É¹¦£º

ËùÒÔÕâÀïÈç¹ûÓеÄͬѧÔÚʹÓÃXposed½øÐÐhookÒ»¸ö·½·¨£¬µ«ÊÇûÓÐhook³É¹¦£¬×î¿ìÕÒµ½ÔÒò¾ÍÊǰÑÕâ¸öhookµÄ´úÂëÍâÃæ¼ÓÒ»¸ötry...catch£¬È»ºócatchµ½Òì³£ÐÅÏ¢´òÓ¡³öÀ´¼´¿É¡£Èç¹ûÓдíÎóÖ±½Ó¾Í¿ÉÒÔ¿´µ½ÔÒòÁË£¬²»È»ºÜ·Ñ¾¢È¥ÕÒhookʧ°ÜµÄÔÒò¡£È»ºóÎÒÃÇÔÚÔËÐп´¿´½á¹û£º

ÎÒÃǽøÐÐÏÂÀ»ñÈ¡¸ü¶àºÃÓÑÁбíÐÅÏ¢·¢ÏÖ´òÓ¡µÄ²ÎÊýÐÅÏ¢£¬ÀïÃæµÄµÚ¶þ¸ö²ÎÊýµÄÈ·ÊÇЯ´øÁË·ÖÒ³ÐÅÏ¢£¬Ã¿Ò³ÊÇ20Ìõ£¬ÓÖÿҳµÄÆðʼµã£¬¶øÇÒµÚÒ»¸ö²ÎÊýÆäʵÊÇÃüÁîÀàÐÍ£¬ºóÃæ»¹»áÓлñÈ¡Óû§ËùÓпÉÒÔÊÕÈ¡µÄÄÜÁ¿ÒÔ¼°ÊÕÈ¡ÄÜÁ¿µÄÃüÁî¡£ÄÇôµ½ÕâÀïÎÒÃÇÒѾ³É¹¦µÄ»ñÈ¡µ½ËùÓкÃÓÑÐÅÏ¢£¬²¢ÇÒ¿ÉÒÔͨ¹ý½âÎöresponseµÄjsonÊý¾Ý»ñÈ¡ÄÄЩÓû§¿ÉÒÔÓÐÄÜÁ¿ÊÕÈ¡£¬ÄÇôÔõô»ñÈ¡µ½Õâ¸öÓû§ËùÓеĿÉÒÔÊÕÈ¡µÄÄÜÁ¿ÐÅÏ¢ÄØ£¿ÒòΪÓеÄͬѧ¿ÉÒÔÓкܶàÄÜÁ¿ÊÕÈ¡µÄ£¬Õâ¸öÖ±½Óµã»÷Õâ¸öÓû§½øÈëËûµÄÂìÒÏÉÁÖÒ³Ãæ¼´¿É£¬ÕâʱºòÒÀÈ»ÊÇͨ¹ý¹Û²ìÈÕÖ¾ÐÅÏ¢£¬Ê×ÏÈ»¹ÊÇÈë¿Ú²ÎÊýÐÅÏ¢£º

ÕâÀï¿´µ½Ã¿´Î½øÈëÒ»¸öÓû§µÄÄÜÁ¿Ò³Ã棬¶¼»áÖ´ÐÐÕâËÄÌõÃüÁ¶øÇÒÆäÖÐÓÐÈýÌõÃüÁî»áЯ´øµ±Ç°Óû§id£¬ÄÇôÓû§µÄidÐÅÏ¢ÎÒÃÇÔÚ֮ǰÁÐ±í·µ»ØµÄjsonÖпÉÒÔÄõ½ÁË¡£ÔÙ¿´¿´ÄÜÁ¿·µ»ØµÄjsonÊý¾Ý£º

»¹ÊǽøÐÐjson¸ñʽ»¯£º

¹û²»ÆäÈ»·µ»ØµÄjsonÖлá±íʾÕâ¸öÓû§ËùÓеÄÄÜÁ¿ÐÅÏ¢£¬ÆäÖеÄcollectStatus×ֶαíʾÕâ¸öÄÜÁ¿ÊÇ·ñ¿ÉÒÔÊÕÈ¡£¬ÄÇôÎÒÃǰÑÕâ¸öjson½øÐнâÎö±£´æ¿ÉÒÔÊÕÈ¡µÄÄÜÁ¿idÐÅÏ¢£¬½ÓÏÂÀ´ÓÐÁËÕâЩidÐÅÏ¢£¬ÄÇô¾Í¿ªÊ¼ÊÕÈ¡ÁË£¬ÎÒÃÇÔÚÊÖ¶¯µÄÊÕȡһ¸öÄÜÁ¿¿´¿´´òÓ¡µÄ²ÎÊýÐÅÏ¢ºÍ·µ»Ø½á¹ûÐÅÏ¢£º

Èë¿Ú²ÎÊýÖеÄÈ·°üº¬Á˵±Ç°ÊÕÈ¡µÄÄÜÁ¿idºÍµ±Ç°Óû§ÐÅÏ¢£¬¶øÕâÁ½¸ö²ÎÊýÎÒÃÇÏÖÔÚÒѾ¶¼ÄÜ»ñÈ¡µ½ÁË£¬¿´¿´ÊÕȡ֮ºóµÄ·µ»ØÐÅÏ¢£º

ÒÀȻȥjson¸ñʽ»¯£º

·µ»ØÐÅÏ¢ÖÐÓÐÊÇ·ñ³É¹¦µÄ×ֶκͳɹ¦ÊÕÈ¡µÄÄÜÁ¿ÊýÖµ£¬Õâ¸öÎÒÃÇ¿ÉÒÔ½âÎöÀ´±êʶ´Ë´ÎÊÕÈ¡ÊÇ·ñ³É¹¦ÁË¡£
ºÃÁ˵½ÉÏÃæÎÒÃÇÒѾȫ²¿·ÖÎöÍêÁËÄÜÁ¿»ñÈ¡Á÷³Ì£¬ÎÒÃÇдµÄ²å¼þ´óÖ²Ù×÷Á÷³ÌÒ²ºÜ¼òµ¥£¬µÚÒ»´Î½øÈëÂìÒÏÉÁÖÒ³Ãæ¾Í»á»ñÈ¡µÚÒ»Ò³µÄºÃÓÑÐÅÏ¢£¬È»ºóÎÒÃÇͨ¹ýÐÞ¸ÄÒ³ÊýÆðʼµã½øÐзÖÒ³»ñÈ¡ËùÓкÃÓÑÐÅÏ¢£¬È»ºó½âÎö×ֶλñÈ¡ÓÐÄÜÁ¿ÊÕÈ¡µÄÓû§idÐÅÏ¢½øÐб£´æ£¬È»ºóÔÚÒÀ´Îͨ¹ýÓû§idÐÅÏ¢»ñȡÿ¸öÓû§¿ÉÒÔÊÕÈ¡µÄÄÜÁ¿idÐÅÏ¢½øÐб£´æ£¬×îºóÔÚÀûÓÃ֮ǰµÄÓû§idºÍÄÜÁ¿idÐÅÏ¢½øÐÐÊÕÈ¡ÄÜÁ¿¼´¿É¡£Õû¸ö¹ý³ÌÈ«²¿Í¨¹ýµ÷ÓÃÉÏÃæµÄÄǸö¹Ø¼ü·½·¨£ºH5RpcUtil.rpcCall£¬ÒòΪÕâ¸ö·½·¨ÊÇstaticµÄ£¬ËùÒÔµ÷ÓÃËüºÜ¼òµ¥£¬Ö»Òª¹¹Ôì¾ßÌå²ÎÊýÐÅÏ¢¼´¿É£¬¶øÔÚÉÏÃæµÄÈý¸ö²Ù×÷ÖлñÈ¡ºÃÓÑÁбíÐÅÏ¢¡¢»ñȡָ¶¨Óû§µÄ¿ÉÊÕÈ¡ÄÜÁ¿ÐÅÏ¢¡¢ÊÕÈ¡ÄÜÁ¿£»ÕâÈý¸ö²½Öè´òÓ¡µÄ²ÎÊýÀ´¿´£¬ÏÖÔÚΨһÐèÒª¸ã¶¨µÄÊÇÄǸö×Ô¶¨ÒåÀàÐ͵ÄH5PageImplÀࣺ

ÎÒÃÇ¿´¿´Ôõô²ÅÄÜ»ñÈ¡µ½Õâ¸ö¶ÔÏóʵÀý£¬¶øÇÒÎÒÃÇÒ²·¢ÏÖÕâ¸ö¶ÔÏóʵÀýÔÚÿ´Î½øÈëÒ»¸öеÄÒ³Ãæ¶¼ÊDz»Ò»ÑùµÄ£¬È«¾ÖËÑÕâ¸öÀࣺ

ÕâÀï·¢ÏÖÁËºÜ¶àµØ·½µ÷Ó㬵«ÊÇÓÐÒ»¸öH5Fragment×îÖµµÃ»³ÒÉ£¬ÎªÊ²Ã´ÄØ£¿ÒòΪÎÒÃÇ¿ÉÒÔ¿´µ½Ö»ÓÐActivityºÍFragment¿ÉÒÔÕ¹Ê¾Ò³ÃæµÄÔØÌå¡£ÎÒÃÇÏÖÔÚ¿´µ½µÄÊÇÂìÒÏÉÁÖÒ³Ãæ£¬ÓÖÔÚH5FragmentÖÐËѵ½ËûÁË£¬µ±È»×îÖµµÃ»³ÒɺͲ鿴ÁË£¬µã»÷È¥²é¿´¼´¿É£º

µ½ÕâÀïÎÒÃǾÍÒªÓеãÓ¦Óÿª·¢¼¼ÇÉÁË£¬AndroidÖеÄFragmentÊÇÎÞ·¨µ¥¶ÀչʾµÄ£¬Ò»°ãµÄÓ÷¨¶¼ÊÇÒ»¸öActivityÖеÄFragmentManager½øÐйÜÀíչʾµÄ£¬ÒòΪ¿ÉÄÜ»áÓжà¸öFragmentµÄ£¬ËùÒÔÎÒÃÇ¿ÉÒÔÏÈ¿´¿´µ±Ç°activityÊÇɶ£¬Ö±½ÓÓÃÃüÁî
adb shell dumpsys activity top£º

Õâ¸öActivityÊÇH5Activity£¬¿ÉÒÔ¿´µ½ËûµÄµ±Ç°FragmentµÄ¹¹Ôì²ÎÊýÐÅÏ¢£¬ÎÒÃÇÈ¥²é¿´Õâ¸öactivityÐÅÏ¢£º

¹û²»ÆäÈ»ÓÐÒ»¸öÀàËÆÓÚFragmentManagerµÄÀ࣬µã½øÈ¥½øÐв鿴£º

ÕâÀïÊÇÿ´ÎÌí¼ÓеÄH5FragmentÀàµÄ·½·¨£¬ÎÒÃÇÖ±½ÓhookÈ»ºó°Ñµ±Ç°µÄH5Fragment´òÓ¡³öÀ´¿´¿´£º

ͨ¹ý´òÓ¡ÈÕÖ¾·¢ÏÖÿ´Î½øÈëÒ»¸öÒ³ÃæÕâ¸öH5Fragment¶¼ÊÇÒ»¸öжÔÏó£¬ÄÇôÎÒÃÇÖªµÀÉÏÃæµ÷ÓÃrpcCall·½·¨µÄ²ÎÊýH5PageImpl¿ÉÒÔÔÚH5FragmentÖлñÈ¡µ½£¬ËùÒÔÕâÀïÎÒÃǾÍÐèÒªÕâô×öÁË£¬¾ÍÊÇÀ¹½ØÕâ¸öpushFragment·½·¨£¬È»ºó±£´æµ±Ç°×î¶¥¶ËµÄÒ³ÃæH5Fragment£¬È»ºóÓ÷´Éä»ñÈ¡¶ÔÓ¦µÄH5PageImpl¶ÔÏó£¬×îºóÔÚµ÷ÓÃrpcCall·½·¨Ö´ÐÐÃüÁî¼´¿É£¬¾ßÌåÕ⼸¸öÀàµÄ¹ØÏµÊÇʲôÑùµÄ£¬¼ÌÐø¿´Ò»Ï´úÂ룺

Ê×ÏÈÊÇH5FragmentÀàÖÐÓÐÒ»¸ö±äÁ¿ÊÇH5ViewHolderÀàÐ͵ıäÁ¿a£º

È»ºóÊÇH5ViewHolderÀàÖеÄÓиö±äÁ¿hÊDZ£´æµ±Ç°µÄH5PageImplÀàÐÍ£º

¶øH5PageImplÄÚ²¿ÓÐÒ»¸öH5WebViewÀàÐͱäÁ¿f£º

¿´µ½ÕâÀïÉèÖÃÁ˺ܶàWebViewµÄ»Øµ÷½Ó¿ÚÐÅÏ¢£¬ËùÒÔµ½ÕâÀï¾Í´óÖÂÇå³þÂìÒÏÉÁÖ»òÕß˵֧¸¶±¦ÆäËûH5Ò³ÃæµÄ²ã¼¶¹ØÏµÊÇ£ºH5Activity.fragmentManager->H5Fragment->H5ViewHolder->H5PageImpl->H5WebView£»È»ºóÀûÓÃwebview½øÐб¾µØ½»»¥²Ù×÷ÁË¡£
ËÄ¡¢±àдHook´úÂë
ÓÐÁËÉÏÃæµÄ·ÖÎö£¬ÕâÀï»æÖÆÁËÒ»ÕÅͼƬ£¬È«ÊÀ½çΨ¶ÀÒ»·ÝµÄ£¬ÒÔºó´ó¼Ò·ÖÎöÖ§¸¶±¦H5Ò³Ãæ¶¼¿ÉÒÔ°´ÕÕÕâ¸öÁ÷³ÌÀ´¼´¿É£º

ÓÐÁËÕâÕÅͼÎÒÃǶÔÓÚд²å¼þÄǾͺܼòµ¥ÁË£¬ÏÂÃæ¾Í¼òµ¥À´·ÖÎöһϴúÂë°É£¬Ê×ÏÈÎÒÃǵÚÒ»´Î½øÈë»áÓÐÁ½¸ö·µ»ØÐÅÏ¢£¬Ò»¸öÊǵ±Ç°µÚÒ»Ò³µÄºÃÓÑÐÅÏ¢£¬»¹ÓÐÒ»¸öÊÇ×Ô¼ºµÄÄÜÁ¿ÐÅÏ¢£¬ËùÒÔÐèÒª½âÎöÁ½¸ö£¬¶ø¶ÔÓÚ×Ô¼ºµÄÄÜÁ¿Ö±½ÓÊÕÈ¡¼´¿É£¬ÎÒÃÇ¿ÉÒÔhookÉÏÃæµÄrcpCall·½·¨À´»ñȡÿ´ÎÒ³Ãæ·µ»ØµÄresponseÐÅÏ¢£º

È»ºó×Ô¶¯»ñÈ¡ËùÓеĺÃÓÑÁбíÐÅÏ¢½øÐб£´æ£º

ÕâÀïÐèÒª·ÖÒ³ÇëÇóµ½ËùÓеĺÃÓÑÐÅÏ¢±£´æ£¬ÇëÇóÍê³ÉÁËÈ»ºóÔÚ±éÀúËùÓÐÓû§»ñÈ¡¿ÉÒÔÊÕÈ¡µÄÄÜÁ¿ÐÅÏ¢£¬·¢ËÍ»ñÈ¡·ÖÒ³ºÃÓÑÐÅÏ¢µÄÃüÁîÒ²ºÜ¼òµ¥£º

²é¿´Ö¸¶¨¸øÓû§¿ÉÒÔÊÕÈ¡ÄÜÁ¿µÄÃüÁ

¿ªÊ¼×Ô¶¯ÊÕÈ¡ÄÜÁ¿µÄÃüÁ

ÎÒÃÇÀûÓÃ֮ǰ·ÖÎöµÄÄǼ¸¸öÀà¹ØÏµ£¬±£´æµ±Ç°µÄH5Fragment£º

È»ºóÀûÓ÷´Éä»ñÈ¡¶ÔÓ¦µÄH5PageImpl¶ÔÏó£¬×îºóµ÷ÓÃrpcCall·½·¨·¢ËÍÃüÁîÇëÇó£º

»¹Óв¿·Ö´úÂëÕâÀï²»ÔÚÏê½âÁË£¬Õû¸öÁ÷³Ì¹á֮ͨºó½ÓÏÂÀ´¾ÍÊǼûÖ¤Ææ¼£µÄʱ¿Ì£º

¿´µ½ÁËÖ»ÐèÒª¼¸ÃëÖӾͿÉÒÔ°ÑËùÓкÃÓѵÄËùÓÐÄÜÁ¿Ò»Íµ´ù¾¡£¬²»¸ø×Ô¼ºÁôÏÂһ˿˿µÄÒź¶£º

¶øÓÐÁËÕâ¸öÖ®ºó£¬ÎÒÃÇ»¹ÐèҪд¸ö¹¤¾ß¾ÍÊǾ¹ý¶àÄê͵ȡÄÜÁ¿¾Ñ飬ÿÌì͵ȡÄÜÁ¿µÄʱ¼ä¶Î×î¼ÑÊÇÔçÉÏ7.30£¬ÖÐÎç12.00£¬ÍíÉÏ5.30£¬ËùÒÔÎÒÃÇÔÚÕâÈý¸öʱ¼ä¶Î×Ô¶¯´ò¿ªÂìÒÏÉÁÖÒ³Ãæ¼´¿É¡£´úÂëÕâÀï²»ÔÚÏêϸ½éÉÜÁË¡£µ½ÕâÀïÎÒÃǾͰѲå¼þ¿ª·¢Íê³ÉÁË¡£
Îå¡¢¼¼Êõ×ܽá
´ÓÉÏÃæµÄ·ÖÎö¿ÉÒÔ¿´µ½£¬±¾ÎÄÉæ¼°µ½µÄ¼¼Êõ»¹ÊǺܶàµÄ£¬ËùÒÔÕâÀï¾ÍÀ´×ܽáһϣ¬ÓÐʱºòдһ¸ö²å¼þ½á¹û²»ÖØÒª£¬ÖØÒªµÄÊÇÔÚÕâ¸ö¹ý³ÌÖÐÎÒÃÇ·¢ÏÖÁËʲôѧµ½ÁËʲô£º
µÚÒ»¡¢ÔÚʹÓÃÒÔÍùµÄÍ»ÆÆ¿Ú·½·¨(×Ö·û´®ËÑË÷´ó·¨£¬UI½çÃæÔªËØ·ÖÎöµÈ)·½·¨ÎÞ¹ûµÄʱºò£¬¼Çסһ¸ö×îÐµķ½·¨¾ÍÊÇ»ñÈ¡µ±Ç°Ó¦ÓÃÖ´ÐÐÆ¬¶ÎµÄËùÓз½·¨¶ÑÕ»ÐÅÏ¢À´»ñÈ¡Í»ÆÆ¿Ú·½·¨¸ü¼Ó±ã½Ý¡£
µÚ¶þ¡¢ÒòΪÐèҪʹÓÃDDMS»ñÈ¡µ±Ç°Ó¦ÓÃÖ´ÐÐÆ¬¶ÎµÄ·½·¨¶ÑÕ»ÐÅÏ¢£¬µ«ÊÇÐèÒªÕâ¸öÓ¦Óô¦ÓÚµ÷ÊÔ״̬£¬ÎªÁ˲»½øÐз´±àÒëºÍ»Ø±àÒë²Ù×÷·±Ëö£¬¿ÉÒÔÀûÓÃmprop¹¤¾ßÖ±½ÓÐÞ¸ÄϵͳµÄµ÷ÊÔ״ֵ̬¡£
µÚÈý¡¢ÈκÎÒ»¸öÓ¦ÓÃÈç¹ûÀûÓÃÒ³ÃæH5½øÐÐչʾ¹¦ÄÜ£¬ÄÇôËû¿Ï¶¨ÓÐÒ»¸öºÍ±¾µØ½»»¥µÄJS¶ÔÓ¦·½·¨£¬Ò»°ã×îÖ±½ÓµÄ·½·¨ÊÇÕÒµ½Õâ¸öÒ³ÃæµÄWebView£¬È»ºóhookËûµÄaddJavascriptInterface·½·¨»ñÈ¡±¾µØJS½»»¥µÄ¶ÔÏ󣬻òÕßÊÇhookÿ´Î¶¼»á¼ÓÔØurlµÄ¼¸¸ö»Øµ÷·½·¨±ÈÈçWebViewClient½Ó¿Ú£¬»òÕßÊÇWebViewChromeClientµÈ¡£
µÚËÄ¡¢Ö§¸¶±¦¿ÉÄÜΪÁ˰²È«Æð¼û»òÕßÊÇÐÔÄܸü»òÕßÊǶ¯Ì¬¸üеÄÔÒòÀ´°ÑºÜ¶àÒ³Ãæ×ö³ÉH5ÁË£¬²»µÃ²»Åå·þËû°ÑH5Ò³Ãæ×öµÄºÍ±¾µØÒ³Ã漸ºõÎÞ²î±ð»¹ÊǺÜÀ÷º¦µÄ£¬ÖÁÉÙÎÒÒ»¿ªÊ¼ÒòΪÊDZ¾µØÒ³Ãæ¡£ËùÒÔÒÔºó·ÖÎöÖ§¸¶±¦µÄÆäËûÒ³ÃæÈç¹û·¢ÏÖµ±Ç°µÄactivityÊÇH5ActivityµÄ»°£¬ÄÇô¾ÍÊÇH5Ò³Ãæ½øÐмÓÔØµÄ¡£
»¹ÊÇÄǾ仰ÿ´Îд²å¼þÊÇΪÁ˸üºÃµÄѧϰ¸ü¶àÄæÏò¼¼ÇɺÍ˼·£¬ÓÐʱºò½á¹û²»ÖØÒª£¬ÖØÒªµÄÊǹý³Ì£¬¶øÐ´ÁËÕâô¶à²å¼þΨ¶À¸Ð¾õÕâ¸ö²å¼þ×îÓÐʵ¼ÊÓÃ;£¬ÏÖÔÚÿÌìÓòå¼þÊÕÈ¡ÄÜÁ¿ÕæµÄÊÇÌ«·½±ãÁË¡£ |