YARA · Trellix Advanced Research Center
TRELLIX_ARC_Loocipher_Ransomware
Rule to detect Loocipher ransomware
- Author
- Marc Rivero | McAfee ATR Team
- Date
- 2019-12-05
- Modified
- 2020-08-14
- Score / Quality
- 75 / 70
What this rule detects
Rule to detect Loocipher ransomware
Associated malware family: Loocipher.
Targets: Windows PE.
It defines 20 patterns (20 text, 0 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
rule TRELLIX_ARC_Loocipher_Ransomware : RANSOMWARE FILE
{
meta:
= "Rule to detect Loocipher ransomware"
= "Marc Rivero | McAfee ATR Team"
= "d18efe09-4b04-5089-84f8-aead63fc19bb"
= "2019-12-05"
= "2020-08-14"
= "https://www.mcafee.com/blogs/other-blogs/mcafee-labs/analysis-of-loocipher-a-new-ransomware-family-observed-this-year/"
= "https://github.com/advanced-threat-research/Yara-Rules//blob/1919562a59f190bda60c982424f6a24c542ee3e0/ransomware/RANSOM_Loocipher.yar#L1-L46"
= "https://github.com/advanced-threat-research/Yara-Rules//blob/1919562a59f190bda60c982424f6a24c542ee3e0/LICENSE"
= "7720aa6eb206e589493e440fec8690ceef9e70b5e6712a9fec9208c03cac7ff0"
= "36e452c34fd9bbb521f5422bffdbb71991de66f3faa29292dc3f27c8d7e1f9ba"
= 75
= 70
= "RANSOMWARE, FILE"
= "v1"
= "ransomware"
= "Ransom:W32/Loocipher"
= "Cybercrime"
= "Unknown"
strings:
$x1 = "c:\\users\\usuario\\desktop\\cryptolib\\gfpcrypt.h" fullword ascii
$x2 = "c:\\users\\usuario\\desktop\\cryptolib\\eccrypto.h" fullword ascii
$s3 = "c:\\users\\usuario\\desktop\\cryptolib\\gf2n.h" fullword ascii
$s4 = "c:\\users\\usuario\\desktop\\cryptolib\\queue.h" fullword ascii
$s5 = "ThreadUserTimer: GetThreadTimes failed with error " fullword ascii
$s6 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator *" fullword wide
$s7 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator +=" fullword wide
$s8 = "std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::operator []" fullword wide
$s9 = "std::vector<struct CryptoPP::ProjectivePoint,class std::allocator<struct CryptoPP::ProjectivePoint> >::operator []" fullword wide
$s10 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator *" fullword wide
$s11 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator +=" fullword wide
$s12 = "std::vector<struct CryptoPP::WindowSlider,class std::allocator<struct CryptoPP::WindowSlider> >::operator []" fullword wide
$s13 = "std::istreambuf_iterator<char,struct std::char_traits<char> >::operator ++" fullword wide
$s14 = "std::istreambuf_iterator<char,struct std::char_traits<char> >::operator *" fullword wide
$s15 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::_Compat" fullword wide
$s16 = "std::vector<class CryptoPP::PolynomialMod2,class std::allocator<class CryptoPP::PolynomialMod2> >::operator []" fullword wide
$s17 = "DL_ElgamalLikeSignatureAlgorithm: this signature scheme does not support message recovery" fullword ascii
$s18 = "std::vector<struct CryptoPP::ECPPoint,class std::allocator<struct CryptoPP::ECPPoint> >::operator []" fullword wide
$s19 = "std::vector<struct CryptoPP::EC2NPoint,class std::allocator<struct CryptoPP::EC2NPoint> >::operator []" fullword wide
$s20 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::_Compat" fullword wide
condition:
( uint16( 0 ) == 0x5a4d and filesize < 17000KB and ( 1 of ( $x* ) and 4 of them ) ) or ( all of them )
}
Strings (20 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $x1 | text | "c:\\users\\usuario\\desktop\\cryptolib\\gfpcrypt.h" | fullword ascii |
| $x2 | text | "c:\\users\\usuario\\desktop\\cryptolib\\eccrypto.h" | fullword ascii |
| $s3 | text | "c:\\users\\usuario\\desktop\\cryptolib\\gf2n.h" | fullword ascii |
| $s4 | text | "c:\\users\\usuario\\desktop\\cryptolib\\queue.h" | fullword ascii |
| $s5 | text | "ThreadUserTimer: GetThreadTimes failed with error " | fullword ascii |
| $s6 | text | "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator *" | fullword wide |
| $s7 | text | "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator +=" | fullword wide |
| $s8 | text | "std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::operator []" | fullword wide |
| $s9 | text | "std::vector<struct CryptoPP::ProjectivePoint,class std::allocator<struct CryptoPP::ProjectivePoint> >::operator []" | fullword wide |
| $s10 | text | "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator *" | fullword wide |
| $s11 | text | "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator +=" | fullword wide |
| $s12 | text | "std::vector<struct CryptoPP::WindowSlider,class std::allocator<struct CryptoPP::WindowSlider> >::operator []" | fullword wide |
| $s13 | text | "std::istreambuf_iterator<char,struct std::char_traits<char> >::operator ++" | fullword wide |
| $s14 | text | "std::istreambuf_iterator<char,struct std::char_traits<char> >::operator *" | fullword wide |
| $s15 | text | "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::_Compat" | fullword wide |
| $s16 | text | "std::vector<class CryptoPP::PolynomialMod2,class std::allocator<class CryptoPP::PolynomialMod2> >::operator []" | fullword wide |
| $s17 | text | "DL_ElgamalLikeSignatureAlgorithm: this signature scheme does not support message recovery" | fullword ascii |
| $s18 | text | "std::vector<struct CryptoPP::ECPPoint,class std::allocator<struct CryptoPP::ECPPoint> >::operator []" | fullword wide |
| $s19 | text | "std::vector<struct CryptoPP::EC2NPoint,class std::allocator<struct CryptoPP::EC2NPoint> >::operator []" | fullword wide |
| $s20 | text | "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::_Compat" | fullword wide |
Condition
( uint16( 0 ) == 0x5a4d and filesize < 17000KB and ( 1 of ( $x* ) and 4 of them ) ) or ( all of them )In plain words (Heuristic)
- The file must start with “MZ” — a Windows executable (PE).
- The file must be smaller than 17000KB (a cheap guard that skips large files).
- All patterns in the rule must match.
- At least 1 patterns in ( $x* ) must match.
- At least 4 patterns in the rule must match.
Test this rule in your browser
Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- 7720aa6eb206e589493e440fec8690ceef9e70b5e6712a9fec9208c03cac7ff0
Licence & attribution
Author: Marc Rivero | McAfee ATR Team
Source repository: Trellix Advanced Research Center @ 1919562a59
Licence: Apache License 2.0 (repository licence)
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: d18efe09-4b04-5089-84f8-aead63fc19bb
Metadata
| rule_version | v1 |
|---|---|
| malware_type | ransomware |
| malware_family | Ransom:W32/Loocipher |
| actor_type | Cybercrime |
| actor_group | Unknown |
Tags:RANSOMWAREFILE
Related rules
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2026-09-01
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2026-09-01
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2020-03-17
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2020-02-23
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2020-04-06
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2020-08-11
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2020-07-19
- MalwareTrellix Advanced Research Center· Marc Rivero | McAfee ATR Team· 2020-07-13