2015-08-18 4 views
13

Совсем недавно наше Android-приложение начало сбой из-за NullPointerException в пакете под названием com.walkfreestub. В настоящее время есть абсолютно нет ссылок на это онлайн (мы пробовали всевозможные другие поиски, связанные с сбоем). Любая информация об этом пакете или возможных причинах была бы замечательной. Наше лучшее предположение состоит в том, что кто-то декомпилировал наш APK и изменил исходный код, чтобы переиздать его в неофициальном магазине приложений.Что такое com.walkfreestub? (вызывает сбои на Android)

Примечательно, что это происходит чаще всего в Индии и Нигерии, и часто на устройстве Xiaomi 2014818 (но это может быть просто обычным устройством в этих странах). Версии - это в основном Android 4.2 и 4.4, но также несколько сбоев на 5.1 и другие.

Update:

Есть теперь несколько форумов в Интернете, где пользователи жалуются вредоносных программ, связанных с 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

Похоже, что некоторые из классов здесь https: //android.googlesource.com/platform/frameworks/volley/+/master/src/main/java/com/android/volley просто клонировано и перемещено пространство имен – weston

+0

Классы '.internal.' вызывают, потому что они зарегистрированы' ... volley.Response. Слушатели, поэтому они отсутствуют в этом репо. – weston

+0

Спасибо @weston. Мы используем Volley в нашем приложении, и, вероятно, это происходит из-за этого сбоя. Мы хотели бы выяснить, откуда этот клонированный пакет, и мы можем определить, что с ним делать. –

ответ

4

пакеты, такие как com.walkfree и com.walkfreestub по-видимому, происходят из трояна, введенного в декомпилированные APK, распределенный по неофициальным магазинам приложений. Троян, похоже, загружает больше нежелательных приложений в фоновом режиме и, вероятно, выполняет другие сомнительные действия. Если вы столкнулись с одним из этих вредоносных APK, отправьте его на антивирусные сайты, такие как Malwarebytes!

Просмотреть похожие должности here, here и here для получения дополнительной информации.

0

Для меня это произошло на устройстве Nokia. Я не пользуюсь Volley. Все HTTP-вызовы производятся с использованием OkHttp

Устройство, очевидно, внедрено и работает под управлением Android 4.1.2. Вот StackTrace:

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) 

Похоже, грохот от 3-сторонней библиотеки, которая проходит Volley. https://github.com/Houny/Downloader

+0

Привет @esoxjem, можете ли вы разместить журнал сбоев или любую другую информацию у тебя есть? Что-то еще сбой, если вы не используете Volley? –

+0

@Kevin Обновленный ответ. Надеюсь, поможет. – esoxjem

+0

Помог ли это? – esoxjem

2

Я бы предложил обнаружить com.walkfreestub. * классы с использованием отражения и уведомить пользователя. Скорее всего, эти инъекции реализованы с помощью автоматизированного сценария, поэтому они не будут искать вручную для вашего кода обнаружения.

Я имею в виду что-то подобное, описанные здесь checking whether a package is existent or not

Вы убедитесь, что com.walkfreestub. * присутствует в пути к классам и уведомляет пользователя, что приложение было скомпрометировано вредоносным и пользователи должны знать об этом.

В качестве альтернативы вы можете попробовать проверить подпись APK.

+0

Прискорбно, что приложение было скомпрометировано, но теперь ответственность за нас лежит на том, чтобы наши пользователи оставались в безопасности. Отличный совет @ Олександр. –

Смежные вопросы