@@ -17,10 +17,40 @@ rule StealcStrings
17
17
meta :
18
18
author = " kevoreilly "
19
19
description = " Stealc string decryption "
20
- cape_options = " bp0=$decode+17,action0=string:edx,count=1 ,typestring=Stealc Strings "
20
+ cape_options = " bp0=$decode+17,action0=string:edx,count=0 ,typestring=Stealc Strings "
21
21
packed = " d0c824e886f14b8c411940a07dc133012b9eed74901b156233ac4cac23378add "
22
22
strings :
23
23
$ decode = {51 8B 15 [4 ] 52 8B 45 ?? 50 E8 [4 ] 83 C4 0C 6A 04 6A 00 8D 4D ?? 51 FF 15 [4 ] 83 C4 0C 8B 45 ?? 8B E5 5D C3 }
24
24
condition :
25
25
uint16 (0 ) == 0x5A4D and any of them
26
26
}
27
+
28
+ rule StealcV2Strings
29
+ {
30
+ meta :
31
+ author = " kevoreilly "
32
+ description = " StealcV2 string decryption "
33
+ cape_options = " bp0=$decode32*,action0=string:[esp],bp1=$decode64,action1=string:eax,bp2=$dump,action2=dumpstrings,count=0,typestring=Stealc Strings "
34
+ packed = " 2f42dcf05dd87e6352491ff9d4ea3dc3f854df53d548a8da0c323be42df797b6 "
35
+ packed = " 8301936f439f43579cffe98e11e3224051e2fb890ffe9df680bbbd8db0729387 "
36
+ strings :
37
+ $ decode32 = {AB AB AB AB 8B 45 0C 89 4E 10 89 4E 14 39 45 08 75 0B C7 46 14 0F 00 00 00 88 0E EB 0F 2B 45 08 50 51 FF 75 ?? 8B }
38
+ $ decode64 = {40 53 48 83 EC 20 48 8B 19 48 85 DB 74 ?? 48 8B 53 18 48 83 FA 0F 76 2C 48 8B 0B 48 FF C2 48 81 FA 00 10 00 00 72 }
39
+ $ dump32 = {33 C0 89 46 30 88 46 34 89 46 38 89 46 3C 89 46 40 89 46 44 89 46 48 89 46 4C 89 46 50 89 46 54 89 46 58 8B C6 5F 5E C3 }
40
+ $ dump64 = {48 8B C7 89 6F 40 40 88 6F 44 48 89 6F 48 48 89 6F 50 48 89 6F 58 48 89 6F 60 48 89 6F 68 48 89 6F 70 48 89 6F 78 48 89 }
41
+ condition :
42
+ uint16 (0 ) == 0x5A4D and 2 of them
43
+ }
44
+
45
+ rule StealcV2DateCheck
46
+ {
47
+ meta :
48
+ author = " kevoreilly "
49
+ description = " StealcV2 date check bypass "
50
+ cape_options = " patch=$date32*-1:B000,patch=$date64*-2:B00090 "
51
+ strings :
52
+ $ date32 = {F3 A5 8D 45 ?? 50 E8 [4 ] 59 8B F8 8B F2 8D 45 A4 50 E8 [4 ] 59 3B F2 7C 08 7F 04 3B F8 76 02 B3 01 8A C3 }
53
+ $ date64 = {0F 11 44 [2 ] 0F 11 8C [2 ] 00 00 00 89 8C [2 ] 00 00 00 48 8D 4C [2 ] E8 [4 ] 48 8B D8 48 8D 4C [2 ] E8 [4 ] 48 3B D8 0F 9F C0 }
54
+ condition :
55
+ uint16 (0 ) == 0x5A4D and any of them
56
+ }
0 commit comments