什么是 com.walkfreestub? (导致 Android 崩溃)
What is com.walkfreestub? (causing crashes on Android)
最近,由于名为 com.walkfreestub
的包中的 NullPointerException
,我们的 Android 应用开始崩溃。目前在线上绝对 没有 引用(我们已经尝试了与崩溃相关的各种其他搜索)。关于这个包或可能的原因的任何信息都会很棒。我们最好的猜测是有人反编译了我们的 APK 并修改了原始代码,以便在非官方应用商店中重新发布它。
值得注意的是,这种情况最常发生在印度和尼日利亚,并且经常发生在 小米 2014818 设备上(但这可能只是这些国家/地区的常见设备)。版本主要是 Android 4.2 和 4.4,但在 5.1 和其他版本上也有一些崩溃。
更新:
现在有几个在线论坛,用户抱怨与 com.walkfree
和 com.walkfreestub
相关的恶意软件。请参阅链接 here, here, and here。不幸的是,这证实了我们的假设,即 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.onResponse(WalkPushRequest.java:375)
at com.walkfreestub.internal.push.WalkPushRequest.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)
对我来说,这发生在诺基亚设备上。我不使用 Volley。所有 HTTP 调用都使用 OkHttp
设备显然已 root 并且 运行 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.onResponse(WalkActionRequest.java:188)
at com.walkfreestub.internal.action.WalkActionRequest.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 的第 3 方库的崩溃。
https://github.com/Houny/Downloader
com.walkfree
和 com.walkfreestub
等软件包似乎来自注入反编译 APK 的特洛伊木马,通过非官方应用商店分发。该木马似乎会在后台下载更多不需要的应用程序,并可能执行其他可疑活动。如果您遇到这些恶意 APK 之一,请将其提交到反病毒网站,例如 Malwarebytes!
我建议使用反射检测 com.walkfreestub.* 类 并通知您的用户。这种注入很可能是通过自动脚本实现的,因此他们不会手动搜索您的检测代码。
我的意思是这里描述的内容 checking whether a package is existent or not
您检查 com.walkfreestub.* 是否存在于类路径中,并通知用户应用程序已被恶意软件破坏,用户应该意识到这一点。
或者,您可以尝试检查 APK 签名。
最近,由于名为 com.walkfreestub
的包中的 NullPointerException
,我们的 Android 应用开始崩溃。目前在线上绝对 没有 引用(我们已经尝试了与崩溃相关的各种其他搜索)。关于这个包或可能的原因的任何信息都会很棒。我们最好的猜测是有人反编译了我们的 APK 并修改了原始代码,以便在非官方应用商店中重新发布它。
值得注意的是,这种情况最常发生在印度和尼日利亚,并且经常发生在 小米 2014818 设备上(但这可能只是这些国家/地区的常见设备)。版本主要是 Android 4.2 和 4.4,但在 5.1 和其他版本上也有一些崩溃。
更新:
现在有几个在线论坛,用户抱怨与 com.walkfree
和 com.walkfreestub
相关的恶意软件。请参阅链接 here, here, and here。不幸的是,这证实了我们的假设,即 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.onResponse(WalkPushRequest.java:375)
at com.walkfreestub.internal.push.WalkPushRequest.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)
对我来说,这发生在诺基亚设备上。我不使用 Volley。所有 HTTP 调用都使用 OkHttp
设备显然已 root 并且 运行 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.onResponse(WalkActionRequest.java:188)
at com.walkfreestub.internal.action.WalkActionRequest.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 的第 3 方库的崩溃。 https://github.com/Houny/Downloader
com.walkfree
和 com.walkfreestub
等软件包似乎来自注入反编译 APK 的特洛伊木马,通过非官方应用商店分发。该木马似乎会在后台下载更多不需要的应用程序,并可能执行其他可疑活动。如果您遇到这些恶意 APK 之一,请将其提交到反病毒网站,例如 Malwarebytes!
我建议使用反射检测 com.walkfreestub.* 类 并通知您的用户。这种注入很可能是通过自动脚本实现的,因此他们不会手动搜索您的检测代码。
我的意思是这里描述的内容 checking whether a package is existent or not
您检查 com.walkfreestub.* 是否存在于类路径中,并通知用户应用程序已被恶意软件破坏,用户应该意识到这一点。
或者,您可以尝试检查 APK 签名。