Open
Conversation
Collaborator
Author
🔗 Additional ContextOriginal Blog Post: https://www.mcafee.com/blogs/other-blogs/mcafee-labs/new-research-operation-novoice-rootkit-malware-android/ Content Categories: Based on the analysis, this content was categorized under "📱 Mobile Pentesting -> Android Applications Pentesting (new pages/sections): 'Polyglot payloads in assets (PNG IEND append)'; 'Android persistence & system-wide injection (zygote/libandroid_runtime.so replacement, framework bytecode patching, watchdog self-heal)'. Optionally cross-link from: Basic Forensic Methodology -> Malware Analysis (anti-analysis/geofence and staged loaders).". Repository Maintenance:
Review Notes:
Bot Version: HackTricks News Bot v1.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
Title/Context
McAfee Mobile Research analyzed an Android rootkit campaign named Operation NoVoice (McAfee Labs blog dated Mar 31, 2026). The malware is delivered via carrier apps that were distributed on Google Play (no sideloading), appear benign (cleaners/games/gallery utilities), and request no unusual permissions. The chain is multi-stage and plugin-based: each stage decrypts/loads the next; most payloads are delivered at runtime from C2. ...
🔧 Technical Details
Polyglot image payload smuggling (PNG IEND append): Store encrypted executable content inside an innocuous image by appending the blob after the PNG
IENDmarker. At runtime, the loader reads the asset, extracts bytes afterIEND(often identifiable by a magic likeCAFEBABE), decrypts them into an APK/JAR, loads it in memory, and deletes staging artifacts—evading casual inspection and some static scanners that treat it as “just an image.”Auto-execution by hijacking a common SDK init path: Execute malicious bootstrap code without additional permissions by patching/hooking an initialization path of a widely used library (e.g., Facebook SDK). This runs on first app open and can log benign-looking SDK errors on failure to blend into normal telemetry.
Native gatekeeper + anti-analysis gating with geofencing: Use a native library to enforce package/signature pinning and to decrypt/run an anti-analysis module that check...
🤖 Agent Actions
I’m mapping the repo first and then reading the Android and malware-adjacent docs to find one precise place for the content. After that I’ll verify the McAfee post details and only add techniques that are not already documented.
I found a promising existing Android page about
zygoteandlibandroid_runtime.so, plus forensic pages for PNG tricks and malware analysis. I’m reading those now to decide which single file can absorb the most value without duplicating content.The current best fit is the existing
libandroid_runtime/zygotepage, because it already covers firmware-level Android backdoors and system-wide app injection. I’m verifying the McAfee article itself now and then I’ll grep the repo for overlap on PNG tail payloads, watchdog persistence, and framework bytecode patching before editing.The repo already mentions
IENDtrailing bytes generically and foreground-service audio loops generically, but it does not have the combination of PNG tail polyglots,libandroid_runtime.soreplacement, framework bytecode patching, and watchdog self-heal in one Android rootkit context. I’m checking a couple more adjacent pages to avoid duplicating a better existing location before I patch the firmware-level Android page.I’ve confirmed the repo does not already cover the specific Android rootkit chain details I want to add. I’m updating the existing
firmware-level-zygote-backdoor-libandroid_runtime.mdpage with two focused additions: Android PNG tail polyglot staging as a precursor, and post-root persistence via library replacement, framework patching, and watchdog self-heal.The patch is in. I’m re-reading the updated page now to confirm the additions stay concise, preserve the existing structure, and keep references at the end.
Updated firmware-level-zygote-backdoor-libandroid_runtime.md.
I kept the change in a single existing file because it was already the best fit for Android system-wide injection via
zygoteandlibandroid_runtime.so. The update adds the NoVoice-specific techniques that were missing: PNGIENDtail polyglot staging from app assets, SDK-init auto-exec, post-root wrapper replacement oflibandroid_runtime.so/libmedia_jni.so, framework bytecode patch persistence, watchdog self-heal, and concise forensic checks. I also added the McAfee article to the references section.Verified by re-reading the full page and checking
git diff; no new file was needed and the existing content was preserved.This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.