반응형

안녕하세요. Simple& Happy Dev입니다.

새벽에 자기 전에 휴대폰 잠금 해제를 했는데, 인터넷 브라우저에 제가 띄운 적이 없는 화면(광고)이 나왔는데, 저번에도 비슷한 현상이 발생한 기억이 있어서 이번에 꼭 어떤 앱이 웹 브라우저에 광고를 띄우는지 찾아보려고 Bug report 실행해서 로그를 저장해두었습니다.

※Bug report 생성 방법
  설정(Settings)-개발자 옵션(Developer options)-버그 보고서 작성(Submit bug report)-대화형 보고서(Interactive report)누르면 알림창에 진행되고 있는걸 확인하실 수 있습니다.
  진행하는 도중에 문제를 일으킨 화면으로 가서 해당 알림창의 스크린샷(Screenshot)을 누르면 현재 화면이 저장됩니다.
  또 알림창의 세부정보(Details)를 누르면 "버그 제목", "버그 요약"을 입력하실 수 있습니다.
  알림창에서 진행이 완료되면, 알림창 화면을 누르면 공유할 수 있다는 메시지가 나옵니다.
  이메일 또는 클라우드에 저장하면 됩니다.

※개발자 옵션 활성화 방법
   설정(Settings)-휴대전화 정보(About phone)-소프트웨어정보(Software Information)-빌드번호(Build number) 항목을 7번 정도 클릭하면 활성화됩니다.

먼저 광고가 띄워진 인터넷 브라우저를 확인해 보니깐 아래처럼 "현대캐피탈 인증중고차"라는 제목의 광고가 있었습니다.

 


분석의 시작은 그 광고의 주소를 찾아서 로그에 존재하는지 여부였습니다.
로그를 확인해보니, 다행히 아래와 같이 Back stack에 해당 주소의 흔적을 확인하였습니다.

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
...
Task id #17929
* TaskRecord{e7f0c35d0 #17929 I=com.sec.android.app.sbrowser/.SBrowserLauncherActivity U=0 StackId=1 sz=1}
...
      intent={act=android.intent.action.VIEW dat=https://googleads.g.doubleclick.net/aclk?sa=l&ai=CZTB1k
...
      &client=ca-app-pub4273715512220857&nx=79
...aU0&adurl=https://mcertifiedcar.hyundaicapital.com/hcsfront/ms/carList%3Futm_source%3Dgoogle%26utm_medium%3Dda%26utm_campaign%3Dinfosearch_bizapp%26utm_content%3Ddiy_brand_03_oct%26_AT%3D023E0F3A010E025FCBE9 flg=0x10400000 cmp=com.sec.android.app.sbrowser/.SBrowserLauncherActivity}
...
    * Hist #0: ActivityRecord{b617a81 u0 com.sec.android.app.sbrowser/.SBrowserLauncherActivity t17929}
            packageName=com.sec.android.app.sbrowser processName=com.sec.android.app.sbrowser
            launchedFromUid=10220 launchedFromPackage=com.lunatouch.eyefilter.pro userId=0
            ...
            Intent { act=android.intent.action.VIEW dat=https://googleads.g.doubleclick.net/aclk?sa=l&ai=CZTB1k
            ...
            adurl=https://mcertifiedcar.hyundaicapital.com/...}

삼성 인터넷 브라우저로 구글 ads 광고가 띄워진 것을 확인할 수 있습니다. 

그리고, launchedFromUid=10220 launchedFromPackage=com.lunatouch.eyefilter.pro 라고 되어있습니다.
이는 UID가 10220인 패키지 이름이 "com.lunatouch.eyefilter.pro"인 앱으로부터 호출되었다는 것을 알 수 있습니다.

그럼, 실제 잠금해제 되면서 해당앱에서 웹 브라우저에 광고를 띄운게 맞는지 이벤트 로그를 살펴봅니다.


폰이 잠금해제가 됩니다. 음, 거의 새벽2시네요. :)

10-17 01:57:52.928 10267  4196  4196 I screen_toggled: 3

잠시 후 아래처럼 브라우저로 구글 ads 광고가 만들어지는 것을 확인할 수 있습니다.

10-17 01:57:53.817  1000  3680  4320 I am_create_activity: [0,193338709,17927,com.lunatouch.eyefilter.pro/.MB,
                                                                                    NULL,NULL,NULL,343965696,com.lunatouch.eyefilter.pro]
10-17 01:57:58.707  1000  3680  6368 I am_create_activity: [0,157296164,17927,com.lunatouch.eyefilter.pro/
                                                                                    com.google.android.gms.ads.AdActivity,NULL,NULL,NULL,
                                                                                    276824064,com.lunatouch.eyefilter.pro]
10-17 01:57:58.815  1000  3680  6368 I am_create_activity: [0,162907047,17928,com.sec.android.app.sbrowser/
                                                                                    .SBrowserLauncherActivity,android.intent.action.VIEW,NULL,
                                                                                    https://googleads.g.doubleclick.net/...,268435456,
                                                                                    com.lunatouch.eyefilter.pro]
10-17 01:57:58.981  1000  3680  5436 I am_create_activity: [0,209693346,17927,com.lunatouch.eyefilter.pro/
                                                                                    com.google.android.gms.ads.AdActivity,
                                                                                    NULL,NULL,NULL,281018368,com.lunatouch.eyefilter.pro]
10-17 01:57:59.364  1000  3680  6368 I am_create_activity: [0,221988778,17929,com.sec.android.app.sbrowser/
                                                                                    .SBrowserLauncherActivity,android.intent.action.VIEW,NULL,
                                                                                    https://googleads.g.doubleclick.net/...,268435456,
                                                                                    com.lunatouch.eyefilter.pro]
10-17 01:57:59.516  1000  3680  5486 I am_create_activity: [0,166871407,17927,com.lunatouch.eyefilter.pro/
                                                                                    com.google.android.gms.ads.AdActivity
                                                                                    ,NULL,NULL,NULL,281018368,com.lunatouch.eyefilter.pro]
10-17 01:57:59.614  1000  3680  4320 I am_create_activity: [0,190937729,17929,com.sec.android.app.sbrowser/
                                                                                    .SBrowserLauncherActivity,android.intent.action.VIEW,NULL,
                                                                                    https://googleads.g.doubleclick.net/...,272629760,
                                                                                    com.lunatouch.eyefilter.pro]

그럼, 여기서 패키지 이름이 com.lunatouch.eyefilter.pro인 앱의 정보를 확인해봅니다.
위에서 Back stack 정보 중에 UID 10220 에서 브라우저를 호출(launchedFromUid=10220)했다고 말씀드렸습니다.
아래에 userId=10220이 com.lunatouch.eyefilter.pro라는 것을 확인할 수 있습니다.
현재 설치된 버전은 2.2.1입니다. 그리고, 앱에서 인터넷 접근 권한도 가지고 있습니다.

  Package [com.lunatouch.eyefilter.pro] (2881ad0):
    userId=10220
    pkg=Package{8fefac9 com.lunatouch.eyefilter.pro}
    codePath=/data/app/com.lunatouch.eyefilter.pro-6hXKiw1cg0E0Xn1IsjvHAw==
    resourcePath=/data/app/com.lunatouch.eyefilter.pro-6hXKiw1cg0E0Xn1IsjvHAw==
    legacyNativeLibraryDir=/data/app/com.lunatouch.eyefilter.pro-6hXKiw1cg0E0Xn1IsjvHAw==/lib
    primaryCpuAbi=null
    secondaryCpuAbi=null
    dexMode=success
    dexTimeStamp=2018-08-18 03:27:07
    versionCode=20180528 minSdk=17 targetSdk=25
    versionName=2.2.1
    splits=[base]
    apkSigningVersion=2
    applicationInfo=ApplicationInfo{2e3581a com.lunatouch.eyefilter.pro}
    flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    privateFlags=[ PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION ]
    dataDir=/data/user/0/com.lunatouch.eyefilter.pro
    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
    timeStamp=2018-05-29 11:43:46
    firstInstallTime=2017-11-22 08:07:35
    lastUpdateTime=2018-05-29 11:45:43
    installerPackageName=com.android.vending
    signatures=PackageSignatures{57035ce [62abd161]}
    installPermissionsFixed=true installStatus=1
    pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    install permissions:
      android.permission.SYSTEM_ALERT_WINDOW: granted=true
      android.permission.RECEIVE_BOOT_COMPLETED: granted=true
      android.permission.EXPAND_STATUS_BAR: granted=true
      android.permission.GET_TASKS: granted=true
      android.permission.INTERNET: granted=true
      android.permission.FLASHLIGHT: granted=true
      android.permission.ACCESS_NETWORK_STATE: granted=true
      android.permission.DISABLE_KEYGUARD: granted=true
      android.permission.VIBRATE: granted=true
      com.android.launcher.permission.INSTALL_SHORTCUT: granted=true
      android.permission.WAKE_LOCK: granted=true
    User 0: ceDataInode=958824 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
      gids=[3003]
      runtime permissions:
        android.permission.CAMERA: granted=true
    User 150: ceDataInode=0 installed=false hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
      gids=[3003]


어떤 앱인지 확인할려면, 패키지 이름을 구글플레이 검색창에 입력하면 바로 나옵니다.

검색해보니 "아이필터 PRO - 블루라이트 차단"이라는 앱이었습니다.

이미 버그가 보고되었는지, 아래와 같은 공지가 올라와 있었습니다.

그런데, 구글 플레이에 올라온 최신 버전이 현재 2.2.1인데, 위의 패키지정보에서 버전(versionName=2.2.1)과 동일한 것으로 보아서 공지와 달리 최신버전에도 계속 문제가 발생하는 것으로 보입니다.

아무래도 이 앱은 재수정하거나 수정사항을 Rollback 해서 새로 apk를 등록해야 할 것 같습니다.


결론

갑자기 이상한 광고가 웹 브라우저에 나온다는 생각이 들면, 귀찮더라도 로그를 떠서 여기서 확인한 것처럼 원인이 되는 앱을 찾을 수 있으실 겁니다.

이상으로 웹 브라우저에 광고 띄우는 앱 찾는 방법에 대해서 알아보았습니다.


조금이나마 도움이 되셨으면 아래 공감 버튼을 눌러주세요.
(If this article helps you, please press the button below.)

 

 

+ Recent posts