Die Angreifer hinter NoVoice gingen bei der Tarnung des Schadcodes raffiniert vor. Laut McAfee versteckten sie die schädlichen Komponenten im Paket com.facebook.utils und mischten sie unter die legitimen Klassen des Facebook SDK. Eine verschlüsselte Nutzlast (enc.apk) wurde per Steganografie in einer PNG-Bilddatei verborgen, anschließend extrahiert (h.apk), in den Arbeitsspeicher geladen und alle Zwischendateien gelöscht, um Spuren zu beseitigen.

Die Malware verzichtete in bestimmten Regionen – etwa in Peking und Shenzhen in China – auf eine Infektion und führte 15 Prüfungen auf Emulatoren, Debugger und VPNs durch. Fehlten Standortberechtigungen, setzte sie die Infektionskette dennoch fort. Danach kontaktierte sie den Command-and-Control-Server (C2) und sammelte Geräteinformationen wie Hardware-Details, Kernel- und Android-Version samt Patch-Stand, installierte Apps und den Root-Status, um die passende Exploit-Strategie zu bestimmen. Im Abstand von 60 Sekunden fragte sie den C2-Server ab und lud gerätespezifische Exploit-Komponenten herunter.

McAfee beobachtete insgesamt 22 Exploits, darunter Use-after-free-Fehler im Kernel und Schwachstellen in Mali-GPU-Treibern. Diese verschafften den Betreibern eine Root-Shell und erlaubten es, die SELinux-Durchsetzung zu deaktivieren und damit grundlegende Schutzmechanismen des Geräts auszuhebeln. Nach dem Rooten wurden zentrale Systembibliotheken wie libandroid_runtime.so und libmedia_jni.so durch manipulierte Wrapper ersetzt, die Systemaufrufe abfangen und auf Angreifercode umleiten.

Das Rootkit verankerte sich mehrfach im System: Es installierte Wiederherstellungsskripte, ersetzte den Absturz-Handler des Systems durch einen Rootkit-Loader und legte Reserve-Nutzlasten auf der Systempartition ab. Da dieser Speicherbereich bei einem Zurücksetzen auf Werkseinstellungen nicht gelöscht wird, überlebt die Malware selbst eine gründliche Bereinigung. Ein Watchdog-Dienst prüft alle 60 Sekunden die Integrität des Rootkits, installiert fehlende Komponenten neu und erzwingt bei fehlgeschlagenen Prüfungen einen Neustart, der das Rootkit erneut lädt.

In der Phase nach der Ausnutzung wurde Angreifercode in jede gestartete App eingeschleust. Zwei Hauptkomponenten kamen zum Einsatz: eine für das stille Installieren oder Entfernen von Apps, die andere für den Datendiebstahl in Apps mit Internetzugang. Letztere zielte McAfee zufolge vor allem auf WhatsApp. Beim Start des Messengers extrahierte die Malware sensible Daten, um die Sitzung des Opfers zu replizieren – darunter Verschlüsselungsdatenbanken, die Schlüssel des Signal-Protokolls sowie Kontokennungen wie Telefonnummer und Google-Drive-Backup-Details. Diese Informationen wurden an den C2-Server übertragen, sodass die Angreifer die WhatsApp-Sitzung auf einem eigenen Gerät klonen konnten.

Die Forscher betonten, dass sie zwar nur eine auf WhatsApp ausgerichtete Nutzlast sicherstellen konnten, das modulare Design von NoVoice aber technisch auch andere Nutzlasten gegen beliebige Apps ermöglicht. Da NoVoice ausschließlich bis Mai 2021 behobene Lücken ausnutzt, mindert ein Gerät mit neuerem Sicherheits-Patch die Bedrohung in ihrer aktuellen Form. McAfee rät, auf aktiv unterstützte Modelle umzusteigen und Apps auch auf Google Play nur von vertrauenswürdigen, bekannten Herausgebern zu installieren.