HeartCrypt is a packer-as-a-service (PaaS) used to protect malware that has been available since at least 2024. HeartCrypt has been used to pack a variety of malware including Lumma Stealer, Remcos, and Rhadamanthys. In the HeartCrypt PaaS model, customers submit malware via private messaging services and it is then packed and returned by the operator as a new binary.[1]
| Domain | ID | Name | Use | |
|---|---|---|---|---|
| Enterprise | T1547 | .001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder |
HeartCrypt can set the |
| Enterprise | T1059 | .003 | Command and Scripting Interpreter: Windows Command Shell |
HeartCrypt can use the |
| Enterprise | T1140 | Deobfuscate/Decode Files or Information |
HeartCrypt can decrypt payloads prior to execution.[1][2] |
|
| Enterprise | T1036 | .008 | Masquerading: Masquerade File Type |
HeartCrypt can append a BMP header to encoded malicious payloads to masquerade them as BMP files.[1] |
| Enterprise | T1106 | Native API |
HeartCrypt can use Windows API functions to modify the Registry and |
|
| Enterprise | T1027 | .001 | Obfuscated Files or Information: Binary Padding |
HeartCrypt can add several hundred thousand kilobytes of null padding to payloads before saving onto the file system.[1] |
| .002 | Obfuscated Files or Information: Software Packing |
HeartCrypt can pack malicious Windows x86 and .NET payloads in order to evade detection.[1][2] |
||
| .013 | Obfuscated Files or Information: Encrypted/Encoded File |
HeartCrypt strings are encrypted via a single-byte XOR operation rotating over a hard-coded key, possibly provided by the PaaS customers. [1] |
||
| Enterprise | T1055 | .004 | Process Injection: Asynchronous Procedure Call |
HeartCrypt has the ability to use |
| .012 | Process Injection: Process Hollowing |
For .NET payloads, HeartCrypt can use process hollowing to inject into processes spawned by csc.exe or AppLaunch.exe.[1] |
||
| Enterprise | T1497 | .001 | Virtualization/Sandbox Evasion: System Checks |
HeartCrypt will attempt to load non-existent DLLs in attempt to detect sandbox creation of a dummy DLL to prevent the program from crashing.[1] |