2015-08-18 16 views
13

Di recente, la nostra app per Android ha iniziato a bloccarsi a causa di un NullPointerException in un pacchetto chiamato com.walkfreestub. Attualmente ci sono assolutamente no riferimenti a questo online (abbiamo provato tutti i tipi di altre ricerche relative al crash). Qualsiasi informazione su questo pacchetto o sulle possibili cause sarebbe meravigliosa. La nostra ipotesi migliore è che qualcuno abbia decompilato il nostro APK e modificato il codice originale, per poterlo ri-rilasciare in un app store non ufficiale.Che cos'è com.walkfreestub? (causando arresti anomali su Android)

In particolare, questo accade più spesso in India e in Nigeria, e spesso sul dispositivo Xiaomi 2014818 (ma potrebbe essere solo un dispositivo comune in quei paesi). Le versioni sono per lo più Android 4.2 e 4.4, ma anche alcuni arresti anomali su 5.1 e altri.

Aggiornamento:

Ora ci sono diversi forum online dove gli utenti si lamentano di minacce relative al com.walkfree e com.walkfreestub. Vedere i collegamenti here, here e here. Questo purtroppo conferma la nostra ipotesi che l'APK è stato effettivamente modificato con malware in un app store non ufficiale.

completa dello stack trace:

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

Sembra che alcune delle classi qui https: //android.googlesource.com/platform/framework/volley/+/master/src/main/java/com/android/volley appena clonato e spostato namespace – weston

+0

Le classi '.internal' vengono chiamate perché sono registrate' ... volley.Response. Ascoltatore è così sono assenti da quel repo. – weston

+0

Grazie a @weston. Usiamo Volley nella nostra app, che è probabilmente il motivo per cui questo incidente si sta verificando. Vorremmo capire da dove viene questo pacchetto clonato, in modo che possiamo determinare cosa fare al riguardo. –

risposta

4

pacchetti come com.walkfree e com.walkfreestub sembrano provenire da un trojan iniettato in APKs decompilato, distribuite attraverso app store non ufficiali. Il trojan sembra scaricare più app indesiderate in background e probabilmente svolge altre attività discutibili. Se vi imbattete in uno di questi APK dannosi, inviatelo ai siti anti-virus come Malwarebytes!

Vedere post simili here, here e here per ulteriori informazioni.

0

Per me questo è accaduto su un dispositivo Nokia. Non uso Volley. Tutte le chiamate HTTP vengono effettuate utilizzando OkHttp

Il dispositivo è apparentemente rootato e con Android 4.1.2. Ecco lo 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) 

Sembra un incidente da una libreria 3rd party che si estende Volley. https://github.com/Houny/Downloader

+0

Ciao @esoxjem, puoi pubblicare un registro di crash o qualsiasi altra informazione hai? Qualcosa di altro si blocca se non usi Volley? –

+0

@Kevin Risposta aggiornata. Spero che sia d'aiuto. – esoxjem

+0

Era di qualche aiuto? – esoxjem

2

Vorrei suggerire di rilevare le classi com.walkfreestub. * utilizzando la riflessione e informare l'utente. Molto probabilmente, queste iniezioni sono implementate con script automatici, in modo che non possano cercare manualmente il codice di rilevamento.

voglio dire qualcosa come descritto qui checking whether a package is existent or not

controllare che com.walkfreestub. * è presente nel classpath e notificare all'utente che l'applicazione è stata compromessa da malware e gli utenti devono essere a conoscenza di esso.

In alternativa, è possibile provare a verificare la firma APK.

+0

È spiacevole che l'app sia stata compromessa, ma ora la responsabilità ricade su di noi per garantire che i nostri utenti rimangano al sicuro. Ottimo consiglio @Olexandr. –

Problemi correlati