最近,我们的Android应用程序因名为NullPointerException
的程序包中的com.walkfreestub
而开始崩溃。目前绝对有没有引用此在线(我们已经尝试了与崩溃相关的各种其他搜索)。有关此包装或可能原因的任何信息都很棒。我们最好的猜测是有人反编译了我们的APK并修改了原始代码,以便在非官方的应用商店中重新发布。
值得注意的是,这种情况最常发生在印度和尼日利亚,而且经常出现在 Xiaomi 2014818 设备上(但这可能只是这些国家的常见设备)。版本主要是Android 4.2和4.4,但也有5.1和其他版本的一些崩溃。
更新
现在有几个在线论坛,用户抱怨与com.walkfree
和com.walkfreestub
相关的恶意软件。请参阅链接here,here和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$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)
答案 0 :(得分:4)
com.walkfree
和com.walkfreestub
等软件包似乎来自注入反编译APK的木马,通过非官方应用商店分发。该木马似乎在后台下载了更多不需要的应用程序,并可能执行其他可疑活动。如果您遇到其中一个恶意APK,请将其提交给Malwarebytes等反病毒网站!
答案 1 :(得分:2)
我建议使用反射检测 com.walkfreestub。* 类并通知您的用户。最有可能的是,这种注射是使用自动脚本实现的,因此他们不会手动搜索您的检测代码。
我的意思是这里所描述的checking whether a package is existent or not
您检查类路径中是否存在 com.walkfreestub。* ,并通知用户应用程序已被恶意软件攻陷,用户应该了解它。
或者,您可以尝试检查APK签名。
答案 2 :(得分:0)
对我而言,这发生在诺基亚设备上。我不使用Volley。所有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。 https://github.com/Houny/Downloader