如何找出哪个应用程序试图打开垃圾邮件网站?


11

我最近购买了一部新的Android智能手机。设置好并在其中加载我的联系人后,我认为就是那样。

现在过了几天,每次我解锁手机时,打开默认浏览器并打开一些垃圾邮件网站都需要几秒钟。我试图看看是什么原因造成的。我删除了所有我不信任的应用程序,但问题仍然存在。尝试解决了一段时间后,我放弃了并将手机重置为出厂默认设置。现在,将其重置为默认值后,它运行了大约一个星期都没有问题,然后问题再次出现。

我尝试卸载某些应用程序以查看是否是由它们引起的,但这样做后没有任何变化。但是我确实注意到,如果我关闭wifi,它甚至都不会尝试打开浏览器(因为没有捆绑,所以我没有尝试过移动数据)。这让我觉得它可能与网络上的某些内容有关,但这并不能解释为什么当在同一网络上至少有6部android手机时,只有该手机会出现问题。

我希望有人可以帮助我找到此问题的原因并帮助我解决。

TL; DR解锁手机时,它将打开浏览器并尝试打开垃圾邮件网站。但是只有在连接到wifi时才这样做。

到目前为止我尝试过的事情:

  • 恢复出厂设置(仅在有限的时间内提供了帮助)
  • 清除浏览器缓存和所有相关数据
  • 删除任何我不知道可靠的应用
  • 试图找到触发它的原因(似乎需要某种类型的互联网连接?)

设备是Doogee Shoot1。至于浏览器,默认设置为Android浏览器,但是如果更改默认设置,它也将使用Chrome。似乎真的只是使用设置为默认的浏览器。


@beeshyams我曾尝试清除浏览器数据几次,如果清除未完成,则恢复出厂设置应该已经解决了cookie,但之后不久它又回来了。
maam27年

3
@beeshyams不一定会将恶意软件植入系统应用程序(例如,这不能解释为什么工厂重置后花了一周的时间才再次出现问题)。我会检查带有屏幕解锁广播收听者的应用程序,以缩小候选者的范围(请参阅:检测电话解锁事件,最好的候选者似乎是Intent.ACTION_USER_PRESENT)。
伊兹(Ezzy)

@izzy:有效点。谢谢。难道不是意味着他将必须卸载所有用户应用程序,以作为备份数据后隔离的一种简便方法?
beeshyams

1
@beeshyams我没有说“卸载” –我为建立了这样的侦听器的应用程序编写了check,然后首先明确地处理了这些应用程序。查看“ 应用程序信息”Playstore / FDroid / 屏幕截图,在此处选中“接收器”)。
伊齐

1
@Izzy是否可以去聊天,看看我们是否可以通过这样做找到问题?因为它还会使评论更短
maam27'7

Answers:


19

根据OP按照我的建议进行的故障排除,罪魁祸首似乎是一个名为System Locker 的恶意软件 ,程序包名为com.tihomobi.lockframe.syslocker。对于设备的某些用户,此问题似乎是系统更新的结果。

与系统应用程序一样,如果要使用“ 设置”→“应用程序”→“系统应用程序/所有应用程序” →“元凶” 下的禁用”选项,则一定要禁用该应用程序,强制停止该应用程序或重新启动Android。在恢复出厂设置之前,该问题应已解决。


故障排除#1

这是我找出罪魁祸首的方法。内置的Android工具dumpsys尤其显示哪个应用程序被哪个其他应用程序调用。呼叫者称为呼叫包。

前提是您已在PC和Android设备上成功设置了功能,请执行以下操作:

  1. 保持设备连接到PC
  2. 重新启动设备或强制停止该默认浏览器应用
  3. 让恶意软件发挥作用,即让浏览器自动启动
  4. 浏览器启动后,实际上不对设备执行任何操作,但在PC上运行以下adb命令:

    adb shell dumpsys activity activities
    

这是OP设备输出

活动管理器活动(dumpsys活动活动)
显示#0(活动从上到下):
  堆栈1:
    任务ID#2
    * TaskRecord {8190ba1#2 A = android.task.browser U = 0 sz = 1}
      userId = 0 validUid = u0a64 mCallingUid = u0a26 mCallingPackage = com.tihomobi.lockframe.syslocker
      finity = android.task.browser
      intent = {act = android.intent.action.VIEW dat = http://im.apostback.com/click.php?c = 362&key = 9wl83884sg67y1acw3z56z90&s4 = 8%2FdNwcNuQFEjjaucho5IqA%3D%3D flg = 0x10000000 pkg = com.android。浏览器cmp = com.android.browser / .BrowserActivity}
      realActivity = com.android.browser / .BrowserActivity
...
...
历史记录0:ActivityRecord {66cd59b u0 com.android.browser / .BrowserActivity t2}
          packageName = com.android.browser processName = com.android.browser
          launchedFromUid = 10026 launchedFromPackage = com.tihomobi.lockframe.syslocker用户id = 0
          app = ProcessRecord {5ad1810 4337:com.android.browser / u0a64}
          意图{act = android.intent.action.VIEW dat = http://im.apostback.com/click.php?c=362&key=9wl83884sg67y1acw3z56z90&s4=8%2FdNwcNuQFEjjaucho5IqA%3D%3D flg = 0x10000000 pkg = com.android.browser cmp = com.android.browser / .BrowserActivity}

在输出中:

  • com.android.browser是设备中现有Android浏览器的软件包名称
  • com.tihomobi.lockframe.syslocker是恶意软件应用程序的软件包名称,称为调用软件包。

如果找到了该恶意软件,请避免进行后续故障排除,并跳至标题Nuke the恶意软件


故障排除#2

(作为对此处发布的副本的回应-罪魁祸首应用程序是Farming Simulator 18

在某些情况下,上述故障排除可能无法解决问题,例如,调用程序包名称是dumpsys输出中显示的浏览器本身的程序包名称时。在这种情况下,最好使用。像这样设置logcat:

亚行logcat -v long,描述性| grep“ dat = http”#您也可以grep URL中的任何内容。这完全取决于您。
adb logcat -v long,描述性> logcat.txt#替代; 如果您的操作系统中未安装grep。您需要立即搜索该文件。

现在解锁设备,并使用该URL自动启动浏览器。另外,如果要将输出保存到文件中,请按CtrlC

我们正在寻找的输出将类似于:

[11-27 16:03:22.592 3499:6536 I / ActivityManager]
开始u0 {act = android.intent.action.VIEW dat = https://livemobilesearch.com / ... flg = 0x10000000 pkg = org.mozilla.firefox cmp = org.mozilla.firefox / .App} 

来自uid 10021
...

[11-27 16:03:22.647 3499:15238 I / ActivityManager]
开始u0 {act = android.intent.action.VIEW dat = https://livemobilesearch.com / ... pkg = org.mozilla.firefox cmp = org.mozilla.firefox / org.mozilla.gecko.BrowserApp} 

来自uid 10331

请参见突出显示的两个UID 10021和10331。其中之一(您的情况可能会有所不同)是针对启动的浏览器应用程序,其中之一是请求该URL的恶意软件应用程序。那么,如何找到什么呢?

如果您具有root用户访问权限,只需执行以下操作:

adb shell su -c'ls -l / data / data / | grep u0_a 21 '
adb shell su -c'ls -l / data / data / | grep u0_a 331 '

输出如下:

drwx ------ 5 u0_a21 u0_a21 4096 2018-01-01 10:31 com.android.chrome 
drwx ------ 5 u0_a331 u0_a331 4096 2018-01-01 10:31 com.tihomobi.lockframe.syslocker

如果您没有root用户访问权限,请执行以下操作:

adb shell dumpsys package > packages_dump.txt

现在搜索带有您的UID的行,例如“ userId = 10021”和“ userId = 10331”。搜索到的行上方的行将为您提供软件包名称,并且可能看起来像这样:

包[ com.android.chrome ](172ca1a):
    userId = 10021
...
软件包[ com.tihomobi.lockframe.syslocker ](172ca1a):
    userId = 10331

这两个软件包的名称分别是com.android.chrome(对于Chrome浏览器-肯定不是恶意软件)和com.tihomobi.lockframe.syslocker。要从程序包名称中了解应用程序的名称,请在此处使用我的答案。


破坏恶意软件

现在您知道了罪魁祸首,您可以如上所述通过GUI禁用它。如果不可能,请执行以下操作:

adb shell pm disable-user PKG_NAME#禁用应用程序
adb shell pm uninstall --user 0 PKG_NAME#删除主要用户的应用程序
adb shell am force-stop PKG_NAME#仅强制停止应用程序

PKG_NAME替换为您在上述疑难解答中记录的恶意软件的程序包名称。

这应该够了吧。此外,您还可以考虑永久删除所有用户的恶意软件应用程序,但这需要root用户访问权限。


1
感谢您接管我必须离开的聊天室-很棒的分析,+ 1!通过dumpsys这种方式学到了新的东西:)
Izzy

@Izzy我很高兴您喜欢它。:)
Firelord

+1尼斯深挖👍
伊尔凡·拉蒂夫

@IrfanLatif谢谢。
Firelord

0

尽管我将尝试查找可能的问题,但需要更多的信息来解决该问题。哪个浏览器?什么手机型号?它是从官方渠道购买的吗?

理论上,恢复出厂设置应该可以帮助您解决问题。既然没有,您可以在更多的地方获得某种形式的广告软件。首先,您说要卸载一些应用程序吗?特别是哪个应用程序?安装特定软件后出现了吗?

是您的wifi上网,还是您使用的是公共上网?如果是公开的,通常公司会相对频繁地通过wifi发送应用安装和广告请求。如果您住在繁忙的地区/附近,如果只是有人在宣传他们的产品,就不会感到惊讶。尝试使用其他wifi或其他人的wifi,看看问题是否仍然存在。如果不是这样。这是您所使用的网络的问题,这意味着您很可能需要进行更改。您可以尝试与您的提供商联系以帮助您解决此问题(以前有这样的问题,我的ISP提供商在与支持人员联系后为我提供了帮助)。另外,请查看移动网络是否显示相同的问题。如果没有,那么您的选择是更改当前使用的网络。


我所说的应用程序都是从appstore安装的,但我确实意识到并非所有的应用程序都可以始终保持安全,有时情况会超出其安全性。所以我尝试删除一些我不知道它们是否完全安全的东西。至于互联网,这是一个私人网络,我不住在拥挤的地方。但由于即时通讯使用预付费卡,意味着尝试移动数据变得昂贵。我可能会尝试使用PC作为热点,看看是否直接与wifi有任何区别。
maam27年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.