【问题标题】:What is com.walkfreestub? (causing crashes on Android)什么是 com.walkfreestub? (导致 Android 崩溃)
【发布时间】:2015-11-11 20:41:59
【问题描述】:

最近,由于 NullPointerException 位于名为 com.walkfreestub 的包中,我们的 Android 应用开始崩溃。目前在网上绝对没有引用此内容(我们已经尝试了与崩溃相关的各种其他搜索)。有关此软件包或可能原因的任何信息都会很棒。我们最好的猜测是有人反编译了我们的 APK 并修改了原始代码,以便在非官方应用商店中重新发布。

值得注意的是,这种情况最常发生在印度和尼日利亚,并且经常发生在 Xiaomi 2014818 设备上(但这可能只是这些国家/地区的常见设备)。版本主要是 Android 4.2 和 4.4,但也有一些在 5.1 和其他版本上崩溃。

更新:

现在有几个在线论坛,用户抱怨与com.walkfreecom.walkfreestub 相关的恶意软件。请参阅链接 hereherehere。不幸的是,这证实了我们的假设,即 APK 确实在非官方应用商店中被恶意软件修改。

完整的堆栈跟踪:

java.lang.NullPointerException: replacement == null
    at java.lang.String.replace(String.java:1348)
    at com.walkfreestub.trace.ReferrerTrack.checkTrackUrl(ReferrerTrack.java:158)
    at com.walkfreestub.internal.PushServiceProxy.startDownloadApp(PushServiceProxy.java:454)
    at com.walkfreestub.internal.PushServiceProxy.notifyToDownload(PushServiceProxy.java:239)
    at com.walkfreestub.internal.PushServiceProxy.notifyMessage(PushServiceProxy.java:274)
    at com.walkfreestub.internal.PushServiceProxy.onMessageLoaded(PushServiceProxy.java:342)
    at com.walkfreestub.internal.push.WalkPushRequest$6.onResponse(WalkPushRequest.java:375)
    at com.walkfreestub.internal.push.WalkPushRequest$6.onResponse(WalkPushRequest.java:1)
    at com.walkfreestub.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
    at com.walkfreestub.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:1)
    at com.walkfreestub.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
    at android.os.Handler.handleCallback(Handler.java:730)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5136)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:740)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
    at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 看起来这里的一些类 android.googlesource.com/platform/frameworks/volley/+/master/… 只是克隆并移动了命名空间
  • 调用 .internal. 类是因为它们已注册 ...volley.Response.Listeners,因此它们不在该存储库中。
  • 谢谢@weston。我们确实在我们的应用程序中使用了 Volley,这可能就是发生这种崩溃的原因。我们想弄清楚这个克隆包的来源,以便我们确定如何处理它。
  • 我们在我们的一个应用程序中也看到了这个异常。产生此异常的应用程序版本使用不同的证书进行签名。我怀疑有人反汇编了应用程序,添加了这个 walkfreestub 代码并再次构建它,然后将其分发到 Google Play 之外。
  • 感谢@SnildDolkow 的链接!我搜索了自己,发现了更多。添加了描述链接。

标签: android crash malware


【解决方案1】:

com.walkfreecom.walkfreestub 等软件包似乎来自注入反编译 APK 的木马,通过非官方应用商店分发。该木马似乎会在后台下载更多不需要的应用程序,并可能执行其他可疑活动。如果您遇到这些恶意 APK 之一,请将其提交到 Malwarebytes 等防病毒网站!

查看类似帖子hereherehere 了解更多信息。

【讨论】:

    【解决方案2】:

    我建议使用反射检测 com.walkfreestub.* 类并通知您的用户。很可能,这种注入是使用自动化脚本实现的,因此它们不会手动搜索您的检测代码。

    我的意思是这里描述的checking whether a package is existent or not

    您检查 com.walkfreestub.* 是否存在于类路径中,并通知用户应用程序已被恶意软件入侵,用户应该意识到这一点。

    或者,您可以尝试检查 APK 签名。

    【讨论】:

    • 很遗憾,该应用程序遭到入侵,但现在我们有责任确保用户的安全。很好的建议@Olexandr。
    【解决方案3】:

    对我来说,这发生在诺基亚设备上。我不使用排球。所有 HTTP 调用都是使用 OkHttp 进行的

    该设备显然已植根并运行 Android 4.1.2。 这是堆栈跟踪:

    java.lang.NullPointerException
       at com.xckevin.download.DownloadManager.addDownloadTask(DownloadManager.java:111)
       at com.walkfreestub.internal.download.DownloadControllerForService.download(DownloadControllerForService.java:230)
       at com.walkfreestub.internal.download.DownloadControllerForService.download(DownloadControllerForService.java:201)
       at com.walkfreestub.internal.PushServiceProxy.startDownloadApp(PushServiceProxy.java:435)
       at com.walkfreestub.internal.PushServiceProxy.onActionLoaded(PushServiceProxy.java:525)
       at com.walkfreestub.internal.action.WalkActionRequest$2.onResponse(WalkActionRequest.java:188)
       at com.walkfreestub.internal.action.WalkActionRequest$2.onResponse(WalkActionRequest.java:1)
       at com.walkfreestub.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
       at com.walkfreestub.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:1)
       at com.walkfreestub.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
       at android.os.Handler.handleCallback(Handler.java:615)
       at android.os.Handler.dispatchMessage(Handler.java:92)
       at android.os.Looper.loop(Looper.java:137)
       at android.app.ActivityThread.main(ActivityThread.java:4807)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:511)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559)
       at dalvik.system.NativeStart.main(NativeStart.java)
    

    它看起来像是来自扩展 Volley 的 3rd 方库的崩溃。 https://github.com/Houny/Downloader

    【讨论】:

    • 嗨@esoxjem,您能发布崩溃日志或您拥有的任何其他信息吗?如果你不使用 Volley,还有什么东西会崩溃吗?
    • @Kevin 更新了答案。希望对您有所帮助。
    • 这有帮助吗?
    • 因此我仍然遇到很多崩溃。
    • 看起来像钓鱼软件。堆栈跟踪中也有与 dex spy 相关的内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 2023-03-05
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    相关资源
    最近更新 更多