python-obfuscation-framework 1.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. pof/__init__.py +21 -0
  2. pof/__main__.py +22 -0
  3. pof/cli.py +187 -0
  4. pof/errors.py +2 -0
  5. pof/evasion/__init__.py +57 -0
  6. pof/evasion/argv.py +44 -0
  7. pof/evasion/base.py +48 -0
  8. pof/evasion/cpu/__init__.py +0 -0
  9. pof/evasion/cpu/cpu_count.py +27 -0
  10. pof/evasion/fs/__init__.py +0 -0
  11. pof/evasion/fs/directory_exist.py +29 -0
  12. pof/evasion/fs/directory_list_exist.py +46 -0
  13. pof/evasion/fs/directory_list_missing.py +45 -0
  14. pof/evasion/fs/directory_missing.py +28 -0
  15. pof/evasion/fs/exec_method.py +51 -0
  16. pof/evasion/fs/executable_path.py +66 -0
  17. pof/evasion/fs/file_exist.py +29 -0
  18. pof/evasion/fs/file_list_exist.py +46 -0
  19. pof/evasion/fs/file_list_missing.py +45 -0
  20. pof/evasion/fs/file_missing.py +31 -0
  21. pof/evasion/fs/tmp.py +112 -0
  22. pof/evasion/hardware/__init__.py +0 -0
  23. pof/evasion/hardware/ram_count.py +50 -0
  24. pof/evasion/hooks/__init__.py +0 -0
  25. pof/evasion/hooks/debugger.py +36 -0
  26. pof/evasion/hooks/tracemalloc.py +23 -0
  27. pof/evasion/human/__init__.py +0 -0
  28. pof/evasion/human/p.py +45 -0
  29. pof/evasion/human/prompt.py +69 -0
  30. pof/evasion/integrity.py +129 -0
  31. pof/evasion/multi.py +41 -0
  32. pof/evasion/os/__init__.py +0 -0
  33. pof/evasion/os/domain.py +27 -0
  34. pof/evasion/os/hostname.py +27 -0
  35. pof/evasion/os/uid.py +28 -0
  36. pof/evasion/os/username.py +27 -0
  37. pof/evasion/processes/__init__.py +0 -0
  38. pof/evasion/processes/proc_count.py +47 -0
  39. pof/evasion/time/__init__.py +0 -0
  40. pof/evasion/time/expire.py +75 -0
  41. pof/evasion/time/uptime.py +48 -0
  42. pof/evasion/time/utc.py +26 -0
  43. pof/evasion/utils.py +198 -0
  44. pof/main.py +369 -0
  45. pof/obfuscator/__init__.py +86 -0
  46. pof/obfuscator/builtins.py +482 -0
  47. pof/obfuscator/cipher/__init__.py +0 -0
  48. pof/obfuscator/cipher/deep_encryption.py +194 -0
  49. pof/obfuscator/cipher/rc4.py +22 -0
  50. pof/obfuscator/cipher/shift.py +19 -0
  51. pof/obfuscator/cipher/xor.py +121 -0
  52. pof/obfuscator/compression/__init__.py +0 -0
  53. pof/obfuscator/compression/bz2.py +22 -0
  54. pof/obfuscator/compression/gzip.py +22 -0
  55. pof/obfuscator/compression/lzma.py +22 -0
  56. pof/obfuscator/compression/zlib.py +22 -0
  57. pof/obfuscator/constants.py +294 -0
  58. pof/obfuscator/definitions.py +341 -0
  59. pof/obfuscator/encoding/__init__.py +0 -0
  60. pof/obfuscator/encoding/a85.py +21 -0
  61. pof/obfuscator/encoding/b16.py +21 -0
  62. pof/obfuscator/encoding/b32.py +21 -0
  63. pof/obfuscator/encoding/b32hex.py +21 -0
  64. pof/obfuscator/encoding/b64.py +21 -0
  65. pof/obfuscator/encoding/b85.py +25 -0
  66. pof/obfuscator/encoding/binascii.py +22 -0
  67. pof/obfuscator/encoding/snt.py +23 -0
  68. pof/obfuscator/esoteric/__init__.py +0 -0
  69. pof/obfuscator/esoteric/call.py +49 -0
  70. pof/obfuscator/esoteric/doc.py +237 -0
  71. pof/obfuscator/esoteric/globals.py +62 -0
  72. pof/obfuscator/esoteric/imports.py +55 -0
  73. pof/obfuscator/extract_variables.py +297 -0
  74. pof/obfuscator/junk/__init__.py +0 -0
  75. pof/obfuscator/junk/add_comments.py +102 -0
  76. pof/obfuscator/junk/add_newlines.py +36 -0
  77. pof/obfuscator/names.py +474 -0
  78. pof/obfuscator/names_rope.py +375 -0
  79. pof/obfuscator/numbers.py +271 -0
  80. pof/obfuscator/other/__init__.py +0 -0
  81. pof/obfuscator/other/tokens.py +47 -0
  82. pof/obfuscator/remove/__init__.py +0 -0
  83. pof/obfuscator/remove/comments.py +36 -0
  84. pof/obfuscator/remove/exceptions.py +75 -0
  85. pof/obfuscator/remove/indents.py +28 -0
  86. pof/obfuscator/remove/loggings.py +120 -0
  87. pof/obfuscator/remove/loggings_old.py +45 -0
  88. pof/obfuscator/remove/newline.py +27 -0
  89. pof/obfuscator/remove/print.py +40 -0
  90. pof/obfuscator/restructure.py +15 -0
  91. pof/obfuscator/stegano/__init__.py +0 -0
  92. pof/obfuscator/stegano/docstrings.py +111 -0
  93. pof/obfuscator/stegano/ipv6encoding.py +21 -0
  94. pof/obfuscator/stegano/macencoding.py +21 -0
  95. pof/obfuscator/stegano/uuidencoding.py +21 -0
  96. pof/obfuscator/strings.py +359 -0
  97. pof/stager/__init__.py +17 -0
  98. pof/stager/cipher/__init__.py +0 -0
  99. pof/stager/cipher/rc4.py +36 -0
  100. pof/stager/download.py +80 -0
  101. pof/stager/image.py +374 -0
  102. pof/stager/lots/__init__.py +1 -0
  103. pof/stager/lots/cl1pnet.py +51 -0
  104. pof/stager/lots/pastebin.py +35 -0
  105. pof/stager/lots/pasters.py +30 -0
  106. pof/stager/quine.py +135 -0
  107. pof/utils/__init__.py +0 -0
  108. pof/utils/cipher/__init__.py +7 -0
  109. pof/utils/cipher/rc4.py +407 -0
  110. pof/utils/cipher/shift.py +41 -0
  111. pof/utils/compression/__init__.py +11 -0
  112. pof/utils/compression/bz2.py +38 -0
  113. pof/utils/compression/gzip.py +38 -0
  114. pof/utils/compression/lzma.py +38 -0
  115. pof/utils/compression/zlib.py +38 -0
  116. pof/utils/encoding/__init__.py +19 -0
  117. pof/utils/encoding/a85.py +35 -0
  118. pof/utils/encoding/b16.py +30 -0
  119. pof/utils/encoding/b3.py +93 -0
  120. pof/utils/encoding/b32.py +30 -0
  121. pof/utils/encoding/b32hex.py +30 -0
  122. pof/utils/encoding/b64.py +30 -0
  123. pof/utils/encoding/b85.py +35 -0
  124. pof/utils/encoding/binascii.py +38 -0
  125. pof/utils/encoding/snt.py +97 -0
  126. pof/utils/entropy.py +24 -0
  127. pof/utils/extract_names.py +204 -0
  128. pof/utils/generator/__init__.py +17 -0
  129. pof/utils/generator/advanced.py +53 -0
  130. pof/utils/generator/base.py +178 -0
  131. pof/utils/generator/basic.py +107 -0
  132. pof/utils/generator/names.txt +37241 -0
  133. pof/utils/generator/unicode.py +171 -0
  134. pof/utils/se/__init__.py +3 -0
  135. pof/utils/se/homoglyphs.py +99 -0
  136. pof/utils/se/homoglyphs.txt +96 -0
  137. pof/utils/stegano/__init__.py +5 -0
  138. pof/utils/stegano/ipv6encoding.py +97 -0
  139. pof/utils/stegano/macencoding.py +96 -0
  140. pof/utils/stegano/uuidencoding.py +102 -0
  141. pof/utils/tokens.py +68 -0
  142. python_obfuscation_framework-1.4.1.dist-info/LICENSE +674 -0
  143. python_obfuscation_framework-1.4.1.dist-info/METADATA +851 -0
  144. python_obfuscation_framework-1.4.1.dist-info/RECORD +147 -0
  145. python_obfuscation_framework-1.4.1.dist-info/WHEEL +5 -0
  146. python_obfuscation_framework-1.4.1.dist-info/entry_points.txt +2 -0
  147. python_obfuscation_framework-1.4.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,27 @@
1
+ from tokenize import LPAR, NAME, OP, RPAR, STRING
2
+
3
+ from pof.evasion.base import BaseEvasion
4
+
5
+
6
+ class DomainEvasion(BaseEvasion):
7
+ def __init__(self, domain) -> None:
8
+ self.domain = domain
9
+
10
+ @staticmethod
11
+ def import_tokens():
12
+ return [
13
+ (NAME, "import"),
14
+ (NAME, "socket"),
15
+ ]
16
+
17
+ def check_tokens(self):
18
+ """`socket.getfqdn()!='debian'`."""
19
+ return [
20
+ (NAME, "socket"),
21
+ (OP, "."),
22
+ (NAME, "getfqdn"),
23
+ (LPAR, "("),
24
+ (RPAR, ")"),
25
+ (OP, "!="),
26
+ (STRING, repr(self.domain)),
27
+ ]
@@ -0,0 +1,27 @@
1
+ from tokenize import LPAR, NAME, OP, RPAR, STRING
2
+
3
+ from pof.evasion.base import BaseEvasion
4
+
5
+
6
+ class HostnameEvasion(BaseEvasion):
7
+ def __init__(self, hostname) -> None:
8
+ self.hostname = hostname
9
+
10
+ @staticmethod
11
+ def import_tokens():
12
+ return [
13
+ (NAME, "import"),
14
+ (NAME, "socket"),
15
+ ]
16
+
17
+ def check_tokens(self):
18
+ """`socket.gethostname()!='debian'`."""
19
+ return [
20
+ (NAME, "socket"),
21
+ (OP, "."),
22
+ (NAME, "gethostname"),
23
+ (LPAR, "("),
24
+ (RPAR, ")"),
25
+ (OP, "!="),
26
+ (STRING, repr(self.hostname)),
27
+ ]
pof/evasion/os/uid.py ADDED
@@ -0,0 +1,28 @@
1
+ # TODO (deoktr): add compat with windows: `ctypes.windll.shell32.IsUserAnAdmin()`
2
+ from tokenize import LPAR, NAME, NUMBER, OP, RPAR
3
+
4
+ from pof.evasion.base import BaseEvasion
5
+
6
+
7
+ class LinuxUIDEvasion(BaseEvasion):
8
+ def __init__(self, uid) -> None:
9
+ self.uid = uid
10
+
11
+ @staticmethod
12
+ def import_tokens():
13
+ return [
14
+ (NAME, "import"),
15
+ (NAME, "os"),
16
+ ]
17
+
18
+ def check_tokens(self):
19
+ """`os.getuid()!=1000`."""
20
+ return [
21
+ (NAME, "os"),
22
+ (OP, "."),
23
+ (NAME, "getuid"),
24
+ (LPAR, "("),
25
+ (RPAR, ")"),
26
+ (OP, "!="),
27
+ (NUMBER, str(self.uid)),
28
+ ]
@@ -0,0 +1,27 @@
1
+ from tokenize import LPAR, NAME, OP, RPAR, STRING
2
+
3
+ from pof.evasion.base import BaseEvasion
4
+
5
+
6
+ class UsernameEvasion(BaseEvasion):
7
+ def __init__(self, username) -> None:
8
+ self.username = username
9
+
10
+ @staticmethod
11
+ def import_tokens():
12
+ return [
13
+ (NAME, "import"),
14
+ (NAME, "getpass"),
15
+ ]
16
+
17
+ def check_tokens(self):
18
+ """`getpass.getuser()!='username'`."""
19
+ return [
20
+ (NAME, "getpass"),
21
+ (OP, "."),
22
+ (NAME, "getuser"),
23
+ (LPAR, "("),
24
+ (RPAR, ")"),
25
+ (OP, "!="),
26
+ (STRING, repr(self.username)),
27
+ ]
File without changes
@@ -0,0 +1,47 @@
1
+ # TODO (deoktr): make a version for windows
2
+ from tokenize import LPAR, NAME, NUMBER, OP, RPAR, STRING
3
+
4
+ from pof.evasion.base import BaseEvasion
5
+
6
+
7
+ class LinuxProcCountEvasion(BaseEvasion):
8
+ def __init__(self, proc_count=100) -> None:
9
+ self.proc_count = proc_count
10
+
11
+ @staticmethod
12
+ def import_tokens():
13
+ return [
14
+ (NAME, "import"),
15
+ (NAME, "os"),
16
+ ]
17
+
18
+ def check_tokens(self):
19
+ """`len(list(filter(lambda d: d.isdigit(), os.listdir("/proc")))) < 100`."""
20
+ return [
21
+ (NAME, "len"),
22
+ (LPAR, "("),
23
+ (NAME, "list"),
24
+ (LPAR, "("),
25
+ (NAME, "filter"),
26
+ (LPAR, "("),
27
+ (NAME, "lambda"),
28
+ (NAME, "d"),
29
+ (OP, ":"),
30
+ (NAME, "d"),
31
+ (OP, "."),
32
+ (NAME, "isdigit"),
33
+ (LPAR, "("),
34
+ (RPAR, ")"),
35
+ (OP, ","),
36
+ (NAME, "os"),
37
+ (OP, "."),
38
+ (NAME, "listdir"),
39
+ (LPAR, "("),
40
+ (STRING, repr("/proc")),
41
+ (RPAR, ")"),
42
+ (RPAR, ")"),
43
+ (RPAR, ")"),
44
+ (RPAR, ")"),
45
+ (OP, "<"),
46
+ (NUMBER, str(self.proc_count)),
47
+ ]
File without changes
@@ -0,0 +1,75 @@
1
+ from datetime import UTC, datetime, timedelta
2
+ from tokenize import LPAR, NAME, NUMBER, OP, RPAR
3
+
4
+ from pof.evasion.base import BaseEvasion
5
+
6
+
7
+ class ExpireEvasion(BaseEvasion):
8
+ def __init__(self, under_datetime=None, over_datetime=None) -> None:
9
+ """Expire after a certain time (default 15 minutes)."""
10
+ if under_datetime is None:
11
+ under_datetime = datetime.now(tz=UTC) + timedelta(minutes=15)
12
+ self.under_datetime = under_datetime
13
+
14
+ # TODO (deoktr): remove random timedelta to now, as to not give the date/time of
15
+ # payload creation
16
+ if over_datetime is None:
17
+ over_datetime = datetime.now(tz=UTC)
18
+ self.over_datetime = over_datetime
19
+
20
+ @staticmethod
21
+ def import_tokens():
22
+ return [
23
+ (NAME, "from"),
24
+ (NAME, "datetime"),
25
+ (NAME, "import"),
26
+ (NAME, "datetime"),
27
+ ]
28
+
29
+ def check_tokens(self):
30
+ """Time expiry check tokens.
31
+
32
+ `datetime(2023,1,1,1,1)>datetime.utcnow()
33
+ or datetime.utcnow()>datetime(2023,1,2,1,1,1)`
34
+ """
35
+ return [
36
+ (NAME, "datetime"),
37
+ (LPAR, "("),
38
+ (NUMBER, str(self.over_datetime.year)),
39
+ (OP, ","),
40
+ (NUMBER, str(self.over_datetime.month)),
41
+ (OP, ","),
42
+ (NUMBER, str(self.over_datetime.day)),
43
+ (OP, ","),
44
+ (NUMBER, str(self.over_datetime.hour)),
45
+ (OP, ","),
46
+ (NUMBER, str(self.over_datetime.minute)),
47
+ (RPAR, ")"),
48
+ (OP, ">"),
49
+ (NAME, "datetime"),
50
+ (OP, "."),
51
+ (NAME, "utcnow"),
52
+ (LPAR, "("),
53
+ (RPAR, ")"),
54
+ (NAME, "or"),
55
+ (NAME, "datetime"),
56
+ (OP, "."),
57
+ (NAME, "utcnow"),
58
+ (LPAR, "("),
59
+ (RPAR, ")"),
60
+ (OP, ">"),
61
+ (NAME, "datetime"),
62
+ (LPAR, "("),
63
+ (NUMBER, str(self.under_datetime.year)),
64
+ (OP, ","),
65
+ (NUMBER, str(self.under_datetime.month)),
66
+ (OP, ","),
67
+ (NUMBER, str(self.under_datetime.day)),
68
+ (OP, ","),
69
+ (NUMBER, str(self.under_datetime.hour)),
70
+ (OP, ","),
71
+ (NUMBER, str(self.under_datetime.minute)),
72
+ (OP, ","),
73
+ (NUMBER, str(self.under_datetime.second)),
74
+ (RPAR, ")"),
75
+ ]
@@ -0,0 +1,48 @@
1
+ # TODO (deoktr): windows version: https://www.geeksforgeeks.org/getting-the-time-since-os-startup-using-python/
2
+ from tokenize import LPAR, NAME, NUMBER, OP, RPAR, STRING
3
+
4
+ from pof.evasion.base import BaseEvasion
5
+
6
+
7
+ class LinuxUptimeEvasion(BaseEvasion):
8
+ def __init__(self, uptime=12 * 60) -> None:
9
+ # uptime is in seconds
10
+ # default: 12 minutes
11
+ self.uptime = uptime
12
+
13
+ @staticmethod
14
+ def import_tokens():
15
+ return [
16
+ (NAME, "from"),
17
+ (NAME, "pathlib"),
18
+ (NAME, "import"),
19
+ (NAME, "Path"),
20
+ ]
21
+
22
+ def check_tokens(self):
23
+ """Validates system does not use UTC timezone.
24
+
25
+ `float(Path("/proc/uptime").read_text().split()[0]) < 12**60`
26
+ """
27
+ return [
28
+ (NAME, "float"),
29
+ (LPAR, "("),
30
+ (NAME, "Path"),
31
+ (LPAR, "("),
32
+ (STRING, repr("/proc/uptime")),
33
+ (RPAR, ")"),
34
+ (OP, "."),
35
+ (NAME, "read_text"),
36
+ (LPAR, "("),
37
+ (RPAR, ")"),
38
+ (OP, "."),
39
+ (NAME, "split"),
40
+ (LPAR, "("),
41
+ (RPAR, ")"),
42
+ (OP, "["),
43
+ (NUMBER, "0"),
44
+ (OP, "]"),
45
+ (RPAR, ")"),
46
+ (OP, "<"),
47
+ (NUMBER, str(self.uptime)),
48
+ ]
@@ -0,0 +1,26 @@
1
+ from tokenize import NAME, OP, STRING
2
+
3
+ from pof.evasion.base import BaseEvasion
4
+
5
+
6
+ class UTCEvasion(BaseEvasion):
7
+ @staticmethod
8
+ def import_tokens():
9
+ return [
10
+ (NAME, "import"),
11
+ (NAME, "time"),
12
+ ]
13
+
14
+ @staticmethod
15
+ def check_tokens():
16
+ """Validates system does not use UTC timezone.
17
+
18
+ `"UTC" in time.tzname`
19
+ """
20
+ return [
21
+ (STRING, '"UTC"'),
22
+ (NAME, "in"),
23
+ (NAME, "time"),
24
+ (OP, "."),
25
+ (NAME, "tzname"),
26
+ ]
pof/evasion/utils.py ADDED
@@ -0,0 +1,198 @@
1
+ """Utils.
2
+
3
+ Todo:
4
+ - add process list
5
+ - add list of directory
6
+ - add reverse engineering tools
7
+ - add Ansible directory
8
+ """
9
+
10
+ WIN_FILE_SYSTEM_PARALLELS = [
11
+ r"c:\windows\system32\drivers\prleth.sys",
12
+ r"c:\windows\system32\drivers\prlfs.sys",
13
+ r"c:\windows\system32\drivers\prlmouse.sys",
14
+ r"c:\windows\system32\drivers\prlvideo.sys",
15
+ r"c:\windows\system32\drivers\prltime.sys",
16
+ r"c:\windows\system32\drivers\prl_pv32.sys",
17
+ r"c:\windows\system32\drivers\prl_paravirt_32.sys",
18
+ ]
19
+
20
+ WIN_FILE_SYSTEM_VIRTUALBOX = [
21
+ r"c:\windows\system32\drivers\VBoxMouse.sys",
22
+ r"c:\windows\system32\drivers\VBoxGuest.sys",
23
+ r"c:\windows\system32\drivers\VBoxSF.sys",
24
+ r"c:\windows\system32\drivers\VBoxVideo.sys",
25
+ r"c:\windows\system32\vboxdisp.dll",
26
+ r"c:\windows\system32\vboxhook.dll",
27
+ r"c:\windows\system32\vboxmrxnp.dll",
28
+ r"c:\windows\system32\vboxogl.dll",
29
+ r"c:\windows\system32\vboxoglarrayspu.dll",
30
+ r"c:\windows\system32\vboxoglcrutil.dll",
31
+ r"c:\windows\system32\vboxoglerrorspu.dll",
32
+ r"c:\windows\system32\vboxoglfeedbackspu.dll",
33
+ r"c:\windows\system32\vboxoglpackspu.dll",
34
+ r"c:\windows\system32\vboxoglpassthroughspu.dll",
35
+ r"c:\windows\system32\vboxservice.exe",
36
+ r"c:\windows\system32\vboxtray.exe",
37
+ r"c:\windows\system32\VBoxControl.exe",
38
+ ]
39
+
40
+ WIN_FILE_SYSTEM_VIRTUALPC = [
41
+ r"c:\windows\system32\drivers\vmsrvc.sys",
42
+ r"c:\windows\system32\drivers\vpc-s3.sys",
43
+ ]
44
+
45
+ WIN_FILE_SYSTEM_VMWARE = [
46
+ r"c:\windows\system32\drivers\vmmouse.sys",
47
+ r"c:\windows\system32\drivers\vmnet.sys",
48
+ r"c:\windows\system32\drivers\vmxnet.sys",
49
+ r"c:\windows\system32\drivers\vmhgfs.sys",
50
+ r"c:\windows\system32\drivers\vmx86.sys",
51
+ r"c:\windows\system32\drivers\hgfs.sys",
52
+ ]
53
+
54
+ WIN_FILE_SYSTEM = (
55
+ WIN_FILE_SYSTEM_PARALLELS
56
+ + WIN_FILE_SYSTEM_VIRTUALBOX
57
+ + WIN_FILE_SYSTEM_VIRTUALPC
58
+ + WIN_FILE_SYSTEM_VMWARE
59
+ )
60
+
61
+ FILE_SYSTEM = WIN_FILE_SYSTEM
62
+
63
+ # source: https://evasions.checkpoint.com/techniques/generic-os-queries.html#check-if-username-is-specific
64
+ USERNAME = [
65
+ "admin",
66
+ "andy",
67
+ "honey",
68
+ "john",
69
+ "john doe",
70
+ "malnetvm",
71
+ "maltest",
72
+ "malware",
73
+ "roo",
74
+ "sandbox",
75
+ "snort",
76
+ "tequilaboomboom",
77
+ "test",
78
+ "virus",
79
+ "virusclone",
80
+ "wilbert",
81
+ "remnux",
82
+ "nepenthes", # Nepenthes
83
+ "currentuser", # Norman
84
+ "username", # ThreatExpert
85
+ "user", # Sandboxie
86
+ "vmware", # VMware
87
+ ]
88
+
89
+ # source: https://evasions.checkpoint.com/techniques/generic-os-queries.html#check-if-computer-name-is-specific
90
+ HOSTNAME = [
91
+ "klone_x64-pc",
92
+ "tequilaboomboom",
93
+ "TU-4NH09SMCG1HC", # Anubis
94
+ "InsideTm", # Anubis
95
+ ]
96
+
97
+ # source: https://github.com/PwnDexter/SharpEDRChecker/blob/master/SharpEDRChecker/EDRData.cs
98
+ EDR_LIST = [
99
+ "activeconsole",
100
+ "amsi.dll",
101
+ "anti malware",
102
+ "anti-malware",
103
+ "antimalware",
104
+ "anti virus",
105
+ "anti-virus",
106
+ "antivirus",
107
+ "appsense",
108
+ "authtap",
109
+ "avast",
110
+ "avecto",
111
+ "canary",
112
+ "carbonblack",
113
+ "carbon black",
114
+ "cb.exe",
115
+ "ciscoamp",
116
+ "cisco amp",
117
+ "countercept",
118
+ "countertack",
119
+ "cramtray",
120
+ "crssvc",
121
+ "crowdstrike",
122
+ "csagent",
123
+ "csfalcon",
124
+ "csshell",
125
+ "cybereason",
126
+ "cyclorama",
127
+ "cylance",
128
+ "cyoptics",
129
+ "cyupdate",
130
+ "cyvera",
131
+ "cyserver",
132
+ "cytray",
133
+ "darktrace",
134
+ "defendpoint",
135
+ "defender",
136
+ "eectrl",
137
+ "elastic",
138
+ "endgame",
139
+ "f-secure",
140
+ "forcepoint",
141
+ "fireeye",
142
+ "groundling",
143
+ "GRRservic",
144
+ "inspector",
145
+ "ivanti",
146
+ "kaspersky",
147
+ "lacuna",
148
+ "logrhythm",
149
+ "malware",
150
+ "mandiant",
151
+ "mcafee",
152
+ "morphisec",
153
+ "msascuil",
154
+ "msmpeng",
155
+ "nissrv",
156
+ "omni",
157
+ "omniagent",
158
+ "osquery",
159
+ "Palo Alto Networks",
160
+ "pgeposervice",
161
+ "pgsystemtray",
162
+ "privilegeguard",
163
+ "procwall",
164
+ "protectorservic",
165
+ "qradar",
166
+ "redcloak",
167
+ "secureworks",
168
+ "securityhealthservice",
169
+ "semlaunchsv",
170
+ "sentinel",
171
+ "sepliveupdat",
172
+ "sisidsservice",
173
+ "sisipsservice",
174
+ "sisipsutil",
175
+ "smc.exe",
176
+ "smcgui",
177
+ "snac64",
178
+ "sophos",
179
+ "splunk",
180
+ "srtsp",
181
+ "symantec",
182
+ "symcorpu",
183
+ "symefasi",
184
+ "sysinternal",
185
+ "sysmon",
186
+ "tanium",
187
+ "tda.exe",
188
+ "tdawork",
189
+ "tpython",
190
+ "vectra",
191
+ "wincollect",
192
+ "windowssensor",
193
+ "wireshark",
194
+ "threat",
195
+ "xagt.exe",
196
+ "xagtnotif.exe",
197
+ "hurukai",
198
+ ]