Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
Malware

SparkCat

SparkCat is a cross-platform mobile stealer/spyware campaign targeting Android and iOS, distributed via trojanized applications in both official and unofficial app stores, including Google Play and Apple’s App Store. Researchers reported activity beginning at least as early as March 2024, with later variants still appearing in official stores in early 2026. The malware is commonly described as a crypto stealer focused on harvesting cryptocurrency wallet recovery or mnemonic phrases from victims’ photo galleries.

SparkCat embeds a malicious SDK in Android apps and a malicious framework or library in iOS apps. It requests or abuses gallery/photo access, uses OCR to scan stored images for wallet seed phrases or attacker-supplied keywords, and selectively exfiltrates matching images to attacker-controlled infrastructure. Multiple reports state it used Google ML Kit OCR in earlier Android and iOS variants; a newer iOS variant used Apple’s Vision framework. On Android, SparkCat also used obfuscation, code virtualization, and a concealed Rust-based malicious library in newer samples.

Reported C2 behavior includes retrieval of encrypted configuration data, keyword lists, and OCR filtering parameters from attacker infrastructure, including endpoints such as /api/e/config/rekognition, /api/e/config/keyword, /api/e/img/uploadedCheck, /api/e/img/rekognition, and domain api.aliyung.org, which was linked to Trojan.AndroidOS.SparkCat and categorized as Botnet C&C. One recovered configuration also referenced api.aliyung.com:18883 for Rust-based C2. Researchers reported HTTP encryption using AES-256-CBC for outbound data and AES-128-CBC for decrypted responses in some Android samples, while the Rust component compressed data with ZSTD and encrypted it with AES-GCM-SIV.

SparkCat was found in apps posing as food delivery, messaging, exchange, banking, chat, and other legitimate mobile applications. ESET reported infected Android apps on Google Play with more than 242,000 downloads. Kaspersky and ESET both reported that SparkCat-infected apps reached Apple’s App Store, with ESET describing it as the first known case of a stealer found there. Apple removed identified malicious iOS apps in February 2025, Google removed identified Android apps in February 2025, and later reports state additional SparkCat-infected apps were again found and removed from both stores in 2026.

Targeting appears centered on cryptocurrency users. Reports state the campaign primarily targeted users in Asia, including the UAE, Southeast Asia, China, Japan, and Korea, while multilingual keyword lists indicate broader targeting across Europe and Asia. The Android variant searched for Japanese, Korean, and Chinese keywords in some newer reporting, while the iOS variant searched for English mnemonic phrases, suggesting broader reach. Researchers noted Chinese-language comments and error messages and assessed the operator was likely Chinese-speaking, but available reporting did not attribute SparkCat to a known threat group.

Associated detections mentioned in the content include HEUR:Trojan.AndroidOS.SparkCat.* and HEUR:Trojan.IphoneOS.SparkCat.*. Related reporting also links a separate image-stealing campaign named SparkKitty to SparkCat based on shared frameworks, overlapping infected apps, and matching iOS debug paths.

Share:
For your environment

Hunt this family in your stack

Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.

MITRE ATT&CK

Techniques & procedures

26 distinct techniques documented for this family, organized by ATT&CK tactic.

Initial Access

3 techniques
T1195Supply Chain CompromiseEvidence1

We cannot confirm with certainty whether the infection was a result of a supply chain attack or deliberate action by the developers.

T1195.001Compromise Software Dependencies and Development ToolsEvidence1

The malware was distributed through unofficial sources as well as Google Play and App Store... In both the Android and iOS versions, the malicious payload was part of the app itself, not of a third-party SDK or framework. | The threat actor distributed apps containing a malicious SDK/framework... On iOS, the malicious payload is delivered as frameworks (primarily mimicking AFNetworking.framework or Alamofire.framework) or obfuscated libraries disguised as libswiftDarwin.dylib, or it can be embedded directly into the app itself.

T1566.002Spearphishing LinkEvidence1

Selon les données de télémétrie de Kaspersky, les applications infectées circulent également via des canaux de distribution tiers. Certaines pages web vont jusqu’à imiter l’interface de l’App Store lorsqu’on y accède depuis un iPhone.

Execution

2 techniques
T1106Native APIEvidence2

Once a configuration has been downloaded, Spark decrypts a payload from assets and executes it in a separate thread.

T1204.002Malicious FileEvidence1

In early 2026, we discovered several apps on Google Play and the App Store that contained a new version of the SparkCat crypto stealer.

Stealth

6 techniques
T1027Obfuscated Files or InformationEvidence5

It was originally obfuscated, so we statically deobfuscated it before analyzing.

T1027.013Encrypted/Encoded FileEvidence1

It retrieves the Base64-encoded value of the ccc key... decoded and then decrypted using AES-256 in ECB mode... The decrypted value is a list of URLs...

T1036MasqueradingEvidence1

Le cheval de Troie se déguise en application légitime pour scanner discrètement la galerie photos de l’utilisateur... Il se propage via des applications infectées en apparence anodines : messageries d’entreprise et applications de livraison de repas figurent parmi les vecteurs identifiés.

T1140Deobfuscate/Decode Files or InformationEvidence1

Once a configuration has been downloaded, Spark decrypts a payload from assets and executes it in a separate thread. It uses XOR with a 16-byte key for a cipher.

T1497Virtualization/Sandbox EvasionEvidence1

Обфусцированная вредоносная библиотека на Rust расшифровывалась с помощью виртуальной машины, созданной атакующими, по устройству похожей на Dalvik.

T1497.001System ChecksEvidence1

It loads different OCR models depending on the system language to recognize Latin, Korean, Chinese or Japanese characters in images.

Credential Access

2 techniques
T1056Input CaptureEvidence1

The reasoning behind the SDK’s request seems sound at first: users may attach images when contacting support.

T1649Steal or Forge Authentication CertificatesEvidence3

The terms all indicated that the attackers were financially motivated, specifically targeting recovery phrases also known as “mnemonics” that can be used to regain access to cryptocurrency wallets.

Discovery

5 techniques
T1069Permission Groups DiscoveryEvidence2

the handler requests access to the device’s image gallery. If the pw flag in the aforementioned object is equal to 1, the module will keep requesting access if denied.

T1082System Information DiscoveryEvidence2

The SDK then uploads device information to /api/e/d/u on the C2 server.

T1497Virtualization/Sandbox EvasionEvidence1

Обфусцированная вредоносная библиотека на Rust расшифровывалась с помощью виртуальной машины, созданной атакующими, по устройству похожей на Dalvik.

T1497.001System ChecksEvidence1

It loads different OCR models depending on the system language to recognize Latin, Korean, Chinese or Japanese characters in images.

T1614System Location DiscoveryEvidence2

MMLocationMgr : collects the current location of the device. It sent no data during our testing, so the exact purpose of this class remained unclear.

Collection

5 techniques
T1005Data from Local SystemEvidence4

Some of these scanned users’ image galleries in search of crypto wallet access recovery phrases.

T1056Input CaptureEvidence1

The reasoning behind the SDK’s request seems sound at first: users may attach images when contacting support.

T1113Screen CaptureEvidence1

the malware is flexible enough to steal not just these phrases but also other sensitive data from the gallery, such as messages or passwords that might have been captured in screenshots.

T1119Automated CollectionEvidence2

These parameters are used by processor classes that filter images by OCR-recognized words.

T1213Data from Information RepositoriesEvidence3

It would then use an OCR model to select and exfiltrate images of interest... ML Kit searched for text blocks and then broke them down into lines. If at least three lines containing a word with a minimum of three letters were found, the Trojan would send the image to the attackers’ server.

Command and Control

4 techniques
T1071Application Layer ProtocolEvidence3

Spark uses POST requests to communicate with the “http” server.

T1095Non-Application Layer ProtocolEvidence2

The JSON is sent to the server with the help of the native libmodsvmp.so library via the unidentified protocol over TCP sockets.

T1105Ingress Tool TransferEvidence2

When initialized, it downloads a JSON configuration file from a GitLab URL embedded in the malware body.

T1573Encrypted ChannelEvidence1

It encrypts data with AES-256 in CBC mode before sending... Before sending data to the server, the library generates a 32-byte key for the AES-GCM-SIV cipher.

Exfiltration

2 techniques
T1041Exfiltration Over C2 ChannelEvidence4

Images that matched keywords received from the C2 were sent to the server.

T1567.002Exfiltration to Cloud StorageEvidence2

Next, the image is uploaded to either Amazon’s cloud storage or to file@/api/res/send on the “rust” server.

INDICATORS OF COMPROMISE

IOCs tracked for this family

85 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.

View more in app
Network
41 tracked

IPs, domains, and DNS infrastructure linked to this family.

Hashes
29 tracked

File hashes (MD5, SHA-1, SHA-256) from samples and reports.

Other
15 tracked

Other indicator types observed in public reporting.

TypeValueLatest sighting
domain●●●●●●●●●●●●View more in app6 months ago
uri●●●●●●●●●●●●View more in app6 months ago
domain●●●●●●●●●●●●View more in app6 months ago
domain●●●●●●●●●●●●View more in app6 months ago
domain●●●●●●●●●●●●View more in app6 months ago
domain●●●●●●●●●●●●View more in app6 months ago
ACTIVITY FEED

Recent activity

14 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets match these IOCs, which detections are missing, which campaigns to expect next, and what to do in the next 30 minutes.
IOC matching85

Match every observed IP, domain, and hash against your live telemetry.

Threat actor attribution

Named campaigns wielding this family, with evidence pinned to each claim.

Exploited vulnerabilities

CVEs this family uses for access and lateral movement.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

MITRE ATT&CK mapping26

Every documented technique, ranked by evidence weight.

Researcher chatter

Reddit, Mastodon, and CTI community discussion around this family.