Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
»¥ÁªÍø¹«Ë¾Òƶ¯°²È«ÁìÓòµÄ̽Ë÷Óëʵ¼ù
 
  2526  次浏览      29
 2019-8-5
 

 

±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚÍøÒ×ÔÆ,±¾ÎÄÖ÷Òª½áºÏ°²È«´ÓÒµ¾­Ñé½øÐÐÁËһЩ˼¿¼Óë̽Ë÷£¬ÊÔͼ½«ÈçºÎ±£ÕÏÒÆ¶¯ÒµÎñ°²È«Õâ¸ö¸´ÔÓµÄÎÊÌâÖð²½²ð½â¡£

ÓÉÓÚÒÆ¶¯»¥ÁªÍøµÄÆÕ¼°£¬Òƶ¯¶ËÓ¦ÓÃÒѾ­È¡´ú´«Í³µÄPCÓëWeb¶Ë£¬¸²¸ÇÁ˼¸ºõËùÓеĻ¥ÁªÍøÒµÎñ¡£Óë´Ëͬʱ£¬ÐÐÒµÄÚͬÀà²úÆ·µÄ¾ºÕù¡¢ºÚÉ«²úÒµµÄÊÓ½ÇÒ²Öð½¥×ªÒƵ½ÁËÒÆ¶¯¶ËµÄÒµÎñÉÏ£¬Ö±½Óµ¼Ö½ü¼¸ÄêÒÆ¶¯¶Ë°²È«¹¥·ÀÓúÑÝÓúÁÒ£¬ÔÚ´Ë»ù´¡ÉÏÑÜÉú³öµÄ¹¥»÷ÊÖ¶Î×ÔȻҲÊDzã³ö²»Çî¡£¹¥»÷·½µÄ¼¼Êõ·½°¸ÔÚ²»¶ÏµÄ¹¥·À¶Ô¿¹ÖÐÓú·¢¾«ÇÉ£¬¹¥»÷ÐÐΪµÄÒþ±ÎÐÔµÄÒ²ÔÚ²»¶ÏÌá¸ß¡£

ÒÆ¶¯¶ËÓ¦Óð²È«ÊÇÕû¸ö¸´ÔÓµÄÒÆ¶¯°²È«Éú̬ÖеÄÖØÒª²ã¼¶£¬Ò²ÊÇÓëÆóÒµÒµÎñ°²È«ÐÔ¹ØÁª×î½ôÃܵIJ㼶¡£ËäȻϵͳ¼¶µÄ°²È«Â©¶´¿ÉÒÔÔì³É·À·¶µÄÓ°ÏìÓëÖØ´óΣº¦£¬µ«ÊÇÒ»·½ÃæÓÉÓÚϵͳ©¶´´øÀ´µÄÍþв·¢Éú¼¸ÂʽÏС£¬ÁíÒ»·½ÃæÔÚ´ËÀà©¶´Êµ¼ù·¢Éúʱ£¬ÆóÒµÍùÍùÄÜ×öµÄÒ²Ö»ÊDz¼ÖÃÁÙʱµÄÓ¦¼±²ßÂÔ±£Õ϶ÔÓ¦µÄÒµÎñ²»ÊÜÇÖº¦¡£ËùÒÔ£¬ÏµÍ³²ã¼¶µÄ°²È«ÎÊÌâÎÒÃÇÔÝÇÒ²»ÂÛ£¬½«Ä¿¹â¾Û½¹ÓÚ»¥ÁªÍøÆóÒµ×îÓ¦¸Ã¹Ø×¢µÄÒÆ¶¯Ó¦ÓÃÓëÒµÎñ°²È«¡£

ÔÚÈç½ñµÄÒÆ¶¯Éú̬»·¾³ÖУ¬±ÊÕßËùÀí½â¶ÔÒµÎñÓ°Ïì½Ï´óµÄ°²È«ÎÊÌâÖ÷Òª·ÖΪÈýÀࣺ

1.²úÆ·±»ÄæÏò·ÖÎöºóËùÑÜÉúµÄÞ¶Ñòë¡¢Êý¾ÝÅÀ³æÓëÍâ¹ÒµÈ

2.ǰºó¶Ë½Ó¿Ú¼øÈ¨²»ÑϸñÔì³ÉµÄÊý¾Ýй¶

3.ÓÉ×é¼þȨÏÞ¡¢ÊäÈë±ß½çÄ£ºýÔì³ÉµÄ»ò´ó»òСµÄ°²È«Òþ»¼

ÔÚ¹ýÈ¥µÄÒ»ÄêÖнøÐÐÁËһЩ¾ßÌåÐԵķ½°¸Êµ¼ù£¬ÔÚ´Ë·ÖÏíһЩÔÚ̽Ë÷¹ý³ÌÖв»³ÉÊìµÄ˼¿¼ÓëÌå»á¡£

ÕýÎÄ

ÔÚ»¥ÁªÍøÆóÒµÖÐÒÆ¶¯¶ËÒµÎñÏà±È½Ï´«Í³IT¹«Ë¾µÄÕ¼±È´ó´óÔö¼Ó£¬ÒµÎñÒ²¸ü¼Ó¸´ÔÓ¡£ÎªÁËÄܹ»¼°Ê±¡¢È«ÃæµÄµÄ±£Õϲ»Í¬Òƶ¯¶ËÒµÎñµÄ°²È«ÐÔ£¬±ÊÕß½«´ÓÈý¸ö·½ÏòÈëÊÖ£¬·ÖÎöÒÆ¶¯¶Ë°²È«Íþв²úÉúµÄÔ­ÒòÓëÓ¦¶Ô·½°¸¡£

ÔÚÀûÓü¼Êõ·õ»¯²úÆ·¶Ô¿¹·çÏÕÖ®Í⣬ÍùÍùÈÝÒ×±»¼¼Êõ³öÉíµÄÎÒÃǺöÂÔµÄÒ»µãÊǹ淶»¯µÄÒÆ¶¯¶Ë°²È«ÒªÇóÒÔ¼°¿ÆÆÕÐÔµÄÒÆ¶¯¶Ë°²È«Åàѵ¡£Ä¿Ç°³ýÉÙÊý¹«Ë¾ÈçGoogle¡¢AmazonÍ⣬¾ø´ó²¿·Ö¹«Ë¾°²È«·çÏÕµÄÄÚÍâ¼ì³ö±ÈÀýÆäʵ¶¼²»Ì«ÀÖ¹Û¡£ÔÚÕâÆäÖÐÒ²¿ÉÒÔ·ÖΪÁ½À๫˾£¬ÆäÒ»ÊDzúÆ·ÔÚ·¢²¼Ê±¶Ô·çÏÕȱ·¦¸ÐÖªÄÜÁ¦¡¢ÁíÒ»ÖÖÔòÊÇ·¢²¼Ê±ÒÑ֪©¶´ÒѾ­½øÐÐÁËÐÞ¸´¡£ËäÈ»²úÆ·ÔÚ·¢²¼Ê±ÒÑ֪©¶´ÒѾ­ÐÞ¸´£¬µ«Ëæ×Åʱ¼äÍÆÒÆÔÚÏßÉÏÔËÐеİ汾Èӻᱩ¶³öеÄÎÊÌ⣬Èç¹û¶Ô´ËÀàÎÊÌâÎÞ·¨¸ÐÖªÖÕ½«»á³ÉΪÍþвҵÎñÖ÷ÌåµÄ°²È«·çÏÕ¡£

°²È«¿ª·¢ÉúÃüÖÜÆÚ£¨Security Development Lifecycle£©£¬Ò²¾ÍÊÇÎÒÃÇË׳ƵÄSDL¿ÉÒÔʹ²úÆ·ÔÚÉúÃüÖÜÆÚÄÚµÄÉè¼Æ¡¢´úÂëºÍÎĵµÖÐÓ밲ȫÏà¹ØµÄ©¶´¼õµ½×îÉÙ£¬¾¡¿ÉÄܵÄÔÚ²úÆ·°æ±¾»Ø¹éǰ¾¡ÔçµØÇå³ý©¶´¡£¿ÆÆÕÐÔµÄÐûµ¼¡¢¹æ·¶ÐÔµÄÖÆ¶ÈÕâЩÔÚÈÕ³£¹¤×÷ÖÐÆäʵ¶ÔÒµÎñÑз¢ÈËÔ±µÄÔ¼ÊøÁ¦¼°ÆäÓÐÏÞ£¬Ëü½öÄÜ×÷ΪһÖֹ淶ȥָµ¼ÓëÔ¼ÊøÑз¢ÈËÔ±µÄÈÕ³£´úÂëµü´ú£¬µ«ÈËÔ±µÄ²»¿É¿¿ÐÔ¸æËßÎÒÃDZØÐëÓÐÏàÓ¦µÄ¼à¹ÜÊֶΣ¬È·±£ÖƶȵÄÂ䵨ִÐУ¬½«·çÏÕ¾¡¿ÉÄܶàµÄת»¯Îª¿É¿Ø·çÏÕ£¬ËùÒÔÎÒÃÇÐèÒªÒ»ÖÖ¡°¹ØÃÅ´ò¹·¡±µÄÄÜÁ¦£¬·ñÔòÒ»ÇÐÖÆ¶È½ÔÊÇ¿Õ̸¡£

ÄÇ¡°¹ØÃÅ´ò¹·¡±µÄÉó¼Æ½Úµã·ÅÈëÄÄÀï¸üºÏÊÊÄØ£¿ÕâÊǸöÖµµÃ˼¿¼µÄÎÊÌâ¡£Èç¹ûµÄ²úÆ·ÊÇÒ»¿î°×ºÐÉ󼯵ÄɨÃèÆ÷£¬ÄÇôÔÚGitÌá½»´¦¿´ÆðÀ´¸üºÏÀí£¬µ«±ÊÕß¼ÙÉèÒ»ÖÖ¼«¶ËÇé¿ö£ºÈç¹û¹«Ë¾ÄÚ²¿²¢Î´Í³Ò»±àÂë¹æ·¶¡¢ÒµÎñ´úÂë»ìÂÒ²»¿°£¬ÄÇô½«Éó¼Æ½ÚµãÉèÖÃÔÚ´Ë»¹ÊÇ·ñÕæµÄºÏÊÊ¡£

ÎÒ¸üÇãÏòÓÚÉ󼯱àÒëºóµÄ²úÎºÚºÐÉó¼ÆÒ²»áÓжà¸öλÖÿÉÒÔ°²Öã¬ÄÄÅÂÊÇÈ·¶¨ÉèÖÃÔÚCIƽ̨(Continuous integration ³ÖÐø¼¯³É)ÉϾßÌåÓ¦ÓÃʱҲÐèҪ˼¿¼³õÆÚµÄÉó¼Æ¿ÅÁ£¶ÈÊÇÒÔAPP»¹ÊÇSDK×é¼þΪµ¥Î»¡£ÔÚÔËӪ˼άÏÂ˼¿¼×÷Ϊ°²È«·½·þÎñÓÚÒµÎñ£¬Ê×ÏÈÒª¶Å¾øµÄÇé¿ö¾ÍÊǶÔÒµÎñÕý³£·¢Õ¹Ôì³É¹ý¶È¸ÉÈÅ£¬¶øÉÏÏßÉó¼Æ½Úµãºó¸ù¾Ý×ÔÉíÉ趨µÄSLAÄÜ·ñÔÚÔ¤ÆÚÖ®ÄÚ²»¶ÔÒµÎñÔì³ÉÀ§ÈŵÄÇé¿ö϶ÔÕû¸öAPP½øÐÐÉ󼯣¬ÎÒ¾õµÃÊDz»Äܵġ£°´ÕÕ½ð˿ȸģʽ£¬ÎÒÍÆ¼ö½«¿ÅÁ£¶ÈÉèÖõ½SDK×é¼þ²ãÃæ£¬ÕâÑù×öµÄºÃ´¦Óм¸µã£ºÊ×ÏȲ»»á¶ÔÒµÎñ²àÔì³É¹ý¶È¸ÉÈÅ£¬Æä´ÎÔÚÒ»¶¨¹æÄ£ÒÔÉϵĹ«Ë¾ÖÐÄ£¿é»¯¿ª·¢Òѳɳ£Ì¬»¯£¬²¢ÇÒ¿ÉÒÔÔ¤¼ÆËãʽ¶Ô¿â´æÎ´Éó¼ÆÍê³ÉÈ«Á¿ÇåÀíºó£¬ÔÙÐн«CIƽ̨µÄÉó¼Æ½Úµã¿ªÆô×è¶Ï¡£

×Ô¶¯»¯°²È«Éó¼Æ

¶ÔÓÚÒÆ¶¯¶ËAPPµÄ°²È«Éó¼ÆÍêȫͨ¹ý¶ÑÈËÁ¦È˹¤½øÐÐÉ󼯵ķ½Ê½ÔÚÎÒ¿´À´ÊDz»»®ËãµÄ¡£¶ÔÓÚÒµÎñ´ó°æ±¾¸üÐÂʱÈ˹¤Éó¼ÆºÍReview×Ô¶¯»¯É󼯽á¹ûÊÇÓбØÒªµÄ£¬µ«¶ÔÓÚ¾ø´ó²¿·ÖÇé¿öÏÂÈÕ³£µÄ°æ±¾µü´úÒÀ¿¿È˹¤½øÐÐÉ󼯵ÄÒâÒåÆäʵ²¢²»´ó£¬ËùÒÔÕë¶ÔÕâÖÖÇé¿ö×Ô¶¯»¯¼à²âÒ²¾ÍºôÖ®Óû³öÁË¡£¿ìËٴһ¸ö×Ô¶¯»¯É󼯯½Ì¨µÄ»°ÖÁÉÙÐèÒªÎå¸ö²¿·Ö£º

Android ƽ̨µÄÓ¦ÓÃÎÒÃǶÔdexÎļþ¸ñʽÖеÄÏà¹Østruct½øÐÐһЩ½âÎö£¬²¢Í¨¹ýÒ»¶¨µÄ¹æÔò½øÐÐÆ¥Åä½ø¶øÍê³É²¿·ÖµÄÉ󼯹¤×÷¡£Ä¿Ç°¶ÔÓÚ¾²Ì¬·ÖÎö°²×¿³ÌÐòÓÐÁ½ÖÖ²»Í¬µÄ·½Ê½£¬Ò»ÀàÊÇͨ¹ýjavaα´úÂë½øÐÐ×Ô¶¯»¯É󼯣¬ÁíÍâÒ»ÖÖÔòÊÇͨ¹ýsmali»ã±à½øÐÐ×Ô¶¯»¯É󼯣¬ÕâÁ½ÖÖÓÅȱµã¶¼ºÜÃ÷ÏÔ£º

µÚÒ»ÖÖͨ¹ýһЩ¹¤¾ßÀýÈçdex2jar´ËÀàµÄ¹¤¾ß(µ±È»Ò²¿ÉÒÔ×ÔÑУ¬ÊµÏÖÄѶÈÒ²²»ÊǺܴó)½«dexÎļþ·´±àÒëΪjavaα´úÂ룬ȻºóÀûÓÃÉ趨ºÃµÄ¹æÔòͨ¹ýÕýÔòÆ¥ÅäµÄ·½Ê½½øÐС°Î±°×ºÐÉ󼯡±µÃµ½´æÔÚ°²È«·çÏÕµÄname.javaÎļþ£¬²¢ÇÒ¹æÔò½¨Á¢Ïà¶Ô¼òµ¥¡£ÌýÆðÀ´ÕâËÆºõÊÇÒ»ÖÖÓÅÑŵÄʵÏÖ·½Ê½µ«¿ÓµãÔÚÓÚÓÐЩº¯ÊýûÓа취±»dex2jar»¹Ô­Îªjavaα´úÂ룬ËùÒÔÕâÑùµÄ·½Ê½ÖÕ¾¿ÊÇ»á´æÔÚһЩ¡°Â©ÍøÖ®Ó㡱¶øÇÒµ¥¸öjobµÄ¹¤×÷ʱ¼ä»áÒòΪת»¯javaα´úÂë¶ø´ó´óÑÓ³¤¡£

µÚ¶þÖÖÊÇͨ¹ý·ÖÎösmali»ã±à£¬ÕâÖÖ·½Ê½¿ÉÒÔ¹æ±ÜµôÕâÑùµÄÎÊÌ⣬ͨ¹ýdex2smaliÀàÐ͵Ť¾ß½«dexÎļþ·´±àÒëΪsmali»ã±à¡£ÕûÌåµÄʵÏÖ˼·ºÍÉè¼ÆÒ»¿î·´»ã±àÒýÇæÀàËÆ£¬ÔÚʵÏÖ¹æÔòÆ¥Åä»òÕ߯äËû¹¦ÄÜǰÊ×ÏÈÒªÍê³ÉÒ»¸ö×î»ù±¾µÄ¹¦ÄÜÄǾÍÊǽ綨º¯Êý±ß½ç£¬ÖµµÃ¸ßÐ˵ÄÊÇÎÒÃDz¢²»ÐèÒªÏñÉè¼Æ·´»ã±àÒýÇæÊ±½ç¶¨º¯Êý±ß½çÄÇÑùÂé·³£¬Í¨¹ý.methodºÍ.end methodºÜÈÝÒ׵ĿÉÒÔÇø·Ö³öº¯Êý´úÂë¿é£¬È»ºóͬÑùÊÇͨ¹ý¹æÔòÆ¥ÅäµÄ·½Ê½½øÐС°Î±ºÚºÐÉ󼯡±µÃµ½´æÔÚ°²È«·çÏÕµÄname.smaliÒÔ¼°Ðкţ¬ÕâÖÖ¼ì²âµÄ·½·¨Ïà¶ÔǰÖÖ·½·¨¿ÅÁ£¶È¸üϸһЩ£¬¿ÉÒÔ¿ìËÙ¶¨Î»µ½¾ßÌåÀàϵľßÌå·½·¨£¬²¢ÇÒµ¥¸öjobµÄ¹¤×÷ʱ¼ä»áÒòΪ²»ÐèҪת»¯javaα´úÂë¶ø´ó´óËõ¶Ì£¬µ«Ïà¶ÔÀ´Ëµ¹æÔòµÄ½¨Á¢Ò²Ïà¶Ô¸´ÔӵĶࡣ

iOS ƽ̨µÄÓ¦Óò¢²»ÄÜÏñAndroidÒ»Ñùͨ¹ýÖмäÂëת»¯³Éα´úÂëµÄÐÎʽ½øÐÐÉ󼯣¬²»¹ýÐÒºÃĿǰÊÐÃæÉϴ󲿷ÖiOSÏîÄ¿µÄ¿ª·¢ÓïÑÔ»¹ÊÇ»ùÓÚobjective-c£¬ÒòÆäRuntimeµÄʵÏÖ»úÖÆÔÚmachoÎļþ¸ñʽÖÐÀàÃû¡¢·½·¨Ãû¡¢ÊôÐÔÃûµÃÒÔ±£´æ£¬ÀûÓÃÕýÔòÆ¥ÅäµÄ·½Ê½´ó²¿·ÖÇé¿öÏÂͨ¹ý¹Ø¼ü×Ö·û´®¿ÉÒÔ¼ì²âÀýÈç²»°²È«µÄº¯Êý¡¢¿ò¼ÜµÈ¡£

Èç¹ûµ¥µ¥ÒÀ¿¿ipa°üÖеÄmachoÎļþºÍÆäËûÎļþÌáÈ¡ÐÅÏ¢À´ËµÆäʵ»¹²»Äܹ»Âú×㾲̬É󼯵ÄÐèÇó£¬ÓÐÏ൱һ²¿·ÖµÄÆ¥Å乤×÷ÊÇ»ùÓÚARM»ã±àµÄÈ¡µãÌØÕ÷Âë½øÐÐÅжϣ¬Èç¹ûÏëÔÚÕⲿ·Ö×öµÄÏà¶ÔÉîÈëЩ¡¢²»¾ÖÏÞÓÚÌØÕ÷ÂëÆ¥ÅäµÄ»°£¬Æäʵ¿ÉÒÔÒýÈëÒ»Ì×·´»ã±àÒýÇæÀ´ÊµÏÖ¸ü¶àÓÐȤ²¢ÇÒʵÓõŦÄÜÊǸö²»´íµÄÑ¡Ôñ¡£ÔÚ·´»ã±àÒýÇæµÄÑ¡ÔñÉÏ£¬ÍƼöʹÓÃCapstoneÕâÌ×ÒýÇæ£¬ÕâÌ×ÒýÇæÊÇ´ÓLLVMÏîÄ¿µÄ×é¼þÖÐÒÆÖ²²ð·ÖÁ˲¿·Ö³öÀ´£¬Ö§³ÖµÄÖ¸ÁÖÖÀàÊÇĿǰÒÑÖªµÄ·´»ã±àÒýÇæÖÐ×îÎªÈ«ÃæµÄ£¬¿ÉϧµÄÊÇÒòΪ´ÓLLVMÒÆÖ²³öÀ´µÄÔ­Òò(ÏîÄ¿¿ª·¢ÓïÑÔ´ÓC++ÒÆÖ²CÓïÑÔ)ÏîĿʮ·Ö¡°Ó·Öס±£¬ÄÚ´æÏûºÄ»á±ÈÒ»°ãµÄÒýÇæ¸ß³öÐí¶à£¬ÕâÒ²ËãÊÇÃÀÖв»×ãµÄ覴á£

¶¯Ì¬Éó¼ÆÕâÀïÆäʵûÓÐʲô̫¶à¿É˵µÄµØ·½£¬ÆÕ±éµÄÀ´Ëµ¿ÉÒÔ·ÖΪ¼¸´óÀࣺÊä³öÐÅÏ¢¡¢Êý¾Ý´æ´¢¡¢ÍøÂçÇëÇó¡¢Ãô¸ÐÊý¾ÝʹÓû¹ÓÐiOS´æÔÚºǫ́¿ìÕյȵȣ¬´ó¼ÒµÄ·½Ê½¶¼ÊÇHook¹³×¡Ò»Ð©´óͬСÒìµÄµã±ÈÈç˵ͨÐÅÊÕ·¢°üµÄAPI¡¢Ò»Ð©¿ªÔ´¿ò¼Ü´ÓÕâЩ·½Ãæ½øÐÐÈëÊÖ¡£

ÕâÀïÃæ¿ÉÄÜÖµµÃÒ»ÁĵÄÓÐÁ½µã£¬Ê×ÏÈÔÚÓÚ¶¯Ì¬Éó¼ÆµÃµ½µÄÊý¾Ý¿ÉÒÔ¶þ´ÎÀûÓõ½Ò»Ð©±ðµÄ·½Ïò£¬ÀýÈçÍøÂçÇëÇóµÄrequest¡¢response¿ÉÒÔ¶Ô½Ó¸øWebɨÃèÆ÷ͬ²½½øÐÐɨÃèһЩºó¶ËµÄÎÊÌ⣻ÁíÍâÒªÌáµÄÒ»µã¾ÍÊÇÈç¹ûÏë°Ñ×Ô¶¯»¯Éó¼Æ×öºÃÒª¿¼ÂǵĵãÆäʵ²»ÊÇÈçºÎ´Ó¹ã¶È³ö·¢È¥Ôö¼Ó¼ì²â·¶Î§£¬¶øÊÇÈçºÎÔö¼Ó×Ô¶¯»¯µÄÉî¶È¡¢¿ÉÒÔµ÷Óõ½¸ü¶àµÄÒµÎñ´úÂëÂß¼­Â·¾¶£¬ÆÕ±éµÄ×ö·¨¶¼ÊÇ´ÓUI¿Ø¼þµÄ±éÀúÈëÊÖµ«Õâ¸ö·½·¨ºÍHookÒ»Ñù¶¼´æÔÚÒ»¸öÎÞ·¨¹æ±ÜµÄÎÊÌâ¡°ÂñµãÔ½ÉîÒª´¦ÀíµÄÏûÏ¢¡¢Ê¼þ¾ÍÔ½¶à¡±£¬Ö±¹Û·´À¡³öÀ´¾ÍÊÇÒ»´ÎjobµÄÖÜÆÚºÜÂý£¬Ä¿Ç°À´ËµÒ²Ö»ÄÜÓë¿ÉÓÃÐÔÖ®¼äÈ¡³ýÒ»¸öÄܽÓÊܵÄÖмäÖµ¶øÒÑ£»×îºóÊý¾Ý¿ÉÊÓ»¯Óë»ýÀÛÕâºÜÖØÒª£¬Õâ¿ÉÒÔÓÐЧµÄËõ¶ÌÓ¦¼±ÏìӦʱ¼ä¡£

´úÂë²ã¼Ó¹Ì

ÀûÓÃ×Ô¶¯»¯µÄ·½Ê½È¥½«³£¼ûµÄ·çÏÕ¹æ±ÜÔÚ²úÆ·ÉÏÏßǰ£¬µ«°²È«Éó¼ÆºóÈÔÈ»ÊÇ»á´æÔÚһЩÒþ²ØºÜÉîµÄ°²È«ÎÊÌâ¡£Õⲿ·ÖÒþ»¼ÒòΪÒѾ­Ëæ×Ű汾ÉÏÏßÔÚÓû§É豸ÉÏÔË×÷£¬ÎÒÃÇÄÜ×öµÄ¾ÍÊÇÔö¼ÓÀûÓð²È«Òþ»¼»ò©¶´µÄ³É±¾£¬ÔÚAPPÉÏÏߺó½«Ö±½ÓÃæÁÙ×Å¶à·½ÃæµÄ·çÏÕ£¬³ýÁËÇ°ÃæÌáµ½µÄ·¢²¼ÉúÃüÖÜÆÚÖÐδ·¢ÏÖµÄÎÊÌâÍ⻹»áÃæÁÙ×ű»µÚÈý·½·ÖÎö¡¢½Ù³Ö¡¢ÀûÓõķçÏÕ£¬ÈçºÎ±£»¤APPµÄ´úÂëÒ²¾Í³ÉÁËÎÊÌâµÄ¹Ø¼ü¡£

¶ÔÓÚAndroid¼Ó¹ÌµÄÑܱä´ó¸Å¿ÉÒÔ·ÖΪÉÏͼËùÊöµÄËÄ´ú£¬µ±Ç°ÆäÖÐÓÐһЩС²åÇú±ÈÈçµÚÒ»´ú´Ó×î³õµÄ½âÃܺóÂ䵨¼ÓÔØÑܱä³É²»Â䵨¶¯Ì¬¼ÓÔØ¡¢ÔÚÒÆ¶¯¶ËÐéÄ⻯±£»¤ÔÚ³ÉÐÍǰµÄÒ»¶þ´ú¼Ó¹Ì»ìºÏ¼ÓÃÜ£¬ÕâЩÏà¶ÔÀ´Ëµ¸üϸÖµÄϸ½Ú²¢Ã»ÓÐÔÚÉÏͼÖÐËùչʾ¡£

´Ó¹¥»÷µÄ½Ç¶ÈÀ´Ëµ£¬µÚÒ»´ú¼Ó¹Ì½«DexÎļþÕûÌå½øÐмÓÃÜͨ¹ý×ÔʵÏÖDexClassLoaderµÄ·½Ê½À´½øÐмÓÔØ£¬ºóÀ´¸÷¼Ò³§É̽øÐÐÁËÉý¼¶²»½«DexÎļþ½âÃܺóÂ䵨¼ÓÃÜ£¬Ö±½ÓÔÚÄÚ´æÖнâÃܺóʹÓÃ×ÔʵÏÖDexClassLoader½øÐмÓÔØ£¬ÕâÑùµÄ˼·ÓëÔçÆÚÔÚwindowsƽ̨ÄÚ´æ¼ÓÔØdllµÄÒ»Ö£¬ËùÒÔÎÒÒ²¸üϲ»¶½«ÕâÖָĽø³ÆÎªÄÚ´æ¼ÓÔØ¡£µ«²»ÂÛÈçºÎÕâÖÖµÚÒ»´úµÄ¼Ó¹ÌÍÑ¿ÇÏà¶ÔÀ´Ëµ¶¼±È½Ï¼òµ¥£¬Í¨¹ýHookÎļþ¶ÁдÏà¹Øº¯Êý»òÕßÄÚ´ædump¶¼¿ÉÒÔ´ïµ½ÍÑ¿ÇÄ¿µÄ¡£

µÚ¶þ´ú¼Ó¹ÌºóµÄappÎļþDexÎļþÆäʵ¿ÉÒÔ˵ÊÇ¡°È±Ê§¡±µÄ£¬ÔÚÔËÐÐ̬ʱ½«DexÖÐÒѾ­³éÀëµÄ·½·¨ÔÚ¶¯Ì¬¿ª±Ù³öÀ´µÄÄÚ´æÀïÓ³É䲹ȫ£¬ÒÔ´ËÂú×㺯Êýµ÷ÓÃʱ¿ÉÕýÈ·µ÷Óá£ÕâÖÖÀàÐ͵ļӹÌÐèÒªÔÚÐéÄâ»ú´¦ÀíʱHook²¿·Öº¯ÊýµÃµ½¾ßÌåÖ´ÐеÄÀàÓë·½·¨ÔÙ½øÐÐÄÚ´ædump²¢ÐÞÕýDexÎļþ½á¹¹À´´ïµ½Íѿǡ£

ÎÒÃÇÊÇ´ÓÐéÄ⻯¿ªÊ¼È¥Éè¼ÆµÄÒ»ÆÚ¼Ó¹ÌÒ²¾ÍÊÇÉÏͼËù˵µÄµÚÈý´ú¼Ó¹Ì²úÆ·£¬ÕâÖÖÀàÐ͵ļӹ̲úÆ·ÐèҪȥÉè¼Æ×Ô¼ºµÄÖ¸Á½âÊÍÆ÷£¬´ÓÉè¼ÆÊµÏֵĽǶÈÀ´Ëµ¼¼ÊõʵÏֳɱ¾Ïà¶Ô½Ï¸ß¡£½áºÏÉÏÒ»´ú´úÂë³éÈ¡µÄ˼·£¬½«ÐèÒª±£»¤µÄ·½·¨´ÓDexÎļþÖгéÈ¡°´ÕÕ×ÔÑÐÐéÄâ»ú½âÊÍÆ÷µÄÖ¸Á¹æÔòתÒë³ÉVOPCode(Virtual Operation Code)תÖÁnative²ãͨ¹ýjavaµÄjni½Ó¿Ú½øÐе÷Óã¬Î´±»±£»¤µÄ·½·¨½«¼ÌÐøÔËÐÐÔÚAndroidÔ­ÉúµÄÐéÄâ»úÉÏÖ´ÐС£

ÔÚÎÒÃÇÑз¢¼Ó¹ÌµÄµÚÒ»ÆÚºó¶Ô×ÔÑмӹ̼°¼¸¼ÒÖªÃû¼Ó¹Ì½øÐÐÁËÒ»´Î¼æÈÝÐÔ²âÊԶԱȣ¬²âÊԵķ½Ê½ÊÇÒÀÍÐÓÚµÚÈý·½²âÊÔÆ½Ì¨Ëæ»ú³éÈ¡50̨ÈÈÃÅ»úÐͽøÐмæÈÝÐÔ²âÊÔ£¬¾ßÌåÊý¾ÝÈçÏ£º

ÎÒÃÇ×îÖյõ½µÄ²âÊÔÊý¾ÝÏÔʾ£¬×ÔÑвúÆ·¼°ÉÌÒµ¼Ó¹Ì²úÆ·¶¼´æÔÚÒ»¸ö¶ÔAndroid 4.xϵͳµÄ²¿·Ö»úÐÍÊÊÅä²»µ±µÄÇé¿ö(ÔÚÑз¢¹ý³Ìµ±ÖÐÎÒÃÇ·¢ÏÖÔÚһЩ»úÐÍÉϼ´Ê¹ÊÇÔ­Éúδ¼Ó¹ÌµÄapkÎļþÒ²ÊǻᷢÉúÎÞ·¨°²×°»òÕßÔËÐÐʧ°ÜµÄ×´¿ö)¡£ÎªÁ˽â¾öÕâÒ»ÎÊÌâÌáÉý°²È«²úÆ·µÄ¿ÉÓÃÐÔ£¬ÎÒÃÇÍŶӽ«¼Ó¹Ì²úÆ·Ïòjava2cµÈ¸ü¼ÓÎȶ¨µÄ·½ÏòÑз¢£¬java2c¼´Í¨¹ýÖ¸ÁתÒëµÄ·½Ê½½«javaÂß¼­×ª»»Îªc´úÂ룬ÔÙÓÃÌØ¶¨µÄ±àÒëÆ÷ºÍ¸ÄÔì¹ýµÄNDK(Native Development Kit)½«Æä±àÒë³ÉsoÎļþ£¬Ê¹ÓÃʱͨ¹ýjni½Ó¿Ú½øÐе÷Óã¬ÕâÑù¼È¿ÉÒÔÌá¸ßÊÊÅäµÄ¼æÈÝÐÔͬʱҲ½â¾öµôÁË´«Í³java2cºóÇ¿¶È±äÈõµÄÇé¿ö£¬¾­¹ýQAµÄÊý¾Ý¶Ô±ÈÎÒÃÇÍŶÓ×ÔÑмӹ̵ÄÐÔÄܺÄËð´ó¸ÅΪҵ½çͬǿ¶ÈÉÌÒµ²úÆ·µÄÊ®·ÖÖ®Ò»¡£

ÖÁÓÚiOSÉÏ¿ÉÒÔͨ¹ýLLVM¿ò¼Ü´òÔ칤¾ßÁ´£¬ÔÚǰ¶Ë±àÒ벻ͬÓïÑԵĴúÂëÎļþ×ö´Ê·¨·ÖÎöÒÔÐγɳéÏóÓï·¨Ê÷AST£¬È»ºó½«·ÖÎöºÃµÄ´úÂëת»»³ÉLLVM IR£¨intermediate representation£©£»ÔÙͨ¹ýPassÓÅ»¯Æ÷Ä£¿é¶ÔÖмä²ãIR½øÐÐÓÅ»¯»ìÏý£¬Í¨¹ýһϵÁеÄPass¶ÔIR×öÓÅ»¯£»ºó¶Ë¸ºÔð½«ÓÅ»¯ºÃµÄIR½âÊͳɶÔӦƽ̨µÄ»úÆ÷Âë¡£LLVMµÄÓŵãÔÚÓÚ²»Í¬µÄǰ¶ËÓïÑÔ×îÖÕ¶¼×ª»»³ÉͬһÖÖµÄIR×îÖÕ¶ÔӦƽ̨µÄ»ã±àÖ¸Á£¬ÇÒÏîÄ¿½á¹¹ÖеÄÈÎÒⲿ·Ö¶¼¿É¶ÀÁ¢²ð·ÖʹÓá£

ÒòΪApp StoreÉϼÜÉóºËµÄ¹ØÏµ£¬ÎÒÃDz¢²»ÄÜÏñÔÚÆäËûƽ̨×ö¼Ó¹Ì¡¢¿ÇÒ»Ñù½øÐж¯Ì¬½âÂëµÄ²Ù×÷¡£ÓÐÒ»¸ö¿ªÔ´ÏîÄ¿½Ð×öOLLVM£¬ÊÇÈðʿһËù´óѧʵÑéÊҵĿªÔ´ÏîÄ¿£¬¸ÃÏîÄ¿»ùÓÚLLVM±àÒëÆ÷¿ò¼ÜÌṩһÌ×ÔÚ±àÒëÆÚ½øÐдúÂë»ìÏýµÄ°²È«±àÒëÆ÷£¬ÒÔÔö¼Ó¶ÔÄæÏò¹¤³ÌµÄÄѶȡ£ÎÒÃÇͬÑùÑ¡Ôñ»ùÓÚLLVM¿ò¼ÜÑз¢iOS¼Ó¹Ì²úÆ·£¬µ«ÒòΪOLLVMÏîÄ¿µÄÓÅÐ㣬Ðí¶àµÄÄæÏò¹¤³Ì´ÓÒµÕßÒ²»áȥͨ¹ý´úÂëÏà¹ØÎĵµ(wiki¡¢×¢ÊÍ)È¥Á˽âÆä¹¦ÄܵÄʵÏÖÔ­Àí£¬ËùÒÔÎÒÃDz»µÃ²»Öع¹ÁËÆäÖÐÐé¼Ù¿ØÖÆÁ÷ (bugosConstolFlow)¡¢Æ½Ì¹Á÷¿ØÖÆ»¯(Flattening)ºÍµÈ¼ÛÖ¸ÁîÌæ»»(substitution)¹¦ÄÜ£¬²¢ÐÂÌíÁË×Ö·û´®¼ÓÃܼ°Ò»Ð©¸¨Öú¼ì²âµÄPASS£¨±¾ÎÄдÓÚÈ¥ÄêÄêÖУ¬Ê±ÖÁ½ñÈÕÎÒÃÇÒѾ­Íê³ÉÁ˶ÔLLVMºó¶ËµÄ¸ÄÔ죬²»ÔÚ½öÏÞÓÚǰ¶Ë£©¡£

³ýÁË´úÂë»ìÏýÒÔÍ⻹ÐèҪעÒâµÄ¾ÍÊÇ·ûºÅ»ìÏý£¬ÎÒÃÇÍŶÓÑз¢·ûºÅ»ìÏýµÄʱ¼äÔçÓÚMT-OLLVMÏîÄ¿£¬ÔÚÑз¢·ûºÅ»ìÏýµÄ¹ý³Ìµ±ÖÐÎÒÃǽøÐÐÁ˼¸´Î²úÆ·Éý¼¶£¬×î³õÎÒÃÇÖÂÁ¦ÓÚlinkerºó¶ÔmachoÎļþ½øÐÐpatch£¬ÕâÖÖ·½Ê½Ã»ÄÇôÓÅÑÅÇÒÐÞÕý¼æÈÝÐÔÎÊÌâºÜºÄʱ×îÖÕÆúÓá£Ç¡ºÃÔÚ×¼±¸Éý¼¶¸ÄÔìʱÎÒ¼°ÎÒµÄÍŶÓÕýÔÚÑз¢MT-OLLVMÏîÄ¿Ë÷ÐÔ½«Õâ¸ö¹¦Äܺϲ¢ÈëMT-OLLVMÏîÄ¿µ±ÖУ¬µ«ÕâÖÖʵÏÖ·½°¸ÔÚ²úÆ·¿ÉÓÃÐÔÉÏ»á´æÔÚÁ½¸öÎÊÌ⣬ÔÚ¹«Ë¾ÖбØÈ»»á´æÔÚ´óÁ¿µÄÄÚ²¿pod¿âÓÃÓÚ¿çÍŶÓʹÓ㬻ùÓÚ±àÒëÆÚ»ìÏýÎÞ·¨Ö§³Öpod¿â²¢ÇÒÎÒÃÇÔÚ±àÒëÆÚÎÞ·¨ÓÅÑŵÄÐÞ¸ÄxlibºÍstoryboardÎļþ¡£ÎªÁ˽â¾öÕâÁ½¸öÎÊÌâÔöÇ¿²úÆ·µÄ¿ÉÓÃÐÔÎÒÃǽ«Ç°Á½´ÎµÄÉè¼ÆË¼Ïë½øÐÐÁËÕûºÏ´Ó±àÒëºóµÄmachoÎļþ½øÐзûºÅÌáÈ¡£¬ÔÙ½éÈëÔ¤±àÒë½×¶ÎÖØÐ±àÒëÍê³É»ìÏýÒÔ´ËÀ´Ö§³ÖpodÏîÄ¿Ó붯̬ÐÞ¸ÄxibºÍstoryboardÎļþ¡£ÎÒÃÇÔÚÈ¥ÄêÍÆ¹ã²úÆ·¸²¸ÇµÄ¹ý³Ìµ±Öз´Ë¼Ò»Ð©Êµ¼ÊͶÈëʹÓúóµÄ·¢ÏÖÏîÄ¿±×¶Ë£¬ÔڽϴóµÄÏîÄ¿µ±ÖбàÒëʱ¼ä·­±¶ÊDZȽÏÀ§ÈÅÒµÎñ·½µÄÒ»¸öÎÊÌ⣬×îÖÕÎÒÃÇÈ·¶¨µÄеĸĽø·½°¸»ùÓÚÔ´ÂëÎļþ×öÓï·¨·ÖÎöÌáÈ¡·ûºÅ£¬Ìæ´úÁË´ÓmachoÎļþÖÐÌáÈ¡µÄÔ­Óз½°¸¼«´óµÄÌáÉýÁË¿ÉÓÃÐÔ¡£

ͨÐŲã¼Ó¹Ì

´úÂë»ìÏý¼¼ÊõÊǶԿ¹ÄæÏò·ÖÎö×îÖ±½Ó¡¢ÓÐЧµÄ·½Ê½Ö®Ò»£¬µ«ÍùÍùÈËÃÇÔÚÖ»¶Ô¶þ½øÖƽøÐмӹ̺ó£¬È´ºöÂÔÁ˿ͻ§¶ËÓë·þÎñ¶ËÖ®¼äµÄͨÐÅÒ²Êǹ¥»÷µÄ±¡Èõµã£¬´Ó¶øÌṩÁ˹¥»÷ÐÐΪµÄÇÐÈëµã¡£ÎÒËù¼ûµ½µÄÇé¿öÖÐÍùÍù¶¼ÊǶԶþ½øÖƽøÐмӹ̺ó¾Í¾õµÃ¸ßÕíÎÞÓÇÁË£¬µ«ÕâÖÖÈÏÖª´æÔÚ¡°ÈÏÖªÃ¤Çø¡±¡£ÀýÈçÈç¹û·ÖÎöÕßËù¹ØÐĵÄÊÇÈçºÎͨ¹ýAPP½øÐÐÊý¾ÝÅÀÈ¡£¬ÓÖÇ¡ºÃAPPÔÚͨÐÅʱµÄrequestºÍresponseÖÐûÓÐÐèÒªËã·¨¼ÓÃÜ»ò½âÃܵÄ×ֶΣ¬·ÖÎöÕßÇá¶øÒ׾پͿÉÒԵõ½×Ô¼ºÏëÒªµÄ¶«Î÷¡£²»¹ýÐÒºÃÏÖÔ򵀮óÒµÖÐÒÆ¶¯¶ËAPP¾ø´ó²¿·ÖÖØÒª½Ó¿Ú»òÆÕͨͨÐŽӿڶ¼»á´æÔÚһЩÐèҪʹÓÃËã·¨¼ÆËã¶ø³öµÄ×ֶΣ¬¶øÕⲿ·ÖµÄ±£»¤¾ÍÈ¡¾öÓÚAPP×ÔÉíËùÓüӹ̲úÆ·µÄ°²È«¶Ô¿¹ÄÜÁ¦ÊÇ·ñ×ãÒÔµ²µô³õ¼¶¡¢Öм¶µÄ·ÖÎöÕß¡£

ÔÚ¿Í»§¶ËÏò·þÎñ¶Ë·¢ÆðÇëÇóʱ¶Ôrequest½øÐÐУÑéÉú³ÉУÑéÖµ²¢Ìí¼Óµ½requestÖÐÏòºó¶Ë½øÐд«Ê䣬λÓÚNginx²ãÓÐÏàÓ¦µÄУÑé½Å±¾¶Ô´Ó¿Í»§¶Ë·¢Ë͹ýÀ´µÄrequest½øÐÐУÑ飬ʧ°Ü½«ÖÕÖ¹±¾´ÎÇëÇ󡢳ɹ¦Ôò½«request·ÅÐÐÖÁÒµÎñServerÉÏ¡£

Éè¼ÆÒ»¿î²úƷʱÎÒÃÇͨ³£»áÐèÒªÉè¼ÆÒ»Ì×»ò¶àÌ×¶µµ×·½°¸À´±£ÕÏÆä×ãÒÔÓ¦¶ÔһЩͻ·¢Çé¿ö£¬¶øÍ¨ÐŲãµÄ¼Ó¹ÌÓë´úÂë²ã¼Ó¹ÌÖ®¼äµÄ¹ØÏµÎÒ¾õµÃͬÀí£¬¼´¡°»¥Îª¶µµ×¡±¡£²»ÂÛ¶àôÓÅÐãµÄͨÐŲã¼Ó¹ÌÒ²ÎÞ·¨½â¾ö×ÔÉíºÜÈÝÒ×±»·ÖÎöhookµÄÈõµã£¬¶ø²»ÂÛ¶àôÓÅÐãµÄ´úÂë²ã¼Ó¹ÌÒ²ÎÞ·¨ÍêÈ«½â¾öÍⲿ¶ÔÆä½øÐÐЭÒé·ÖÎöµÄÒþ»¼£¬µ«Èç¹ûÄãµÄ¹«Ë¾Ç¡ºÃÓÐÁ½¸öÓÅÐãµÄ²úÆ·ÄÇôÈÃËüÃÇ»¥Îªê÷½ÇÖ®ÊÆÊÇ×îºÃµÄÑ¡Ôñ£¬Í¬Ê±Ò²½«¼«´óµÄÌáÉýÒÆ¶¯¶Ë²úÆ·µÄ°²È«ÐÔ¡£µ±È»Ò²¿ÉÒÔÔö¼ÓһЩ°²È«¶Ô¿¹¡¢»·¾³¼ì²âÒÔ¼°Ò»Ð©×ÔУÑéµÄÏà¹Ø¹¦ÄÜ£¬ÒÔ´ËÔö¼Ó¸ü¶àµÄ·ÀÓù²ßÂÔ£¬¸üºÃµÄ±£ÕÏÊý¾ÝÍêÕû¡¢»úÃܵĴ«Êä¡£

ºó¼Ç

¹¥·ÀÖ®¼äÎÞ¾ø¶Ô£¬ÔÚÒÆ¶¯²úÆ·µÄÉúÃüÖÜÆÚÄÚÄÄÅÂÎÒÃǾ­¹ýÁË»ùÓÚ¿Í»§¶Ë×öÁËÍêÉÆµÄ¹¥·À¶Ô¿¹¡¢ÉÏÏßǰµÄ°²È«¼ì²â¡¢ÒµÎñÔËÐÐÖлùÓÚÍøÂçͨÐŲãµÄÍêÕûÐÔУÑé¡¢±ê×¼»¯µÄSDL¼ì²â£¬µ«ÕâһϵÁеķÀÓù¿ÉÒÔÒ²Ö»ÄܰïÎÒÃǵ²×¡°Ë³É¡¢¾Å³ÉµÄ¹¥»÷ÐÐΪ£¬×îºóÈÔÈ»»áÓÐÒ»²¿·Ö¾­ÑéÀϵÀµÄ¹¥»÷Õß¿ÉÒÔÈ¥½øÐÐһЩ²»¿ÉÃèÊöµÄÊÂÇé¡£ÔÚ»¥ÁªÍøÆóÒµÒÆ¶¯¶ËÒµÎñ·¢Õ¹µ½Ò»¶¨¹æÄ£ºó£¬Òƶ¯°²È«·½ÏòËùÊä³öµÄ½â¾ö·½°¸Ò²ÐèÒª¸ü¼ÓÌùºÏµ½±£ÕϹ«Ë¾ÒµÎñµÄ²ãÃæÉÏ£¬¶ø·Ç½«×ÔÉí¼°ÍŶӾÖÏÞÔÚ´«Í³ÒâÒåµÄ¹¥·À¶Ô¿¹À§¾³ÖС£ËùÒÔ£¬ÔÚ½«ÉÏÎÄËùÊöµÄÒÆ¶¯°²È«»ù´¡×é¼þÉÏÏßÍê±Ïºó£¬ÎÒÃdzýÁËÔÚÒÑÓÐÁìÓòµÄÉî¸ûÖ®Í⣬»á³ÖÐø½øÐÐһЩÓëÒµÎñ°²È«½ôÃÜÌùºÏµÄ̽Ë÷¡£

   
2526 ´Îä¯ÀÀ       29
 
Ïà¹ØÎÄÕÂ

iOSÓ¦Óð²È«¿ª·¢£¬Äã²»ÖªµÀµÄÄÇЩÊÂÊõ
Web°²È«Ö®SQL×¢Èë¹¥»÷
ÒÆ¶¯APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
´ÓGoogle±¸·Ý»¥ÁªÍø¿´¡°Êý¾Ý°²È«¡±
 
Ïà¹ØÎĵµ

web°²È«Éè¼ÆÓë·À»¤
»¥ÁªÍøº£Á¿ÄÚÈݰ²È«´¦Àí¼¼Êõ
ºÚ¿Í¹¥»÷Óë·À·¶¼¼Êõ
WEBºÚºÐ°²È«¼ì²â
 
Ïà¹Ø¿Î³Ì

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶